diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..79a72f1e9 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +# Makefile for formatting and linting Python code + +# Targets +.PHONY: black flake8 check all + +# Format code using black +black: + black --version + black . --exclude venv + +# Lint code using flake8 +flake8: + flake8 --version + flake8 . --config .flake8 --exclude venv,.venv + +# Run both format and lint +check: black flake8 + +# Alias for check +all: check diff --git a/example.py b/example.py index afc09e07c..eb1ab80a8 100644 --- a/example.py +++ b/example.py @@ -101,6 +101,10 @@ example_instances as example_instances_riscv_kyber_basemul, ) +from examples.naive.riscv.kyber_sampling._example import ( + example_instances as example_instances_riscv_kyber_sampling +) + from examples.naive.riscv.keccak._example import ( example_instances as example_instances_riscv_keccak, ) @@ -125,6 +129,7 @@ def main(): + example_instances_riscv_dilithium_basemul + example_instances_riscv_ntt_kyber + example_instances_riscv_kyber_basemul + + example_instances_riscv_kyber_sampling + example_instances_riscv_keccak ) diff --git a/examples/naive/riscv/dilithium_basemul/_example.py b/examples/naive/riscv/dilithium_basemul/_example.py index 3f4f08821..8ba2b20f1 100644 --- a/examples/naive/riscv/dilithium_basemul/_example.py +++ b/examples/naive/riscv/dilithium_basemul/_example.py @@ -154,6 +154,70 @@ def core(self, slothy): slothy.optimize_loop("poly_reduce_rv64im_loop") +class RISC_V_poly_basemul_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "dilithium_poly_basemul_rvv_vlen128" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + funcname="poly_basemul_rvv_vlen128", + var=var, + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + import slothy.targets.riscv.xuantie_c908 as target_module + target_module.lmul = 8 + target_module.sew = 32 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.config.outputs = ["x3"] + slothy.optimize_loop("poly_basemul_rvv_vlen128_loop") + + +class RISC_V_poly_basemul_acc_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "dilithium_poly_basemul_acc_rvv_vlen128" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + funcname="poly_basemul_acc_rvv_vlen128", + var=var, + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + import slothy.targets.riscv.xuantie_c908 as target_module + target_module.lmul = 8 + target_module.sew = 32 + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.config.outputs = ["x3"] + slothy.optimize_loop("poly_basemul_acc_rvv_vlen128_loop") + + example_instances = [ RISC_V_poly_basemul_8l_init_rv64im(), RISC_V_poly_basemul_8l_rv64im(), @@ -165,4 +229,7 @@ def core(self, slothy): RISC_V_poly_basemul_8l_acc_rv64im(var="dual"), RISC_V_poly_basemul_8l_acc_end_rv64im(var="dual"), RISC_V_poly_reduce_rv64im(var="dual"), + # RVV + RISC_V_poly_basemul_rvv_vlen128(), + RISC_V_poly_basemul_acc_rvv_vlen128(), ] diff --git a/examples/naive/riscv/dilithium_basemul/dilithium_poly_basemul_acc_rvv_vlen128.s b/examples/naive/riscv/dilithium_basemul/dilithium_poly_basemul_acc_rvv_vlen128.s new file mode 100644 index 000000000..320fd56e4 --- /dev/null +++ b/examples/naive/riscv/dilithium_basemul/dilithium_poly_basemul_acc_rvv_vlen128.s @@ -0,0 +1,903 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 \ + va0, va1, va2, va3, va4, va5, va6, va7, \ + xb, xbqinv, xq, \ + vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level0 + ct_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + # level4 + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, \ + t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + # level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + # level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + # level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8,v9,v10,v11,v12,v13,v14,v15 + # shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23, \ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + # level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + # level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + t1, t2, t1, t2, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 \ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t2, t3, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +# q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +# inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +# inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_acc_rvv_vlen128 +.align 2 +poly_basemul_acc_rvv_vlen128: + addi sp, sp, -8*15 # Allocate stack space + save_regs # Save all callee-saved registers + + li a7, 4*8 + li t2, 8 + vsetvli a7, a7, e32, m8, tu, mu + li t0, q + li t1, qinv +poly_basemul_acc_rvv_vlen128_loop: + vle32.v v0, (a1) + addi a1, a1, 4*4*8 + vle32.v v8, (a2) + addi a2, a2, 4*4*8 + montmul_ref v16, v0, v8, t0, t1, v24 + vle32.v v24, (a0) + vadd.vv v24, v24, v16 + vse32.v v24, (a0) + addi a0, a0, 4*4*8 + addi t2, t2, -1 + bnez t2, poly_basemul_acc_rvv_vlen128_loop + + restore_regs # Restore all saved registers + addi sp, sp, 8*15 # Deallocate stack space +ret \ No newline at end of file diff --git a/examples/naive/riscv/dilithium_basemul/dilithium_poly_basemul_rvv_vlen128.s b/examples/naive/riscv/dilithium_basemul/dilithium_poly_basemul_rvv_vlen128.s new file mode 100644 index 000000000..5e77308da --- /dev/null +++ b/examples/naive/riscv/dilithium_basemul/dilithium_poly_basemul_rvv_vlen128.s @@ -0,0 +1,901 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 \ + va0, va1, va2, va3, va4, va5, va6, va7, \ + xb, xbqinv, xq, \ + vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level0 + ct_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + # level4 + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, \ + t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + # level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + # level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + # level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8,v9,v10,v11,v12,v13,v14,v15 + # shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23, \ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + # level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + # level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + t1, t2, t1, t2, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 \ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t2, t3, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +# q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +# inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +# inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_rvv_vlen128 +.align 2 +poly_basemul_rvv_vlen128: + addi sp, sp, -8*15 # Allocate stack space + save_regs # Save all callee-saved registers + + li a7, 4*8 + li t2, 8 + vsetvli a7, a7, e32, m8, tu, mu + li t0, q + li t1, qinv +poly_basemul_rvv_vlen128_loop: + vle32.v v0, (a1) + addi a1, a1, 4*4*8 + vle32.v v8, (a2) + addi a2, a2, 4*4*8 + montmul_ref v16, v0, v8, t0, t1, v24 + vse32.v v16, (a0) + addi a0, a0, 4*4*8 + addi t2, t2, -1 + bnez t2, poly_basemul_rvv_vlen128_loop + + restore_regs # Restore all saved registers + addi sp, sp, 8*15 # Deallocate stack space +ret \ No newline at end of file diff --git a/examples/naive/riscv/keccak/_example.py b/examples/naive/riscv/keccak/_example.py index e86e7eab3..6f49597bb 100644 --- a/examples/naive/riscv/keccak/_example.py +++ b/examples/naive/riscv/keccak/_example.py @@ -42,6 +42,46 @@ def core(self, slothy): slothy.optimize_loop("loop_start") +class RISC_V_fips202_rv32imbv_hybrid_x3(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "fips202_rv32imbv_hybrid_x3" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + funcname="KeccakF1600_StatePermute_RV32V_3x", + var=var, + ) + + def core(self, slothy): + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 1 + + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + slothy.config.sw_pipelining.enabled = True + slothy.config.sw_pipelining.halving_heuristic = True + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 7 + slothy.config.split_heuristic_repeat = 1 + slothy.config.split_heuristic_stepsize = 0.1 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + # slothy.optimize("start", "end") + slothy.optimize_loop("loop_start", forced_loop_type=RISC_V.AddiStashLoop) + + example_instances = [ RISC_V_fips202_rv32im(), + RISC_V_fips202_rv32imbv_hybrid_x3(), ] diff --git a/examples/naive/riscv/keccak/fips202_rv32imb.s b/examples/naive/riscv/keccak/fips202_rv32imb.s new file mode 100644 index 000000000..589ff1583 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32imb.s @@ -0,0 +1,657 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sw s0, 0*4(sp) + sw s1, 1*4(sp) + sw s2, 2*4(sp) + sw s3, 3*4(sp) + sw s4, 4*4(sp) + sw s5, 5*4(sp) + sw s6, 6*4(sp) + sw s7, 7*4(sp) + sw s8, 8*4(sp) + sw s9, 9*4(sp) + sw s10, 10*4(sp) + sw s11, 11*4(sp) + sw gp, 12*4(sp) + sw tp, 13*4(sp) + sw ra, 14*4(sp) +.endm + +.macro RestoreRegs + lw s0, 0*4(sp) + lw s1, 1*4(sp) + lw s2, 2*4(sp) + lw s3, 3*4(sp) + lw s4, 4*4(sp) + lw s5, 5*4(sp) + lw s6, 6*4(sp) + lw s7, 7*4(sp) + lw s8, 8*4(sp) + lw s9, 9*4(sp) + lw s10, 10*4(sp) + lw s11, 11*4(sp) + lw gp, 12*4(sp) + lw tp, 13*4(sp) + lw ra, 14*4(sp) +.endm + +.macro XOR1Init outh, outl, in0h, in0l, in1h, in1l + xor \outh, \in0h, \in1h + xor \outl, \in0l, \in1l +.endm + +.macro XOR1 outh, outl, inh, inl + xor \outh, \outh, \inh + xor \outl, \outl, \inl +.endm + +.macro XOREach \ + S00h, S00l, S01h, S01l,\ + S02h, S02l, S03h, S03l,\ + S04h, S04l, Dh, Dl + XOR1 \S00h, \S00l, \Dh, \Dl + XOR1 \S01h, \S01l, \Dh, \Dl + XOR1 \S02h, \S02l, \Dh, \Dl + XOR1 \S03h, \S03l, \Dh, \Dl + XOR1 \S04h, \S04l, \Dh, \Dl +.endm + +.macro ROLn outh, outl, S00h, S00l, n +.if \n < 32 + slli \outl, \S00l, \n + srli \S00l, \S00l, 32-\n + srli \outh, \S00h, 32-\n + xor \outl, \outl, \outh + slli \outh, \S00h, \n + xor \outh, \outh, \S00l +.else + slli \outl, \S00h, \n-32 + srli \S00h, \S00h, 64-\n + srli \outh, \S00l, 64-\n + xor \outl, \outl, \outh + slli \outh, \S00l, \n-32 + xor \outh, \outh, \S00h +.endif +.endm + +.macro ROLnInplace S00h, S00l, T0, T1, n +.if \n < 32 + srli \T0, \S00l, 32-\n + slli \S00l, \S00l, \n + srli \T1, \S00h, 32-\n + slli \S00h, \S00h, \n + xor \S00l, \S00l, \T1 + xor \S00h, \S00h, \T0 +.else + slli \T0, \S00l, \n-32 + srli \S00l,\S00l, 64-\n + slli \T1, \S00h, \n-32 + xor \S00l,\S00l, \T1 + srli \S00h,\S00h, 64-\n + xor \S00h,\S00h, \T0 +.endif +.endm + +.macro ChiOp \ + outh, outl, \ + S00h, S00l, S01h, S01l, S02h, S02l, \ + Th, Tl + andn \Th, \S02h, \S01h + andn \Tl, \S02l, \S01l + xor \outh, \Th, \S00h + xor \outl, \Tl, \S00l +.endm + +.macro InitLoad \ + S02h, S02l, S04h, S04l, S05h, S05l, S08h, S08l, S10h, S10l, \ + S14h, S14l, S16h, S16l, S17h, S17l, S21h, S21l, S23h, S23l + lw \S02l, 2*8(a0) + lw \S02h, 2*8+4(a0) + lw \S04l, 4*8(a0) + lw \S04h, 4*8+4(a0) + lw \S05l, 5*8(a0) + lw \S05h, 5*8+4(a0) + lw \S08l, 8*8(a0) + lw \S08h, 8*8+4(a0) + lw \S10l, 10*8(a0) + lw \S10h, 10*8+4(a0) + lw \S14l, 14*8(a0) + lw \S14h, 14*8+4(a0) + lw \S16l, 16*8(a0) + lw \S16h, 16*8+4(a0) + lw \S17l, 17*8(a0) + lw \S17h, 17*8+4(a0) + lw \S21l, 21*8(a0) + lw \S21h, 21*8+4(a0) + lw \S23l, 23*8(a0) + lw \S23h, 23*8+4(a0) +.endm + +.macro FinalStore \ + S02h, S02l, S04h, S04l, S05h, S05l, S08h, S08l, S10h, S10l, \ + S14h, S14l, S16h, S16l, S17h, S17l, S21h, S21l, S23h, S23l + sw \S02l, 2*8(a0) + sw \S02h, 2*8+4(a0) + sw \S04l, 4*8(a0) + sw \S04h, 4*8+4(a0) + sw \S05l, 5*8(a0) + sw \S05h, 5*8+4(a0) + sw \S08l, 8*8(a0) + sw \S08h, 8*8+4(a0) + sw \S10l, 10*8(a0) + sw \S10h, 10*8+4(a0) + sw \S14l, 14*8(a0) + sw \S14h, 14*8+4(a0) + sw \S16l, 16*8(a0) + sw \S16h, 16*8+4(a0) + sw \S17l, 17*8(a0) + sw \S17h, 17*8+4(a0) + sw \S21l, 21*8(a0) + sw \S21h, 21*8+4(a0) + sw \S23l, 23*8(a0) + sw \S23h, 23*8+4(a0) +.endm + +.macro ARound \ + S02h, S02l, S04h, S04l, S05h, S05l, S08h, S08l, S10h, S10l, \ + S14h, S14l, S16h, S16l, S17h, S17l, S21h, S21l, S23h, S23l, \ + T00h, T00l, T01h, T01l, T02h, T02l, T03h, T03l, T04 + # C0=S00+S05+S10+S15+S20 + lw \T03l, 0*8(a0) + lw \T03h, 0*8+4(a0) + XOR1Init \T00h, \T00l, \S05h, \S05l, \S10h, \S10l + lw \T02l, 15*8(a0) + lw \T02h, 15*8+4(a0) + XOR1 \T00h, \T00l, \T03h, \T03l + lw \T03l, 20*8(a0) + lw \T03h, 20*8+4(a0) + XOR1 \T00h, \T00l, \T02h, \T02l + XOR1 \T00h, \T00l, \T03h, \T03l + # save C0 + sw \T00l, 18*4(sp) + sw \T00h, 19*4(sp) + + # T00=C0 + # C3=S03+S08+S13+S18+S23 + lw \T03l, 3*8(a0) + lw \T03h, 3*8+4(a0) + XOR1Init \T01h, \T01l, \S08h, \S08l, \S23h, \S23l + lw \T02l, 13*8(a0) + lw \T02h, 13*8+4(a0) + XOR1 \T01h, \T01l, \T03h, \T03l + lw \T03l, 18*8(a0) + lw \T03h, 18*8+4(a0) + XOR1 \T01h, \T01l, \T02h, \T02l + XOR1 \T01h, \T01l, \T03h, \T03l + # save C3 + sw \T01l, 24*4(sp) + sw \T01h, 25*4(sp) + + # T00=C0, T01=C3 + # D4=C3^ROL(C0,1); + ROLnInplace \T00h, \T00l, \T03h, \T03l, 1 + XOR1 \T00h, \T00l, \T01h, \T01l + # T00=D4 + + # C4=S04+S09+S14+S19+S24 + # S04,S09,S14,S19,S24 += D4 + lw \T03l, 9*8(a0) + lw \T03h, 9*8+4(a0) + XOR1Init \T01h, \T01l, \S04h, \S04l, \S14h, \S14l + XOR1 \S04h, \S04l, \T00h, \T00l + XOR1 \S14h, \S14l, \T00h, \T00l + lw \T02l, 19*8(a0) + lw \T02h, 19*8+4(a0) + XOR1 \T01h, \T01l, \T03h, \T03l + XOR1 \T03h, \T03l, \T00h, \T00l + sw \T03l, 9*8(a0) + sw \T03h, 9*8+4(a0) + lw \T03l, 24*8(a0) + lw \T03h, 24*8+4(a0) + XOR1 \T01h, \T01l, \T02h, \T02l + XOR1 \T02h, \T02l, \T00h, \T00l + sw \T02l, 19*8(a0) + sw \T02h, 19*8+4(a0) + XOR1 \T01h, \T01l, \T03h, \T03l + XOR1 \T03h, \T03l, \T00h, \T00l + sw \T03l, 24*8(a0) + sw \T03h, 24*8+4(a0) + # save C4 + sw \T01l, 26*4(sp) + sw \T01h, 27*4(sp) + # T01=C4 + + # C1=S01+S06+S11+S16+S21 + lw \T03l, 1*8(a0) + lw \T03h, 1*8+4(a0) + XOR1Init \T00h, \T00l, \S16h, \S16l, \S21h, \S21l + lw \T02l, 6*8(a0) + lw \T02h, 6*8+4(a0) + XOR1 \T00h, \T00l, \T03h, \T03l + lw \T03l, 11*8(a0) + lw \T03h, 11*8+4(a0) + XOR1 \T00h, \T00l, \T02h, \T02l + XOR1 \T00h, \T00l, \T03h, \T03l + # save C1 + sw \T00l, 20*4(sp) + sw \T00h, 21*4(sp) + # T01=C4,T00=C1 + + # D0=C4^ROL(C1,1) + ROLnInplace \T00h, \T00l, \T03h, \T03l, 1 + XOR1 \T00h, \T00l, \T01h, \T01l + # T01=C4,T00=D0 + + # S00,S05,S10,S15,S20 += D0 + lw \T02l, 0*8(a0) + lw \T02h, 0*8+4(a0) + XOR1 \S05h, \S05l, \T00h, \T00l + XOR1 \T02h, \T02l, \T00h, \T00l + sw \T02l, 0*8(a0) + sw \T02h, 0*8+4(a0) + lw \T02l, 15*8(a0) + lw \T02h, 15*8+4(a0) + XOR1 \S10h, \S10l, \T00h, \T00l + XOR1 \T02h, \T02l, \T00h, \T00l + lw \T03l, 20*8(a0) + lw \T03h, 20*8+4(a0) + sw \T02l, 15*8(a0) + sw \T02h, 15*8+4(a0) + XOR1 \T03h, \T03l, \T00h, \T00l + sw \T03l, 20*8(a0) + sw \T03h, 20*8+4(a0) + + # T01=C4 + # D2=C1^ROL(C3,1) + lw \T02l, 24*4(sp) + lw \T02h, 25*4(sp) + lw \T00l, 20*4(sp) + lw \T00h, 21*4(sp) + ROLnInplace \T02h, \T02l, \T03h, \T03l, 1 + XOR1 \T02h, \T02l, \T00h, \T00l + + # T01=C4,T02=D2 + # C2=S02+S07+S12+S17+S22 + # S02,S07,S12,S17,S22 += D2 + lw \T03l, 7*8(a0) + lw \T03h, 7*8+4(a0) + XOR1Init \T00h, \T00l, \S02h, \S02l, \S17h, \S17l + XOR1 \T00h, \T00l, \T03h, \T03l + XOR1 \T03h, \T03l, \T02h, \T02l + sw \T03l, 7*8(a0) + sw \T03h, 7*8+4(a0) + + lw \T03l, 12*8(a0) + lw \T03h, 12*8+4(a0) + XOR1 \S02h, \S02l, \T02h, \T02l + XOR1 \T00h, \T00l, \T03h, \T03l + XOR1 \T03h, \T03l, \T02h, \T02l + sw \T03l, 12*8(a0) + sw \T03h, 12*8+4(a0) + + lw \T03l, 22*8(a0) + lw \T03h, 22*8+4(a0) + XOR1 \S17h, \S17l, \T02h, \T02l + XOR1 \T00h, \T00l, \T03h, \T03l + XOR1 \T03h, \T03l, \T02h, \T02l + sw \T03l, 22*8(a0) + sw \T03h, 22*8+4(a0) + # save C2 + sw \T00l, 22*4(sp) + sw \T00h, 23*4(sp) + # T01=C4,T00=C2 + + # D3=C2^ROL(C4,1) + ROLnInplace \T01h, \T01l, \T03h, \T03l, 1 + XOR1 \T01h, \T01l, \T00h, \T00l + # T01=D3 + + # S03,S08,S13,S18,S23 += D3 + lw \T03l, 3*8(a0) + lw \T03h, 3*8+4(a0) + XOR1 \S08h, \S08l, \T01h, \T01l + XOR1 \T03h, \T03l, \T01h, \T01l + sw \T03l, 3*8(a0) + sw \T03h, 3*8+4(a0) + lw \T02l, 13*8(a0) + lw \T02h, 13*8+4(a0) + XOR1 \S23h, \S23l, \T01h, \T01l + XOR1 \T02h, \T02l, \T01h, \T01l + lw \T03l, 18*8(a0) + lw \T03h, 18*8+4(a0) + sw \T02l, 13*8(a0) + sw \T02h, 13*8+4(a0) + XOR1 \T03h, \T03l, \T01h, \T01l + sw \T03l, 18*8(a0) + sw \T03h, 18*8+4(a0) + + # T00=C2 + # D1=C0^ROL(C2,1) + lw \T01l, 18*4(sp) + lw \T01h, 19*4(sp) + ROLnInplace \T00h, \T00l, \T03h, \T03l, 1 + XOR1 \T00h, \T00l, \T01h, \T01l + # T00=D1 + + # S01,S06,S11,S16,S21 += D1 + lw \T02l, 1*8(a0) + lw \T02h, 1*8+4(a0) + XOR1 \S16h, \S16l, \T00h, \T00l + XOR1 \T02h, \T02l, \T00h, \T00l + sw \T02l, 1*8(a0) + sw \T02h, 1*8+4(a0) + lw \T03l, 6*8(a0) + lw \T03h, 6*8+4(a0) + XOR1 \S21h, \S21l, \T00h, \T00l + XOR1 \T03h, \T03l, \T00h, \T00l + lw \T02l, 11*8(a0) + lw \T02h, 11*8+4(a0) + sw \T03l, 6*8(a0) + sw \T03h, 6*8+4(a0) + XOR1 \T02h, \T02l, \T00h, \T00l + sw \T02l, 11*8(a0) + sw \T02h, 11*8+4(a0) + + lw \T00l, 0*8(a0) + lw \T00h, 0*8+4(a0) + # ROLn \T01h, \T01l, \S06h, \S06l, 44 + # ROLn \S00h, \S00l, \S21h, \S21l, 2 + lw \T01l, 6*8(a0) + lw \T01h, 6*8+4(a0) + ROLn \T03h, \T03l, \S21h, \S21l, 2 + ROLnInplace \T01h, \T01l, \T02h, \T02l, 44 + sw \T03l, 0*8(a0) + sw \T03h, 0*8+4(a0) + # ROLn \S21h, \S21l, \S08h, \S08l, 55 + ROLn \S21h, \S21l, \S08h, \S08l, 55 + # ROLn \S08h, \S08l, \S16h, \S16l, 45 + ROLn \S08h, \S08l, \S16h, \S16l, 45 + # ROLn \S16h, \S16l, \S05h, \S05l, 36 + # ROLn \S05h, \S05l, \S03h, \S03l, 28 + # ROLn \S03h, \S03l, \S18h, \S18l, 21 + lw \T02l, 3*8(a0) + lw \T02h, 3*8+4(a0) + ROLn \S16h, \S16l, \S05h, \S05l, 36 + lw \T03l, 18*8(a0) + lw \T03h, 18*8+4(a0) + ROLn \S05h, \S05l, \T02h, \T02l, 28 + ROLn \T02h, \T02l, \T03h, \T03l, 21 + # ROLn \S18h, \S18l, \S13h, \S13l, 25 + lw \T03l, 13*8(a0) + lw \T03h, 13*8+4(a0) + sw \T02l, 3*8(a0) + sw \T02h, 3*8+4(a0) + ROLnInplace \T03h, \T03l, \T04, \T02l, 25 + sw \T03l, 18*8(a0) + sw \T03h, 18*8+4(a0) + # ROLn \S13h, \S13l, \S10h, \S10l, 3 + # ROLn \S10h, \S10l, \S01h, \S01l, 1 + ROLn \T02h, \T02l, \S10h, \S10l, 3 + lw \T03l, 1*8(a0) + lw \T03h, 1*8+4(a0) + sw \T02l, 13*8(a0) + sw \T02h, 13*8+4(a0) + ROLn \S10h, \S10l, \T03h, \T03l, 1 + # ROLn \S01h, \S01l, \S02h, \S02l, 62 + # ROLn \S02h, \S02l, \S12h, \S12l, 43 + ROLn \T02h, \T02l, \S02h, \S02l, 62 + lw \T03l, 12*8(a0) + lw \T03h, 12*8+4(a0) + sw \T02l, 1*8(a0) + sw \T02h, 1*8+4(a0) + # ROLn \S12h, \S12l, \S09h, \S09l, 20 + # ROLn \S09h, \S09l, \S22h, \S22l, 61 + lw \T02l, 9*8(a0) + lw \T02h, 9*8+4(a0) + ROLn \S02h, \S02l, \T03h, \T03l, 43 + ROLn \T03h, \T03l, \T02h, \T02l, 20 + lw \T02l, 22*8(a0) + lw \T02h, 22*8+4(a0) + sw \T03l, 12*8(a0) + sw \T03h, 12*8+4(a0) + ROLnInplace \T02h, \T02l, \T04, \T03l, 61 + sw \T02l, 9*8(a0) + sw \T02h, 9*8+4(a0) + # ROLn \S22h, \S22l, \S14h, \S14l, 39 + # ROLn \S14h, \S14l, \S20h, \S20l, 18 + ROLn \T03h, \T03l, \S14h, \S14l, 39 + lw \T02l, 20*8(a0) + lw \T02h, 20*8+4(a0) + sw \T03l, 22*8(a0) + sw \T03h, 22*8+4(a0) + ROLn \S14h, \S14l, \T02h, \T02l, 18 + # ROLn \S20h, \S20l, \S23h, \S23l, 56 + # ROLn \S23h, \S23l, \S15h, \S15l, 41 + ROLn \T02h, \T02l, \S23h, \S23l, 56 + lw \T03l, 15*8(a0) + lw \T03h, 15*8+4(a0) + sw \T02l, 20*8(a0) + sw \T02h, 20*8+4(a0) + ROLn \S23h, \S23l, \T03h, \T03l, 41 + # ROLn \S15h, \S15l, \S04h, \S04l, 27 + # ROLn \S04h, \S04l, \S24h, \S24l, 14 + ROLn \T02h, \T02l, \S04h, \S04l, 27 + lw \T03l, 24*8(a0) + lw \T03h, 24*8+4(a0) + sw \T02l, 15*8(a0) + sw \T02h, 15*8+4(a0) + ROLn \S04h, \S04l, \T03h, \T03l, 14 + # ROLn \S24h, \S24l, \S17h, \S17l, 15 + # ROLn \S17h, \S17l, \S11h, \S11l, 10 + ROLn \T02h, \T02l, \S17h, \S17l, 15 + lw \T03l, 11*8(a0) + lw \T03h, 11*8+4(a0) + sw \T02l, 24*8(a0) + sw \T02h, 24*8+4(a0) + # ROLn \S11h, \S11l, \S07h, \S07l, 6 + lw \T04, 7*8(a0) + lw \T02l, 7*8+4(a0) + ROLn \S17h, \S17l, \T03h, \T03l, 10 + ROLnInplace \T02l, \T04, \T03h, \T03l, 6 + # ROLn \S19h, \S19l, \S19h, \S19l, \T04, 8 + lw \T03l, 19*8(a0) + lw \T03h, 19*8+4(a0) + sw \T04, 11*8(a0) + sw \T02l, 11*8+4(a0) + ROLnInplace \T03h, \T03l, \T02h, \T04, 8 + # store T00,T01 + sw \T00l, 18*4(sp) + sw \T00h, 19*4(sp) + sw \T01l, 20*4(sp) + sw \T01h, 21*4(sp) + sw \T03l, 19*8(a0) + sw \T03h, 19*8+4(a0) + + # chi - start + # T00,T01,S08,T02,S05=S'06,S'07,S'08,S'09,S'05 + lw \T01l, 13*8(a0) + lw \T01h, 13*8+4(a0) + lw \T00l, 12*8(a0) + lw \T00h, 12*8+4(a0) + ChiOp \T03h, \T03l, \T00h, \T00l, \T01h, \T01l, \S08h, \S08l, \T03h, \T03l + lw \T02l, 9*8(a0) + lw \T02h, 9*8+4(a0) + sw \T03l, 6*8(a0) + sw \T03h, 6*8+4(a0) + ChiOp \T03h, \T03l, \T01h, \T01l, \S08h, \S08l, \T02h, \T02l, \T03h, \T03l + sw \T03l, 7*8(a0) + sw \T03h, 7*8+4(a0) + ChiOp \S08h, \S08l, \S08h, \S08l, \T02h, \T02l, \S05h, \S05l, \T03h, \T03l + ChiOp \T02h, \T02l, \T02h, \T02l, \S05h, \S05l, \T00h, \T00l, \T03h, \T03l + sw \T02l, 9*8(a0) + sw \T02h, 9*8+4(a0) + # ChiOp \S05h, \S05l, \S05h, \S05l, \T00h, \T00l, \T01h, \T01l, \T03h, \T03l + andn \T03l, \T01l, \T00l + andn \T03h, \T01h, \T00h + lw \T00l, 18*8(a0) + xor \S05h, \T03h, \S05h + lw \T00h, 18*8+4(a0) + xor \S05l, \T03l, \S05l + lw \T01l, 19*8(a0) + lw \T01h, 19*8+4(a0) + + # T00,T01,S14,S10,T02=S'12,S'13,S'14,S'10,S'11 + # ChiOp \T03h, \T03l, \T00h, \T00l, \T01h, \T01l, \S14h, \S14l, \T03h, \T03l + andn \T03l, \S14l, \T01l + lw \T02l, 11*8(a0) + andn \T03h, \S14h, \T01h + lw \T02h, 11*8+4(a0) + xor \T03l, \T03l, \T00l + xor \T03h, \T03h, \T00h + sw \T03l, 12*8(a0) + sw \T03h, 12*8+4(a0) + ChiOp \T03h, \T03l, \T01h, \T01l, \S14h, \S14l, \S10h, \S10l, \T03h, \T03l + sw \T03l, 13*8(a0) + sw \T03h, 13*8+4(a0) + ChiOp \S14h, \S14l, \S14h, \S14l, \S10h, \S10l, \T02h, \T02l, \T03h, \T03l + ChiOp \S10h, \S10l, \S10h, \S10l, \T02h, \T02l, \T00h, \T00l, \T03h, \T03l + ChiOp \T02h, \T02l, \T02h, \T02l, \T00h, \T00l, \T01h, \T01l, \T03h, \T03l + lw \T01l, 20*8(a0) + lw \T01h, 20*8+4(a0) + sw \T02l, 11*8(a0) + sw \T02h, 11*8+4(a0) + + # T00,T01,T02,S16,S17=S'18,S'19,S'15,S'16,S'17 + lw \T00l, 24*8(a0) + lw \T00h, 24*8+4(a0) + lw \T02l, 15*8(a0) + lw \T02h, 15*8+4(a0) + ChiOp \T03h, \T03l, \T00h, \T00l, \T01h, \T01l, \T02h, \T02l, \T03h, \T03l + sw \T03l, 18*8(a0) + sw \T03h, 18*8+4(a0) + ChiOp \T03h, \T03l, \T01h, \T01l, \T02h, \T02l, \S16h, \S16l, \T03h, \T03l + sw \T03l, 19*8(a0) + sw \T03h, 19*8+4(a0) + ChiOp \T02h, \T02l, \T02h, \T02l, \S16h, \S16l, \S17h, \S17l, \T03h, \T03l + sw \T02l, 15*8(a0) + sw \T02h, 15*8+4(a0) + ChiOp \S16h, \S16l, \S16h, \S16l, \S17h, \S17l, \T00h, \T00l, \T03h, \T03l + # ChiOp \S17h, \S17l, \S17h, \S17l, \T00h, \T00l, \T01h, \T01l, \T03h, \T03l + andn \T03l, \T01l, \T00l + andn \T03h, \T01h, \T00h + lw \T00l, 0*8(a0) + lw \T00h, 0*8+4(a0) + xor \S17h, \S17h, \T03h + lw \T01l, 1*8(a0) + xor \S17l, \S17l, \T03l + lw \T01h, 1*8+4(a0) + + # T00,T01,S21,T02,S23=S'24,S'20,S'21,S'22,S'23 + lw \T02l, 22*8(a0) + lw \T02h, 22*8+4(a0) + ChiOp \T03h, \T03l, \T00h, \T00l, \T01h, \T01l, \S21h, \S21l, \T03h, \T03l + sw \T03l, 24*8(a0) + sw \T03h, 24*8+4(a0) + ChiOp \T03h, \T03l, \T01h, \T01l, \S21h, \S21l, \T02h, \T02l, \T03h, \T03l + sw \T03l, 20*8(a0) + sw \T03h, 20*8+4(a0) + ChiOp \S21h, \S21l, \S21h, \S21l, \T02h, \T02l, \S23h, \S23l, \T03h, \T03l + ChiOp \T02h, \T02l, \T02h, \T02l, \S23h, \S23l, \T00h, \T00l, \T03h, \T03l + sw \T02l, 22*8(a0) + sw \T02h, 22*8+4(a0) + # ChiOp \S23h, \S23l, \S23h, \S23l, \T00h, \T00l, \T01h, \T01l, \T03h, \T03l + andn \T03l, \T01l, \T00l + andn \T03h, \T01h, \T00h + lw \T00l, 18*4(sp) + lw \T00h, 19*4(sp) + xor \S23h, \S23h, \T03h + lw \T01l, 20*4(sp) + lw \T01h, 21*4(sp) + xor \S23l, \S23l, \T03l + + # T00,T01,S02,T02,S04=S'00-S'04 + # restore T00,T01 from stack + ChiOp \T03h, \T03l, \T00h, \T00l, \T01h, \T01l, \S02h, \S02l, \T03h, \T03l + # Itoa + lw \T04, 17*4(sp) + lw \T02l, 0(\T04) + lw \T02h, 4(\T04) + addi \T04, \T04, 8 + sw \T04, 17*4(sp) + XOR1 \T03h, \T03l, \T02h, \T02l + lw \T02l, 3*8(a0) + lw \T02h, 3*8+4(a0) + sw \T03l, 0*8(a0) + sw \T03h, 0*8+4(a0) + + ChiOp \T03h, \T03l, \T01h, \T01l, \S02h, \S02l, \T02h, \T02l, \T03h, \T03l + sw \T03l, 1*8(a0) + sw \T03h, 1*8+4(a0) + ChiOp \S02h, \S02l, \S02h, \S02l, \T02h, \T02l, \S04h, \S04l, \T03h, \T03l + ChiOp \T03h, \T03l, \T02h, \T02l, \S04h, \S04l, \T00h, \T00l, \T03h, \T03l + sw \T03l, 3*8(a0) + sw \T03h, 3*8+4(a0) + ChiOp \S04h, \S04l, \S04h, \S04l, \T00h, \T00l, \T01h, \T01l, \T03h, \T03l +.endm + +# stack: +# 0*4-14*4 for saving registers +# 15*4 for saving a0 +# 16*4 for loop control +# 17*4 for table index +# 18*4,19*4 for C0 +# 20*4,21*4 for C1 +# 22*4,23*4 for C2 +# 24*4,25*4 for C3 +# 26*4,27*4 for C4 +.globl KeccakF1600_StatePermute_RV32ASM +.align 2 +KeccakF1600_StatePermute_RV32ASM: + addi sp, sp, -4*28 + SaveRegs + la tp, constants_keccak + sw tp, 17*4(sp) + + InitLoad \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5 + + li tp, 24 + +loop_start: + sw tp, 16*4(sp) + ARound \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + + lw tp, 16*4(sp) + addi tp, tp, -1 + bnez tp, loop_start + + FinalStore \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5 + + RestoreRegs + addi sp, sp, 4*28 + ret \ No newline at end of file diff --git a/examples/naive/riscv/keccak/fips202_rv32imb_bitinter.s b/examples/naive/riscv/keccak/fips202_rv32imb_bitinter.s new file mode 100644 index 000000000..7c0bf263c --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32imb_bitinter.s @@ -0,0 +1,613 @@ +.data +.align 2 +constants_keccak: +.word 0x00000001 +.word 0x00000000 +.word 0x00000000 +.word 0x00000089 +.word 0x00000000 +.word 0x8000008b +.word 0x00000000 +.word 0x80008080 +.word 0x00000001 +.word 0x0000008b +.word 0x00000001 +.word 0x00008000 +.word 0x00000001 +.word 0x80008088 +.word 0x00000001 +.word 0x80000082 +.word 0x00000000 +.word 0x0000000b +.word 0x00000000 +.word 0x0000000a +.word 0x00000001 +.word 0x00008082 +.word 0x00000000 +.word 0x00008003 +.word 0x00000001 +.word 0x0000808b +.word 0x00000001 +.word 0x8000000b +.word 0x00000001 +.word 0x8000008a +.word 0x00000001 +.word 0x80000081 +.word 0x00000000 +.word 0x80000081 +.word 0x00000000 +.word 0x80000008 +.word 0x00000000 +.word 0x00000083 +.word 0x00000000 +.word 0x80008003 +.word 0x00000001 +.word 0x80008088 +.word 0x00000000 +.word 0x80000088 +.word 0x00000001 +.word 0x00008000 +.word 0x00000000 +.word 0x80008082 + +.text + +.macro SaveRegs + sw s0, 0*4(sp) + sw s1, 1*4(sp) + sw s2, 2*4(sp) + sw s3, 3*4(sp) + sw s4, 4*4(sp) + sw s5, 5*4(sp) + sw s6, 6*4(sp) + sw s7, 7*4(sp) + sw s8, 8*4(sp) + sw s9, 9*4(sp) + sw s10, 10*4(sp) + sw s11, 11*4(sp) + sw gp, 12*4(sp) + sw tp, 13*4(sp) + sw ra, 14*4(sp) +.endm + +.macro RestoreRegs + lw s0, 0*4(sp) + lw s1, 1*4(sp) + lw s2, 2*4(sp) + lw s3, 3*4(sp) + lw s4, 4*4(sp) + lw s5, 5*4(sp) + lw s6, 6*4(sp) + lw s7, 7*4(sp) + lw s8, 8*4(sp) + lw s9, 9*4(sp) + lw s10, 10*4(sp) + lw s11, 11*4(sp) + lw gp, 12*4(sp) + lw tp, 13*4(sp) + lw ra, 14*4(sp) +.endm + +.macro XOR1Init outh, outl, in0h, in0l, in1h, in1l + xor \outl, \in0l, \in1l + xor \outh, \in0h, \in1h +.endm + +.macro XOR1 outh, outl, inh, inl + xor \outl, \outl, \inl + xor \outh, \outh, \inh +.endm + +.macro XOREach \ + S00h, S00l, S01h, S01l,\ + S02h, S02l, S03h, S03l,\ + S04h, S04l, Dh, Dl + XOR1 \S00h, \S00l, \Dh, \Dl + XOR1 \S01h, \S01l, \Dh, \Dl + XOR1 \S02h, \S02l, \Dh, \Dl + XOR1 \S03h, \S03l, \Dh, \Dl + XOR1 \S04h, \S04l, \Dh, \Dl +.endm + +.macro ROLn_e outh, outl, inh, inl, n + rori \outl, \inl, 32-\n + rori \outh, \inh, 32-\n +.endm + +.macro ROLn_o outh, outl, inh, inl, n + rori \outh, \inl, 32-\n + rori \outl, \inh, 32-(\n+1) +.endm + +.macro ROL1 outh, outl, inh, inl + mv \outh, \inl + rori \outl, \inh, 32-1 +.endm + +# ROL1 for outh,outl and then xor with inh,inl +.macro ROL1XORInplace outh, outl, inh, inl, T + # ROL1(outh,outl) = (outl,ROL1_32b(outh,1)) + rori \T, \outh, 32-1 + xor \outh, \outl, \inh + xor \outl, \T, \inl +.endm + +.macro ChiOp \ + outh, outl, \ + S00h, S00l, S01h, S01l, S02h, S02l, \ + Th, Tl + andn \Tl, \S02l, \S01l + andn \Th, \S02h, \S01h + xor \outl, \Tl, \S00l + xor \outh, \Th, \S00h +.endm + +.macro InitLoad \ + S02h, S02l, S04h, S04l, S05h, S05l, S08h, S08l, S10h, S10l, \ + S14h, S14l, S16h, S16l, S17h, S17l, S21h, S21l, S23h, S23l + lw \S02l, 2*8(a0) + lw \S02h, 2*8+4(a0) + lw \S04l, 4*8(a0) + lw \S04h, 4*8+4(a0) + lw \S05l, 5*8(a0) + lw \S05h, 5*8+4(a0) + lw \S08l, 8*8(a0) + lw \S08h, 8*8+4(a0) + lw \S10l, 10*8(a0) + lw \S10h, 10*8+4(a0) + lw \S14l, 14*8(a0) + lw \S14h, 14*8+4(a0) + lw \S16l, 16*8(a0) + lw \S16h, 16*8+4(a0) + lw \S17l, 17*8(a0) + lw \S17h, 17*8+4(a0) + lw \S21l, 21*8(a0) + lw \S21h, 21*8+4(a0) + lw \S23l, 23*8(a0) + lw \S23h, 23*8+4(a0) +.endm + +.macro FinalStore \ + S02h, S02l, S04h, S04l, S05h, S05l, S08h, S08l, S10h, S10l, \ + S14h, S14l, S16h, S16l, S17h, S17l, S21h, S21l, S23h, S23l + sw \S02l, 2*8(a0) + sw \S02h, 2*8+4(a0) + sw \S04l, 4*8(a0) + sw \S04h, 4*8+4(a0) + sw \S05l, 5*8(a0) + sw \S05h, 5*8+4(a0) + sw \S08l, 8*8(a0) + sw \S08h, 8*8+4(a0) + sw \S10l, 10*8(a0) + sw \S10h, 10*8+4(a0) + sw \S14l, 14*8(a0) + sw \S14h, 14*8+4(a0) + sw \S16l, 16*8(a0) + sw \S16h, 16*8+4(a0) + sw \S17l, 17*8(a0) + sw \S17h, 17*8+4(a0) + sw \S21l, 21*8(a0) + sw \S21h, 21*8+4(a0) + sw \S23l, 23*8(a0) + sw \S23h, 23*8+4(a0) +.endm + +.macro ARound \ + S02h, S02l, S04h, S04l, S05h, S05l, S08h, S08l, S10h, S10l, \ + S14h, S14l, S16h, S16l, S17h, S17l, S21h, S21l, S23h, S23l, \ + T00h, T00l, T01h, T01l, T02h, T02l, T03h, T03l, T04 + # C0=S00+S05+S10+S15+S20 + lw \T03l, 0*8(a0) + lw \T03h, 0*8+4(a0) + XOR1Init \T00h, \T00l, \S05h, \S05l, \S10h, \S10l + lw \T02l, 15*8(a0) + lw \T02h, 15*8+4(a0) + XOR1 \T00h, \T00l, \T03h, \T03l + lw \T03l, 20*8(a0) + lw \T03h, 20*8+4(a0) + XOR1 \T00h, \T00l, \T02h, \T02l + XOR1 \T00h, \T00l, \T03h, \T03l + lw \T03l, 3*8(a0) + lw \T03h, 3*8+4(a0) + # save C0 + sw \T00l, 18*4(sp) + sw \T00h, 19*4(sp) + # T00=C0 + # C3=S03+S08+S13+S18+S23 + XOR1Init \T01h, \T01l, \S08h, \S08l, \S23h, \S23l + lw \T02l, 13*8(a0) + lw \T02h, 13*8+4(a0) + XOR1 \T01h, \T01l, \T03h, \T03l + lw \T03l, 18*8(a0) + lw \T03h, 18*8+4(a0) + XOR1 \T01h, \T01l, \T02h, \T02l + XOR1 \T01h, \T01l, \T03h, \T03l + # save C3 + sw \T01l, 24*4(sp) + sw \T01h, 25*4(sp) + # T00=C0, T01=C3 + # D4=C3^ROL(C0,1); + ROL1XORInplace \T00h, \T00l, \T01h, \T01l, \T03h + # T00=D4 + # C4=S04+S09+S14+S19+S24 + # S04,S09,S14,S19,S24 += D4 + lw \T03l, 9*8(a0) + lw \T03h, 9*8+4(a0) + XOR1Init \T01h, \T01l, \S04h, \S04l, \S14h, \S14l + XOR1 \S04h, \S04l, \T00h, \T00l + XOR1 \S14h, \S14l, \T00h, \T00l + lw \T02l, 19*8(a0) + lw \T02h, 19*8+4(a0) + XOR1 \T01h, \T01l, \T03h, \T03l + XOR1 \T03h, \T03l, \T00h, \T00l + sw \T03l, 9*8(a0) + sw \T03h, 9*8+4(a0) + lw \T03l, 24*8(a0) + lw \T03h, 24*8+4(a0) + XOR1 \T01h, \T01l, \T02h, \T02l + XOR1 \T02h, \T02l, \T00h, \T00l + XOR1 \T01h, \T01l, \T03h, \T03l + sw \T02l, 19*8(a0) + sw \T02h, 19*8+4(a0) + XOR1 \T03h, \T03l, \T00h, \T00l + # save C4 + sw \T01l, 26*4(sp) + sw \T01h, 27*4(sp) + sw \T03l, 24*8(a0) + sw \T03h, 24*8+4(a0) + # T01=C4 + # C1=S01+S06+S11+S16+S21 + lw \T03l, 1*8(a0) + lw \T03h, 1*8+4(a0) + XOR1Init \T00h, \T00l, \S16h, \S16l, \S21h, \S21l + lw \T02l, 6*8(a0) + lw \T02h, 6*8+4(a0) + XOR1 \T00h, \T00l, \T03h, \T03l + lw \T03l, 11*8(a0) + lw \T03h, 11*8+4(a0) + XOR1 \T00h, \T00l, \T02h, \T02l + XOR1 \T00h, \T00l, \T03h, \T03l + # save C1 + sw \T00l, 20*4(sp) + sw \T00h, 21*4(sp) + # T01=C4,T00=C1 + # D0=C4^ROL(C1,1) + ROL1XORInplace \T00h, \T00l, \T01h, \T01l, \T03h + # T01=C4,T00=D0 + # S00,S05,S10,S15,S20 += D0 + lw \T02l, 0*8(a0) + lw \T02h, 0*8+4(a0) + XOR1 \S05h, \S05l, \T00h, \T00l + XOR1 \T02h, \T02l, \T00h, \T00l + sw \T02l, 0*8(a0) + sw \T02h, 0*8+4(a0) + lw \T02l, 15*8(a0) + lw \T02h, 15*8+4(a0) + XOR1 \S10h, \S10l, \T00h, \T00l + XOR1 \T02h, \T02l, \T00h, \T00l + lw \T03l, 20*8(a0) + lw \T03h, 20*8+4(a0) + sw \T02l, 15*8(a0) + sw \T02h, 15*8+4(a0) + lw \T02h, 25*4(sp) + lw \T02l, 24*4(sp) + XOR1 \T03h, \T03l, \T00h, \T00l + sw \T03l, 20*8(a0) + sw \T03h, 20*8+4(a0) + # T01=C4 + # D2=C1^ROL(C3,1) + lw \T00h, 21*4(sp) + lw \T00l, 20*4(sp) + ROL1XORInplace \T02h, \T02l, \T00h, \T00l, \T03h + # T01=C4,T02=D2 + # C2=S02+S07+S12+S17+S22 + # S02,S07,S12,S17,S22 += D2 + lw \T03l, 7*8(a0) + lw \T03h, 7*8+4(a0) + XOR1Init \T00h, \T00l, \S02h, \S02l, \S17h, \S17l + XOR1 \T00h, \T00l, \T03h, \T03l + XOR1 \T03h, \T03l, \T02h, \T02l + sw \T03l, 7*8(a0) + sw \T03h, 7*8+4(a0) + lw \T03l, 12*8(a0) + lw \T03h, 12*8+4(a0) + XOR1 \S02h, \S02l, \T02h, \T02l + XOR1 \T00h, \T00l, \T03h, \T03l + XOR1 \T03h, \T03l, \T02h, \T02l + sw \T03l, 12*8(a0) + sw \T03h, 12*8+4(a0) + lw \T03l, 22*8(a0) + lw \T03h, 22*8+4(a0) + XOR1 \S17h, \S17l, \T02h, \T02l + XOR1 \T00h, \T00l, \T03h, \T03l + XOR1 \T03h, \T03l, \T02h, \T02l + # save C2 + sw \T00l, 22*4(sp) + sw \T00h, 23*4(sp) + sw \T03l, 22*8(a0) + sw \T03h, 22*8+4(a0) + # T01=C4,T00=C2 + # D3=C2^ROL(C4,1) + ROL1XORInplace \T01h, \T01l, \T00h, \T00l, \T03h + # T01=D3 + # S03,S08,S13,S18,S23 += D3 + lw \T03l, 3*8(a0) + lw \T03h, 3*8+4(a0) + XOR1 \S08h, \S08l, \T01h, \T01l + XOR1 \T03h, \T03l, \T01h, \T01l + lw \T02l, 13*8(a0) + lw \T02h, 13*8+4(a0) + sw \T03l, 3*8(a0) + sw \T03h, 3*8+4(a0) + XOR1 \T02h, \T02l, \T01h, \T01l + lw \T03l, 18*8(a0) + lw \T03h, 18*8+4(a0) + XOR1 \S23h, \S23l, \T01h, \T01l + sw \T02l, 13*8(a0) + sw \T02h, 13*8+4(a0) + XOR1 \T03h, \T03l, \T01h, \T01l + lw \T01l, 18*4(sp) + lw \T01h, 19*4(sp) + sw \T03l, 18*8(a0) + sw \T03h, 18*8+4(a0) + # T00=C2 + # D1=C0^ROL(C2,1) + ROL1XORInplace \T00h, \T00l, \T01h, \T01l, \T03h + # T00=D1 + # S01,S06,S11,S16,S21 += D1 + lw \T02l, 1*8(a0) + lw \T02h, 1*8+4(a0) + XOR1 \S16h, \S16l, \T00h, \T00l + XOR1 \T02h, \T02l, \T00h, \T00l + lw \T03l, 6*8(a0) + lw \T03h, 6*8+4(a0) + sw \T02l, 1*8(a0) + sw \T02h, 1*8+4(a0) + XOR1 \T03h, \T03l, \T00h, \T00l + lw \T02l, 11*8(a0) + lw \T02h, 11*8+4(a0) + XOR1 \S21h, \S21l, \T00h, \T00l + sw \T03l, 6*8(a0) + sw \T03h, 6*8+4(a0) + XOR1 \T02h, \T02l, \T00h, \T00l + sw \T02l, 11*8(a0) + sw \T02h, 11*8+4(a0) + mv \T02l, \T03l + mv \T02h, \T03h + ROLn_e \T03h, \T03l, \S21h, \S21l, 1 + lw \T00l, 0*8(a0) + lw \T00h, 0*8+4(a0) + ROLn_e \T01h, \T01l, \T02h, \T02l, 22 + sw \T03l, 0*8(a0) + sw \T03h, 0*8+4(a0) + ROLn_o \S21h, \S21l, \S08h, \S08l, 27 + lw \T02l, 3*8(a0) + lw \T02h, 3*8+4(a0) + ROLn_o \S08h, \S08l, \S16h, \S16l, 22 + lw \T03l, 18*8(a0) + lw \T03h, 18*8+4(a0) + ROLn_e \S16h, \S16l, \S05h, \S05l, 18 + sw \T00l, 18*4(sp) + sw \T00h, 19*4(sp) + ROLn_e \S05h, \S05l, \T02h, \T02l, 14 + ROLn_o \T02h, \T02l, \T03h, \T03l, 10 + lw \T04, 13*8(a0) + sw \T02l, 3*8(a0) + lw \T02l, 13*8+4(a0) + sw \T02h, 3*8+4(a0) + ROLn_o \T03h, \T03l, \T02l, \T04, 12 + sw \T03l, 18*8(a0) + sw \T03h, 18*8+4(a0) + ROLn_o \T02h, \T02l, \S10h, \S10l, 1 + lw \T03l, 1*8(a0) + lw \T03h, 1*8+4(a0) + sw \T02l, 13*8(a0) + sw \T02h, 13*8+4(a0) + ROL1 \S10h, \S10l, \T03h, \T03l + sw \T01l, 20*4(sp) + sw \T01h, 21*4(sp) + ROLn_e \T02h, \T02l, \S02h, \S02l, 31 + lw \T03l, 12*8(a0) + lw \T03h, 12*8+4(a0) + sw \T02l, 1*8(a0) + sw \T02h, 1*8+4(a0) + lw \T02l, 9*8(a0) + lw \T02h, 9*8+4(a0) + ROLn_o \S02h, \S02l, \T03h, \T03l, 21 + ROLn_e \T03h, \T03l, \T02h, \T02l, 10 + lw \T04, 22*8(a0) + sw \T03h, 12*8+4(a0) + lw \T03h, 22*8+4(a0) + sw \T03l, 12*8(a0) + ROLn_o \T02h, \T02l, \T03h, \T04, 30 + sw \T02l, 9*8(a0) + sw \T02h, 9*8+4(a0) + ROLn_o \T03h, \T03l, \S14h, \S14l, 19 + lw \T02l, 20*8(a0) + lw \T02h, 20*8+4(a0) + sw \T03l, 22*8(a0) + sw \T03h, 22*8+4(a0) + ROLn_e \S14h, \S14l, \T02h, \T02l, 9 + ROLn_e \T02h, \T02l, \S23h, \S23l, 28 + lw \T03l, 15*8(a0) + lw \T03h, 15*8+4(a0) + sw \T02l, 20*8(a0) + sw \T02h, 20*8+4(a0) + ROLn_o \S23h, \S23l, \T03h, \T03l, 20 + ROLn_o \T02h, \T02l, \S04h, \S04l, 13 + lw \T03l, 24*8(a0) + lw \T03h, 24*8+4(a0) + sw \T02l, 15*8(a0) + sw \T02h, 15*8+4(a0) + ROLn_e \S04h, \S04l, \T03h, \T03l, 7 + ROLn_o \T02h, \T02l, \S17h, \S17l, 7 + lw \T03l, 11*8(a0) + lw \T03h, 11*8+4(a0) + sw \T02l, 24*8(a0) + sw \T02h, 24*8+4(a0) + lw \T04, 7*8(a0) + lw \T02l, 7*8+4(a0) + ROLn_e \S17h, \S17l, \T03h, \T03l, 5 + ROLn_e \T03h, \T03l, \T02l, \T04, 3 + lw \T04, 19*8(a0) + lw \T02h, 19*8+4(a0) + sw \T03l, 11*8(a0) + sw \T03h, 11*8+4(a0) + ROLn_e \T03h, \T03l, \T02h, \T04, 4 + lw \T01l, 13*8(a0) + lw \T01h, 13*8+4(a0) + sw \T03l, 19*8(a0) + sw \T03h, 19*8+4(a0) + # chi - start + # T00,T01,S08,T02,S05=S'06,S'07,S'08,S'09,S'05 + lw \T00l, 12*8(a0) + lw \T00h, 12*8+4(a0) + ChiOp \T03h, \T03l, \T00h, \T00l, \T01h, \T01l, \S08h, \S08l, \T03h, \T03l + lw \T02l, 9*8(a0) + lw \T02h, 9*8+4(a0) + sw \T03l, 6*8(a0) + sw \T03h, 6*8+4(a0) + ChiOp \T03h, \T03l, \T01h, \T01l, \S08h, \S08l, \T02h, \T02l, \T03h, \T03l + sw \T03l, 7*8(a0) + sw \T03h, 7*8+4(a0) + ChiOp \S08h, \S08l, \S08h, \S08l, \T02h, \T02l, \S05h, \S05l, \T03h, \T03l + ChiOp \T02h, \T02l, \T02h, \T02l, \S05h, \S05l, \T00h, \T00l, \T03h, \T03l + sw \T02l, 9*8(a0) + sw \T02h, 9*8+4(a0) + andn \T03l, \T01l, \T00l + andn \T03h, \T01h, \T00h + lw \T01l, 19*8(a0) + lw \T01h, 19*8+4(a0) + xor \S05h, \T03h, \S05h + xor \S05l, \T03l, \S05l + lw \T00l, 18*8(a0) + lw \T00h, 18*8+4(a0) + # T00,T01,S14,S10,T02=S'12,S'13,S'14,S'10,S'11 + andn \T03l, \S14l, \T01l + andn \T03h, \S14h, \T01h + lw \T02l, 11*8(a0) + lw \T02h, 11*8+4(a0) + xor \T03l, \T03l, \T00l + xor \T03h, \T03h, \T00h + sw \T03l, 12*8(a0) + sw \T03h, 12*8+4(a0) + ChiOp \T03h, \T03l, \T01h, \T01l, \S14h, \S14l, \S10h, \S10l, \T03h, \T03l + sw \T03l, 13*8(a0) + sw \T03h, 13*8+4(a0) + ChiOp \S14h, \S14l, \S14h, \S14l, \S10h, \S10l, \T02h, \T02l, \T03h, \T03l + ChiOp \S10h, \S10l, \S10h, \S10l, \T02h, \T02l, \T00h, \T00l, \T03h, \T03l + ChiOp \T02h, \T02l, \T02h, \T02l, \T00h, \T00l, \T01h, \T01l, \T03h, \T03l + lw \T01l, 20*8(a0) + lw \T01h, 20*8+4(a0) + sw \T02l, 11*8(a0) + sw \T02h, 11*8+4(a0) + # T00,T01,T02,S16,S17=S'18,S'19,S'15,S'16,S'17 + lw \T02l, 15*8(a0) + lw \T02h, 15*8+4(a0) + lw \T00l, 24*8(a0) + lw \T00h, 24*8+4(a0) + ChiOp \T03h, \T03l, \T00h, \T00l, \T01h, \T01l, \T02h, \T02l, \T03h, \T03l + sw \T03l, 18*8(a0) + sw \T03h, 18*8+4(a0) + ChiOp \T03h, \T03l, \T01h, \T01l, \T02h, \T02l, \S16h, \S16l, \T03h, \T03l + sw \T03l, 19*8(a0) + sw \T03h, 19*8+4(a0) + ChiOp \T02h, \T02l, \T02h, \T02l, \S16h, \S16l, \S17h, \S17l, \T03h, \T03l + sw \T02l, 15*8(a0) + sw \T02h, 15*8+4(a0) + ChiOp \S16h, \S16l, \S16h, \S16l, \S17h, \S17l, \T00h, \T00l, \T03h, \T03l + andn \T03l, \T01l, \T00l + andn \T03h, \T01h, \T00h + lw \T00l, 0*8(a0) + lw \T00h, 0*8+4(a0) + xor \S17h, \S17h, \T03h + xor \S17l, \S17l, \T03l + lw \T01l, 1*8(a0) + lw \T01h, 1*8+4(a0) + # T00,T01,S21,T02,S23=S'24,S'20,S'21,S'22,S'23 + lw \T02l, 22*8(a0) + lw \T02h, 22*8+4(a0) + ChiOp \T03h, \T03l, \T00h, \T00l, \T01h, \T01l, \S21h, \S21l, \T03h, \T03l + sw \T03l, 24*8(a0) + sw \T03h, 24*8+4(a0) + ChiOp \T03h, \T03l, \T01h, \T01l, \S21h, \S21l, \T02h, \T02l, \T03h, \T03l + sw \T03l, 20*8(a0) + sw \T03h, 20*8+4(a0) + ChiOp \S21h, \S21l, \S21h, \S21l, \T02h, \T02l, \S23h, \S23l, \T03h, \T03l + lw \T04, 17*4(sp) + ChiOp \T02h, \T02l, \T02h, \T02l, \S23h, \S23l, \T00h, \T00l, \T03h, \T03l + sw \T02l, 22*8(a0) + sw \T02h, 22*8+4(a0) + andn \T03l, \T01l, \T00l + andn \T03h, \T01h, \T00h + # restore T00,T01 from stack + lw \T00l, 18*4(sp) + lw \T00h, 19*4(sp) + xor \S23h, \S23h, \T03h + xor \S23l, \S23l, \T03l + lw \T01l, 20*4(sp) + lw \T01h, 21*4(sp) + # T00,T01,S02,T02,S04=S'00-S'04 + lw \T02l, 0(\T04) + lw \T02h, 4(\T04) + addi \T04, \T04, 8 + ChiOp \T03h, \T03l, \T00h, \T00l, \T01h, \T01l, \S02h, \S02l, \T03h, \T03l + # Itoa + sw \T04, 17*4(sp) + XOR1 \T03h, \T03l, \T02h, \T02l + lw \T02l, 3*8(a0) + lw \T02h, 3*8+4(a0) + sw \T03l, 0*8(a0) + sw \T03h, 0*8+4(a0) + ChiOp \T03h, \T03l, \T01h, \T01l, \S02h, \S02l, \T02h, \T02l, \T03h, \T03l + sw \T03l, 1*8(a0) + sw \T03h, 1*8+4(a0) + ChiOp \T03h, \T03l, \T02h, \T02l, \S04h, \S04l, \T00h, \T00l, \T03h, \T03l + sw \T03l, 3*8(a0) + sw \T03h, 3*8+4(a0) + ChiOp \S02h, \S02l, \S02h, \S02l, \T02h, \T02l, \S04h, \S04l, \T03h, \T03l + # loop control + lw \T04, 16*4(sp) + ChiOp \S04h, \S04l, \S04h, \S04l, \T00h, \T00l, \T01h, \T01l, \T03h, \T03l + addi \T04, \T04, -1 +.endm + +# stack: +# 0*4-14*4 for saving registers +# 15*4 for saving a0 +# 16*4 for loop control +# 17*4 for table index +# 18*4,19*4 for C0 +# 20*4,21*4 for C1 +# 22*4,23*4 for C2 +# 24*4,25*4 for C3 +# 26*4,27*4 for C4 +.globl KeccakF1600_StatePermute_RV32ASM +.align 2 +KeccakF1600_StatePermute_RV32ASM: + addi sp, sp, -4*28 + la t0, constants_keccak + SaveRegs + sw t0, 17*4(sp) + + InitLoad \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5 + + li tp, 24 + +loop_start: + sw tp, 16*4(sp) + ARound \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + bnez tp, loop_start + + FinalStore \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5 + + RestoreRegs + addi sp, sp, 4*28 + ret \ No newline at end of file diff --git a/examples/naive/riscv/keccak/fips202_rv32imb_bitinter_unroll.s b/examples/naive/riscv/keccak/fips202_rv32imb_bitinter_unroll.s new file mode 100644 index 000000000..af8e0d120 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32imb_bitinter_unroll.s @@ -0,0 +1,662 @@ +.data +.align 2 +constants_keccak: +.word 0x00000001 +.word 0x00000000 +.word 0x00000000 +.word 0x00000089 +.word 0x00000000 +.word 0x8000008b +.word 0x00000000 +.word 0x80008080 +.word 0x00000001 +.word 0x0000008b +.word 0x00000001 +.word 0x00008000 +.word 0x00000001 +.word 0x80008088 +.word 0x00000001 +.word 0x80000082 +.word 0x00000000 +.word 0x0000000b +.word 0x00000000 +.word 0x0000000a +.word 0x00000001 +.word 0x00008082 +.word 0x00000000 +.word 0x00008003 +.word 0x00000001 +.word 0x0000808b +.word 0x00000001 +.word 0x8000000b +.word 0x00000001 +.word 0x8000008a +.word 0x00000001 +.word 0x80000081 +.word 0x00000000 +.word 0x80000081 +.word 0x00000000 +.word 0x80000008 +.word 0x00000000 +.word 0x00000083 +.word 0x00000000 +.word 0x80008003 +.word 0x00000001 +.word 0x80008088 +.word 0x00000000 +.word 0x80000088 +.word 0x00000001 +.word 0x00008000 +.word 0x00000000 +.word 0x80008082 + +.text + +.macro SaveRegs + sw s0, 0*4(sp) + sw s1, 1*4(sp) + sw s2, 2*4(sp) + sw s3, 3*4(sp) + sw s4, 4*4(sp) + sw s5, 5*4(sp) + sw s6, 6*4(sp) + sw s7, 7*4(sp) + sw s8, 8*4(sp) + sw s9, 9*4(sp) + sw s10, 10*4(sp) + sw s11, 11*4(sp) + sw gp, 12*4(sp) + sw tp, 13*4(sp) + sw ra, 14*4(sp) +.endm + +.macro RestoreRegs + lw s0, 0*4(sp) + lw s1, 1*4(sp) + lw s2, 2*4(sp) + lw s3, 3*4(sp) + lw s4, 4*4(sp) + lw s5, 5*4(sp) + lw s6, 6*4(sp) + lw s7, 7*4(sp) + lw s8, 8*4(sp) + lw s9, 9*4(sp) + lw s10, 10*4(sp) + lw s11, 11*4(sp) + lw gp, 12*4(sp) + lw tp, 13*4(sp) + lw ra, 14*4(sp) +.endm + +.macro InitLoad \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s + lw \S02l_s, 2*8(a0) + lw \S02h_s, 2*8+4(a0) + lw \S04l_s, 4*8(a0) + lw \S04h_s, 4*8+4(a0) + lw \S05l_s, 5*8(a0) + lw \S05h_s, 5*8+4(a0) + lw \S08l_s, 8*8(a0) + lw \S08h_s, 8*8+4(a0) + lw \S10l_s, 10*8(a0) + lw \S10h_s, 10*8+4(a0) + lw \S14l_s, 14*8(a0) + lw \S14h_s, 14*8+4(a0) + lw \S16l_s, 16*8(a0) + lw \S16h_s, 16*8+4(a0) + lw \S17l_s, 17*8(a0) + lw \S17h_s, 17*8+4(a0) + lw \S21l_s, 21*8(a0) + lw \S21h_s, 21*8+4(a0) + lw \S23l_s, 23*8(a0) + lw \S23h_s, 23*8+4(a0) +.endm + +.macro FinalStore \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s + sw \S02l_s, 2*8(a0) + sw \S02h_s, 2*8+4(a0) + sw \S04l_s, 4*8(a0) + sw \S04h_s, 4*8+4(a0) + sw \S05l_s, 5*8(a0) + sw \S05h_s, 5*8+4(a0) + sw \S08l_s, 8*8(a0) + sw \S08h_s, 8*8+4(a0) + sw \S10l_s, 10*8(a0) + sw \S10h_s, 10*8+4(a0) + sw \S14l_s, 14*8(a0) + sw \S14h_s, 14*8+4(a0) + sw \S16l_s, 16*8(a0) + sw \S16h_s, 16*8+4(a0) + sw \S17l_s, 17*8(a0) + sw \S17h_s, 17*8+4(a0) + sw \S21l_s, 21*8(a0) + sw \S21h_s, 21*8+4(a0) + sw \S23l_s, 23*8(a0) + sw \S23h_s, 23*8+4(a0) +.endm + +.macro ARound \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00h_s, \S05h_s, \S10h_s + xor \T00l_s, \S05l_s, \S10l_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \T01h_s, \S08h_s, \S23h_s + xor \T01l_s, \S08l_s, \S23l_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T03l_s, 9*8(a0) + lw \T03h_s, 9*8+4(a0) + xor \T01h_s, \S04h_s, \S14h_s + xor \T01l_s, \S04l_s, \S14l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S04l_s, \S04l_s, \T00l_s + xor \S14h_s, \S14h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 19*8(a0) + sw \T02h_s, 19*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + sw \T01l_s, 26*4(sp) + sw \T01h_s, 27*4(sp) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00h_s, \S16h_s, \S21h_s + xor \T00l_s, \S16l_s, \S21l_s + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + xor \S05h_s, \S05h_s, \T00h_s + xor \S05l_s, \S05l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \S10h_s, \S10h_s, \T00h_s + xor \S10l_s, \S10l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + lw \T02l_s, 24*4(sp) + lw \T02h_s, 25*4(sp) + lw \T00l_s, 20*4(sp) + lw \T00h_s, 21*4(sp) + rori \T03h_s, \T02h_s, 32-1 + xor \T02h_s, \T02l_s, \T00h_s + xor \T02l_s, \T03h_s, \T00l_s + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + xor \S02h_s, \S02h_s, \T02h_s + xor \S02l_s, \S02l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + lw \T03h_s, 22*8+4(a0) + xor \S17h_s, \S17h_s, \T02h_s + xor \S17l_s, \S17l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + sw \T00l_s, 22*4(sp) + sw \T00h_s, 23*4(sp) + rori \T03h_s, \T01h_s, 32-1 + xor \T01h_s, \T01l_s, \T00h_s + xor \T01l_s, \T03h_s, \T00l_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08h_s, \S08h_s, \T01h_s + xor \S08l_s, \S08l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \S23h_s, \S23h_s, \T01h_s + xor \S23l_s, \S23l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + xor \T02l_s, \T02l_s, \T01l_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + xor \S16h_s, \S16h_s, \T00h_s + xor \S16l_s, \S16l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T03l_s, 6*8(a0) + lw \T03h_s, 6*8+4(a0) + xor \S21h_s, \S21h_s, \T00h_s + xor \S21l_s, \S21l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + rori \T03h_s, \S21h_s, 32-1 + rori \T03l_s, \S21l_s, 32-1 + rori \T01h_s, \T02h_s, 32-22 + rori \T01l_s, \T02l_s, 32-22 + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + rori \S21h_s, \S08l_s, 32-27 + rori \S21l_s, \S08h_s, 32-(27+1) + rori \S08h_s, \S16l_s, 32-22 + rori \S08l_s, \S16h_s, 32-(22+1) + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + rori \S16h_s, \S05h_s, 32-18 + rori \S16l_s, \S05l_s, 32-18 + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + rori \S05h_s, \T02h_s, 32-14 + rori \S05l_s, \T02l_s, 32-14 + rori \T02h_s, \T03l_s, 32-10 + rori \T02l_s, \T03h_s, 32-(10+1) + sw \T02l_s, 3*8(a0) + lw \T02l_s, 13*8(a0) + sw \T02h_s, 3*8+4(a0) + lw \T02h_s, 13*8+4(a0) + rori \T03h_s, \T02l_s, 32-12 + rori \T03l_s, \T02h_s, 32-(12+1) + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + rori \T02h_s, \S10l_s, 32-1 + rori \T02l_s, \S10h_s, 32-(1+1) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + mv \S10h_s, \T03l_s + rori \S10l_s, \T03h_s, 32-1 + rori \T02h_s, \S02h_s, 32-31 + rori \T02l_s, \S02l_s, 32-31 + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + rori \S02h_s, \T03l_s, 32-21 + rori \S02l_s, \T03h_s, 32-(21+1) + rori \T03h_s, \T02h_s, 32-10 + rori \T03l_s, \T02l_s, 32-10 + sw \T03l_s, 12*8(a0) + lw \T03l_s, 22*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03h_s, 22*8+4(a0) + rori \T02h_s, \T03l_s, 32-30 + rori \T02l_s, \T03h_s, 32-(30+1) + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + rori \T03h_s, \S14l_s, 32-19 + rori \T03l_s, \S14h_s, 32-(19+1) + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + rori \S14h_s, \T02h_s, 32-9 + rori \S14l_s, \T02l_s, 32-9 + rori \T02h_s, \S23h_s, 32-28 + rori \T02l_s, \S23l_s, 32-28 + lw \T03l_s, 15*8(a0) + lw \T03h_s, 15*8+4(a0) + sw \T02l_s, 20*8(a0) + sw \T02h_s, 20*8+4(a0) + rori \S23h_s, \T03l_s, 32-20 + rori \S23l_s, \T03h_s, 32-(20+1) + rori \T02h_s, \S04l_s, 32-13 + rori \T02l_s, \S04h_s, 32-(13+1) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + rori \S04h_s, \T03h_s, 32-7 + rori \S04l_s, \T03l_s, 32-7 + rori \T02h_s, \S17l_s, 32-7 + rori \T02l_s, \S17h_s, 32-(7+1) + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + lw \T02l_s, 7*8(a0) + sw \T02h_s, 24*8+4(a0) + lw \T02h_s, 7*8+4(a0) + rori \S17h_s, \T03h_s, 32-5 + rori \S17l_s, \T03l_s, 32-5 + rori \T03l_s, \T02l_s, 32-3 + rori \T03h_s, \T02h_s, 32-3 + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + sw \T03l_s, 11*8(a0) + sw \T03h_s, 11*8+4(a0) + rori \T03l_s, \T02l_s, 32-4 + rori \T03h_s, \T02h_s, 32-4 + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + lw \T01l_s, 13*8(a0) + lw \T01h_s, 13*8+4(a0) + lw \T00l_s, 12*8(a0) + lw \T00h_s, 12*8+4(a0) + andn \T03h_s, \S08h_s, \T01h_s + andn \T03l_s, \S08l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + andn \T03h_s, \T02h_s, \S08h_s + andn \T03l_s, \T02l_s, \S08l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + andn \T03h_s, \S05h_s, \T02h_s + andn \T03l_s, \S05l_s, \T02l_s + xor \S08h_s, \T03h_s, \S08h_s + xor \S08l_s, \T03l_s, \S08l_s + andn \T03h_s, \T00h_s, \S05h_s + andn \T03l_s, \T00l_s, \S05l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 18*8(a0) + xor \S05h_s, \T03h_s, \S05h_s + lw \T00h_s, 18*8+4(a0) + xor \S05l_s, \T03l_s, \S05l_s + lw \T01l_s, 19*8(a0) + lw \T01h_s, 19*8+4(a0) + andn \T03l_s, \S14l_s, \T01l_s + lw \T02l_s, 11*8(a0) + andn \T03h_s, \S14h_s, \T01h_s + lw \T02h_s, 11*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + andn \T03h_s, \S10h_s, \S14h_s + andn \T03l_s, \S10l_s, \S14l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + andn \T03h_s, \T02h_s, \S10h_s + andn \T03l_s, \T02l_s, \S10l_s + xor \S14h_s, \T03h_s, \S14h_s + xor \S14l_s, \T03l_s, \S14l_s + andn \T03h_s, \T00h_s, \T02h_s + andn \T03l_s, \T00l_s, \T02l_s + xor \S10h_s, \T03h_s, \S10h_s + xor \S10l_s, \T03l_s, \S10l_s + andn \T03h_s, \T01h_s, \T00h_s + andn \T03l_s, \T01l_s, \T00l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + lw \T01l_s, 20*8(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T00l_s, 24*8(a0) + lw \T00h_s, 24*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + andn \T03h_s, \T02h_s, \T01h_s + andn \T03l_s, \T02l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + andn \T03h_s, \S16h_s, \T02h_s + andn \T03l_s, \S16l_s, \T02l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + andn \T03h_s, \S17h_s, \S16h_s + andn \T03l_s, \S17l_s, \S16l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + andn \T03h_s, \T00h_s, \S17h_s + andn \T03l_s, \T00l_s, \S17l_s + xor \S16h_s, \T03h_s, \S16h_s + xor \S16l_s, \T03l_s, \S16l_s + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + xor \S17h_s, \S17h_s, \T03h_s + lw \T01l_s, 1*8(a0) + xor \S17l_s, \S17l_s, \T03l_s + lw \T01h_s, 1*8+4(a0) + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + andn \T03h_s, \S21h_s, \T01h_s + andn \T03l_s, \S21l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + andn \T03h_s, \T02h_s, \S21h_s + andn \T03l_s, \T02l_s, \S21l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + andn \T03h_s, \S23h_s, \T02h_s + andn \T03l_s, \S23l_s, \T02l_s + xor \S21h_s, \T03h_s, \S21h_s + xor \S21l_s, \T03l_s, \S21l_s + andn \T03h_s, \T00h_s, \S23h_s + andn \T03l_s, \T00l_s, \S23l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 18*4(sp) + lw \T00h_s, 19*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + xor \S23l_s, \S23l_s, \T03l_s + andn \T03h_s, \S02h_s, \T01h_s + andn \T03l_s, \S02l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T04_s, 17*4(sp) + lw \T02l_s, 0(\T04_s) + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 8 + sw \T04_s, 17*4(sp) + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + andn \T03h_s, \T02h_s, \S02h_s + andn \T03l_s, \T02l_s, \S02l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 1*8(a0) + sw \T03h_s, 1*8+4(a0) + andn \T03h_s, \S04h_s, \T02h_s + andn \T03l_s, \S04l_s, \T02l_s + xor \S02h_s, \T03h_s, \S02h_s + xor \S02l_s, \T03l_s, \S02l_s + andn \T03h_s, \T00h_s, \S04h_s + andn \T03l_s, \T00l_s, \S04l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + andn \T03h_s, \T01h_s, \T00h_s + andn \T03l_s, \T01l_s, \T00l_s + xor \S04h_s, \T03h_s, \S04h_s + xor \S04l_s, \T03l_s, \S04l_s +.endm + +# stack: +# 0*4-14*4 for saving registers +# 15*4 for saving a0 +# 16*4 for loop control +# 17*4 for table index +# 18*4,19*4 for C0 +# 20*4,21*4 for C1 +# 22*4,23*4 for C2 +# 24*4,25*4 for C3 +# 26*4,27*4 for C4 +.globl KeccakF1600_StatePermute_RV32ASM +.align 2 +KeccakF1600_StatePermute_RV32ASM: + addi sp, sp, -4*28 + SaveRegs + la tp, constants_keccak + sw tp, 17*4(sp) + + InitLoad \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5 + + li tp, 24 + +loop_start: + sw tp, 16*4(sp) + ARound \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + + lw tp, 16*4(sp) + addi tp, tp, -1 + bnez tp, loop_start + + FinalStore \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5 + + RestoreRegs + addi sp, sp, 4*28 + ret \ No newline at end of file diff --git a/examples/naive/riscv/keccak/fips202_rv32imbv_hybrid_x3.s b/examples/naive/riscv/keccak/fips202_rv32imbv_hybrid_x3.s new file mode 100644 index 000000000..24357f4a9 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32imbv_hybrid_x3.s @@ -0,0 +1,1140 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008008 +.quad 0x8000000080008008 + +constants_keccak_bitinter: +.word 0x00000001 +.word 0x00000000 +.word 0x00000000 +.word 0x00000089 +.word 0x00000000 +.word 0x8000008b +.word 0x00000000 +.word 0x80008080 +.word 0x00000001 +.word 0x0000008b +.word 0x00000001 +.word 0x00008000 +.word 0x00000001 +.word 0x80008088 +.word 0x00000001 +.word 0x80000082 +.word 0x00000000 +.word 0x0000000b +.word 0x00000000 +.word 0x0000000a +.word 0x00000001 +.word 0x00008082 +.word 0x00000000 +.word 0x00008003 +.word 0x00000001 +.word 0x0000808b +.word 0x00000001 +.word 0x8000000b +.word 0x00000001 +.word 0x8000008a +.word 0x00000001 +.word 0x80000081 +.word 0x00000000 +.word 0x80000081 +.word 0x00000000 +.word 0x80000008 +.word 0x00000000 +.word 0x00000083 +.word 0x00000000 +.word 0x80008003 +.word 0x00000001 +.word 0x80008088 +.word 0x00000000 +.word 0x80000088 +.word 0x00000001 +.word 0x00008000 +.word 0x00000000 +.word 0x80008082 + +.text + +.macro SaveRegs + sw s0, 0*4(sp) + sw s1, 1*4(sp) + sw s2, 2*4(sp) + sw s3, 3*4(sp) + sw s4, 4*4(sp) + sw s5, 5*4(sp) + sw s6, 6*4(sp) + sw s7, 7*4(sp) + sw s8, 8*4(sp) + sw s9, 9*4(sp) + sw s10, 10*4(sp) + sw s11, 11*4(sp) + sw gp, 12*4(sp) + sw tp, 13*4(sp) + sw ra, 14*4(sp) +.endm + +.macro RestoreRegs + lw s0, 0*4(sp) + lw s1, 1*4(sp) + lw s2, 2*4(sp) + lw s3, 3*4(sp) + lw s4, 4*4(sp) + lw s5, 5*4(sp) + lw s6, 6*4(sp) + lw s7, 7*4(sp) + lw s8, 8*4(sp) + lw s9, 9*4(sp) + lw s10, 10*4(sp) + lw s11, 11*4(sp) + lw gp, 12*4(sp) + lw tp, 13*4(sp) + lw ra, 14*4(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \S02l_s, 2*8(a0) + lw \S02h_s, 2*8+4(a0) + lw \S04l_s, 4*8(a0) + lw \S04h_s, 4*8+4(a0) + lw \S05l_s, 5*8(a0) + lw \S05h_s, 5*8+4(a0) + lw \S08l_s, 8*8(a0) + lw \S08h_s, 8*8+4(a0) + lw \S10l_s, 10*8(a0) + lw \S10h_s, 10*8+4(a0) + lw \S14l_s, 14*8(a0) + lw \S14h_s, 14*8+4(a0) + lw \S16l_s, 16*8(a0) + lw \S16h_s, 16*8+4(a0) + lw \S17l_s, 17*8(a0) + lw \S17h_s, 17*8+4(a0) + lw \S21l_s, 21*8(a0) + lw \S21h_s, 21*8+4(a0) + lw \S23l_s, 23*8(a0) + lw \S23h_s, 23*8+4(a0) +.endm + +.macro StoreStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + sw \S02l_s, 2*8(a0) + sw \S02h_s, 2*8+4(a0) + sw \S04l_s, 4*8(a0) + sw \S04h_s, 4*8+4(a0) + sw \S05l_s, 5*8(a0) + sw \S05h_s, 5*8+4(a0) + sw \S08l_s, 8*8(a0) + sw \S08h_s, 8*8+4(a0) + sw \S10l_s, 10*8(a0) + sw \S10h_s, 10*8+4(a0) + sw \S14l_s, 14*8(a0) + sw \S14h_s, 14*8+4(a0) + sw \S16l_s, 16*8(a0) + sw \S16h_s, 16*8+4(a0) + sw \S17l_s, 17*8(a0) + sw \S17h_s, 17*8+4(a0) + sw \S21l_s, 21*8(a0) + sw \S21h_s, 21*8+4(a0) + sw \S23l_s, 23*8(a0) + sw \S23h_s, 23*8+4(a0) +.endm + +.macro ARound \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + T05_v, T06_v, \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00l_s, \S05l_s, \S10l_s + vxor.vv \T00_v, \S01_v, \S06_v + xor \T00h_s, \S05h_s, \S10h_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vxor.vv \T01_v, \S04_v, \S09_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 20*8(a0) + vxor.vv \T02_v, \S03_v, \S08_v + lw \T03h_s, 20*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + vxor.vv \T00_v, \T00_v, \S11_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \T01_v, \T01_v, \S14_v + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + vxor.vv \T02_v, \T02_v, \S13_v + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + vxor.vv \T00_v, \T00_v, \S16_v + xor \T01l_s, \S08l_s, \S23l_s + xor \T01h_s, \S08h_s, \S23h_s + vxor.vv \T01_v, \T01_v, \S19_v + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + vxor.vv \T02_v, \T02_v, \S18_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + vxor.vv \T00_v, \T00_v, \S21_v + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + vxor.vv \T01_v, \T01_v, \S24_v + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + vxor.vv \T02_v, \T02_v, \S23_v + li \T04_s, 64-1 + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + rori \T03h_s, \T00h_s, 32-1 + vsll.vi \T05_v, \T00_v, 1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T03l_s, 9*8(a0) + vsll.vi \T06_v, \T02_v, 1 + lw \T03h_s, 9*8+4(a0) + xor \T01l_s, \S04l_s, \S14l_s + vsrl.vx \T03_v, \T00_v, \T04_s + xor \T01h_s, \S04h_s, \S14h_s + xor \S04l_s, \S04l_s, \T00l_s + vsrl.vx \T04_v, \T02_v, \T04_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + vxor.vv \T03_v, \T03_v, \T05_v + xor \S14h_s, \S14h_s, \T00h_s + lw \T02l_s, 19*8(a0) + vxor.vv \T04_v, \T04_v, \T06_v + lw \T02h_s, 19*8+4(a0) + xor \T01l_s, \T01l_s, \T03l_s + vxor.vv \T03_v, \T03_v, \T01_v + xor \T01h_s, \T01h_s, \T03h_s + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \T04_v, \T04_v, \T00_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + vxor.vv \T05_v, \S00_v, \S05_v + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + vxor.vv \T06_v, \S02_v, \S07_v + xor \T01h_s, \T01h_s, \T02h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vxor.vv \T05_v, \T05_v, \S10_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + sw \T02l_s, 19*8(a0) + vxor.vv \T06_v, \T06_v, \S12_v + sw \T02h_s, 19*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \T05_v, \T05_v, \S15_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T01l_s, 26*4(sp) + vxor.vv \T06_v, \T06_v, \S17_v + sw \T01h_s, 27*4(sp) + sw \T03l_s, 24*8(a0) + vxor.vv \T05_v, \T05_v, \S20_v + sw \T03h_s, 24*8+4(a0) + lw \T03l_s, 1*8(a0) + vxor.vv \T06_v, \T06_v, \S22_v + lw \T03h_s, 1*8+4(a0) + xor \T00l_s, \S16l_s, \S21l_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \T00h_s, \S16h_s, \S21h_s + lw \T02l_s, 6*8(a0) + vxor.vv \S05_v, \S05_v, \T03_v + lw \T02h_s, 6*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \S10_v, \S10_v, \T03_v + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \S20_v, \S20_v, \T03_v + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + rori \T03h_s, \T00h_s, 32-1 + vxor.vv \S02_v, \S02_v, \T04_v + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + + vxor.vv \S07_v, \S07_v, \T04_v + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + vxor.vv \S12_v, \S12_v, \T04_v + xor \S05l_s, \S05l_s, \T00l_s + xor \S05h_s, \S05h_s, \T00h_s + vsll.vi \T03_v, \T01_v, 1 + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vsrl.vx \T00_v, \T01_v, \T04_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + vxor.vv \S17_v, \S17_v, \T04_v + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vxor.vv \S22_v, \S22_v, \T04_v + xor \S10l_s, \S10l_s, \T00l_s + xor \S10h_s, \S10h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vxor.vv \T00_v, \T00_v, \T03_v + xor \T02h_s, \T02h_s, \T00h_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + vxor.vv \T00_v, \T00_v, \T06_v + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + lw \T02h_s, 25*4(sp) + vxor.vv \S03_v, \S03_v, \T00_v + lw \T02l_s, 24*4(sp) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + vxor.vv \S08_v, \S08_v, \T00_v + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + vxor.vv \S13_v, \S13_v, \T00_v + lw \T00h_s, 21*4(sp) + lw \T00l_s, 20*4(sp) + vxor.vv \S18_v, \S18_v, \T00_v + rori \T03h_s, \T02h_s, 32-1 + xor \T02h_s, \T02l_s, \T00h_s + + vxor.vv \S23_v, \S23_v, \T00_v + xor \T02l_s, \T03h_s, \T00l_s + lw \T03l_s, 7*8(a0) + vsll.vi \T00_v, \T06_v, 1 + lw \T03h_s, 7*8+4(a0) + xor \T00l_s, \S02l_s, \S17l_s + vsll.vi \T03_v, \T05_v, 1 + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \T00l_s, \T03l_s + vsrl.vx \T01_v, \T06_v, \T04_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vsrl.vx \T04_v, \T05_v, \T04_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + vxor.vv \T01_v, \T01_v, \T00_v + lw \T03h_s, 12*8+4(a0) + xor \S02l_s, \S02l_s, \T02l_s + xor \S02h_s, \S02h_s, \T02h_s + vxor.vv \T04_v, \T04_v, \T03_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + vxor.vv \T01_v, \T01_v, \T05_v + xor \T03h_s, \T03h_s, \T02h_s + sw \T03l_s, 12*8(a0) + vxor.vv \T04_v, \T04_v, \T02_v + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + vxor.vv \S01_v, \S01_v, \T01_v + lw \T03h_s, 22*8+4(a0) + xor \S17l_s, \S17l_s, \T02l_s + vxor.vv \S06_v, \S06_v, \T01_v + xor \S17h_s, \S17h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \S11_v, \S11_v, \T01_v + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + vxor.vv \S16_v, \S16_v, \T01_v + xor \T03h_s, \T03h_s, \T02h_s + sw \T00l_s, 22*4(sp) + vxor.vv \S21_v, \S21_v, \T01_v + sw \T00h_s, 23*4(sp) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + vxor.vv \S04_v, \S04_v, \T04_v + rori \T03h_s, \T01h_s, 32-1 + xor \T01h_s, \T01l_s, \T00h_s + xor \T01l_s, \T03h_s, \T00l_s + + vxor.vv \S09_v, \S09_v, \T04_v + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08l_s, \S08l_s, \T01l_s + vxor.vv \S14_v, \S14_v, \T04_v + xor \S08h_s, \S08h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + vxor.vv \S19_v, \S19_v, \T04_v + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + vxor.vv \S24_v, \S24_v, \T04_v + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + vmv.v.v \T00_v, \S00_v + li \T04_s, 44 + xor \T02l_s, \T02l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + vsrl.vi \T01_v, \S06_v, 20 + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + vsll.vx \T02_v, \S06_v, \T04_s + li \T04_s, 62 + xor \S23l_s, \S23l_s, \T01l_s + xor \S23h_s, \S23h_s, \T01h_s + vsrl.vi \S00_v, \S02_v, 2 + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + vsll.vx \T03_v, \S02_v, \T04_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + lw \T01l_s, 18*4(sp) + vxor.vv \T01_v, \T01_v, \T02_v + lw \T01h_s, 19*4(sp) + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + vxor.vv \S00_v, \S00_v, \T03_v + li \T04_s, 43 + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + + vsrl.vi \S02_v, \S12_v, 21 + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + xor \S16l_s, \S16l_s, \T00l_s + vsll.vx \T02_v, \S12_v, \T04_s + li \T04_s, 39 + xor \S16h_s, \S16h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vsll.vi \T03_v, \S13_v, 25 + xor \T02h_s, \T02h_s, \T00h_s + lw \T03l_s, 6*8(a0) + vsrl.vx \S12_v, \S13_v, \T04_s + lw \T03h_s, 6*8+4(a0) + sw \T02l_s, 1*8(a0) + vxor.vv \S02_v, \S02_v, \T02_v + sw \T02h_s, 1*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \S12_v, \S12_v, \T03_v + li \T04_s, 56 + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 11*8(a0) + vsll.vi \T02_v, \S19_v, 8 + lw \T02h_s, 11*8+4(a0) + xor \S21l_s, \S21l_s, \T00l_s + vsrl.vx \S13_v, \S19_v, \T04_s + li \T04_s, 56 + xor \S21h_s, \S21h_s, \T00h_s + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + vsrl.vi \S19_v, \S23_v, 8 + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 11*8(a0) + vsll.vx \T03_v, \S23_v, \T04_s + sw \T02h_s, 11*8+4(a0) + mv \T02l_s, \T03l_s + mv \T02h_s, \T03h_s + vxor.vv \S13_v, \S13_v, \T02_v + rori \T03l_s, \S21l_s, 31 + rori \T03h_s, \S21h_s, 31 + lw \T00l_s, 0*8(a0) + vxor.vv \S19_v, \S19_v, \T03_v + li \T04_s, 41 + lw \T00h_s, 0*8+4(a0) + rori \T01l_s, \T02l_s, 10 + vsrl.vi \S23_v, \S15_v, 23 + rori \T01h_s, \T02h_s, 10 + sw \T03l_s, 0*8(a0) + vsll.vx \T02_v, \S15_v, \T04_s + li \T04_s, 63 + sw \T03h_s, 0*8+4(a0) + rori \S21h_s, \S08l_s, 5 + vsll.vi \T03_v, \S01_v, 1 + rori \S21l_s, \S08h_s, 4 + lw \T02l_s, 3*8(a0) + vsrl.vx \S15_v, \S01_v, \T04_s + lw \T02h_s, 3*8+4(a0) + rori \S08h_s, \S16l_s, 10 + vxor.vv \S23_v, \S23_v, \T02_v + rori \S08l_s, \S16h_s, 9 + lw \T03l_s, 18*8(a0) + vxor.vv \S15_v, \S15_v, \T03_v + li \T04_s, 55 + lw \T03h_s, 18*8+4(a0) + rori \S16l_s, \S05l_s, 14 + rori \S16h_s, \S05h_s, 14 + vsrl.vi \S01_v, \S08_v, 9 + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + rori \S05l_s, \T02l_s, 18 + vsll.vx \T02_v, \S08_v, \T04_s + li \T04_s, 45 + rori \S05h_s, \T02h_s, 18 + rori \T02h_s, \T03l_s, 22 + rori \T02l_s, \T03h_s, 21 + vsrl.vi \S08_v, \S16_v, 19 + sw \T02l_s, 3*8(a0) + sw \T02h_s, 3*8+4(a0) + lw \T02l_s, 13*8+4(a0) + vsll.vx \T03_v, \S16_v, \T04_s + lw \T02h_s, 13*8(a0) + rori \T03h_s, \T02h_s, 20 + vxor.vv \S01_v, \S01_v, \T02_v + rori \T03l_s, \T02l_s, 19 + sw \T03l_s, 18*8(a0) + vxor.vv \S08_v, \S08_v, \T03_v + li \T04_s, 58 + sw \T03h_s, 18*8+4(a0) + rori \T02h_s, \S10l_s, 31 + vsll.vi \T02_v, \S07_v, 6 + rori \T02l_s, \S10h_s, 30 + lw \T03l_s, 1*8(a0) + vsrl.vx \S16_v, \S07_v, \T04_s + li \T04_s, 61 + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + vsll.vi \T03_v, \S10_v, 3 + sw \T02h_s, 13*8+4(a0) + mv \S10h_s, \T03l_s + vsrl.vx \S07_v, \S10_v, \T04_s + rori \S10l_s, \T03h_s, 31 + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + vxor.vv \S16_v, \S16_v, \T02_v + rori \T02l_s, \S02l_s, 1 + rori \T02h_s, \S02h_s, 1 + lw \T03l_s, 12*8(a0) + vxor.vv \S07_v, \S07_v, \T03_v + li \T04_s, 36 + lw \T03h_s, 12*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + vsll.vi \T02_v, \S03_v, 28 + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + rori \S02h_s, \T03l_s, 11 + vsrl.vx \S10_v, \S03_v, \T04_s + li \T04_s, 43 + rori \S02l_s, \T03h_s, 10 + rori \T03l_s, \T02l_s, 22 + vsll.vi \T03_v, \S18_v, 21 + rori \T03h_s, \T02h_s, 22 + sw \T03l_s, 12*8(a0) + vsrl.vx \S03_v, \S18_v, \T04_s + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + vxor.vv \S10_v, \S10_v, \T02_v + lw \T03h_s, 22*8+4(a0) + rori \T02h_s, \T03l_s, 2 + vxor.vv \S03_v, \S03_v, \T03_v + li \T04_s, 49 + rori \T02l_s, \T03h_s, 1 + sw \T02l_s, 9*8(a0) + vsll.vi \T02_v, \S17_v, 15 + sw \T02h_s, 9*8+4(a0) + rori \T03h_s, \S14l_s, 13 + vsrl.vx \S18_v, \S17_v, \T04_s + li \T04_s, 54 + rori \T03l_s, \S14h_s, 12 + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + vsll.vi \T03_v, \S11_v, 10 + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + rori \S14l_s, \T02l_s, 23 + vsrl.vx \S17_v, \S11_v, \T04_s + rori \S14h_s, \T02h_s, 23 + rori \T02l_s, \S23l_s, 4 + rori \T02h_s, \S23h_s, 4 + vxor.vv \S18_v, \S18_v, \T02_v + lw \T03l_s, 15*8(a0) + lw \T03h_s, 15*8+4(a0) + sw \T02l_s, 20*8(a0) + vxor.vv \S17_v, \S17_v, \T03_v + li \T04_s, 44 + sw \T02h_s, 20*8+4(a0) + rori \S23h_s, \T03l_s, 12 + vsll.vi \T02_v, \S09_v, 20 + rori \S23l_s, \T03h_s, 11 + rori \T02h_s, \S04l_s, 19 + vsrl.vx \S11_v, \S09_v, \T04_s + li \T04_s, 61 + rori \T02l_s, \S04h_s, 18 + lw \T03l_s, 24*8(a0) + vsrl.vi \S09_v, \S22_v, 3 + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + vsll.vx \T03_v, \S22_v, \T04_s + sw \T02h_s, 15*8+4(a0) + rori \S04l_s, \T03l_s, 25 + vxor.vv \S11_v, \S11_v, \T02_v + rori \S04h_s, \T03h_s, 25 + rori \T02h_s, \S17l_s, 25 + vxor.vv \S09_v, \S09_v, \T03_v + li \T04_s, 39 + rori \T02l_s, \S17h_s, 24 + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + vsrl.vi \S22_v, \S14_v, 25 + sw \T02l_s, 24*8(a0) + sw \T02h_s, 24*8+4(a0) + lw \T02l_s, 7*8+4(a0) + vsll.vx \T02_v, \S14_v, \T04_s + li \T04_s, 46 + lw \T02h_s, 7*8(a0) + rori \S17l_s, \T03l_s, 27 + rori \S17h_s, \T03h_s, 27 + vsll.vi \T03_v, \S20_v, 18 + rori \T03l_s, \T02h_s, 29 + rori \T03h_s, \T02l_s, 29 + lw \T02l_s, 19*8(a0) + vsrl.vx \S14_v, \S20_v, \T04_s + lw \T02h_s, 19*8+4(a0) + sw \T03l_s, 11*8(a0) + vxor.vv \S22_v, \S22_v, \T02_v + sw \T03h_s, 11*8+4(a0) + rori \T03l_s, \T02l_s, 28 + vxor.vv \S14_v, \S14_v, \T03_v + li \T04_s, 37 + rori \T03h_s, \T02h_s, 28 + lw \T01l_s, 13*8(a0) + vsll.vi \T02_v, \S04_v, 27 + lw \T01h_s, 13*8+4(a0) + sw \T03l_s, 19*8(a0) + vsrl.vx \S20_v, \S04_v, \T04_s + li \T04_s, 50 + sw \T03h_s, 19*8+4(a0) + lw \T00l_s, 12*8(a0) + vsll.vi \T03_v, \S24_v, 14 + lw \T00h_s, 12*8+4(a0) + andn \T03l_s, \S08l_s, \T01l_s + + vsrl.vx \S04_v, \S24_v, \T04_s + andn \T03h_s, \S08h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + vxor.vv \S20_v, \S20_v, \T02_v + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + vxor.vv \S04_v, \S04_v, \T03_v + li \T04_s, 62 + sw \T03h_s, 6*8+4(a0) + andn \T03l_s, \T02l_s, \S08l_s + andn \T03h_s, \T02h_s, \S08h_s + + vsll.vi \T02_v, \S21_v, 2 + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 7*8(a0) + vsrl.vx \S24_v, \S21_v, \T04_s + li \T04_s, 36 + sw \T03h_s, 7*8+4(a0) + andn \T03l_s, \S05l_s, \T02l_s + + vsrl.vi \S21_v, \S05_v, 28 + andn \T03h_s, \S05h_s, \T02h_s + xor \S08l_s, \T03l_s, \S08l_s + vsll.vx \T03_v, \S05_v, \T04_s + xor \S08h_s, \T03h_s, \S08h_s + andn \T03l_s, \T00l_s, \S05l_s + + vxor.vv \S24_v, \S24_v, \T02_v + andn \T03h_s, \T00h_s, \S05h_s + xor \T02l_s, \T03l_s, \T02l_s + vxor.vv \S21_v, \S21_v, \T03_v + xor \T02h_s, \T03h_s, \T02h_s + sw \T02l_s, 9*8(a0) + vor.vv \T02_v, \S11_v, \S07_v + sw \T02h_s, 9*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + + vand.vv \T03_v, \S07_v, \S08_v + andn \T03h_s, \T01h_s, \T00h_s + lw \T01l_s, 19*8(a0) + lw \T01h_s, 19*8+4(a0) + vnot.v \T04_v, \S09_v + xor \S05h_s, \T03h_s, \S05h_s + xor \S05l_s, \T03l_s, \S05l_s + lw \T00l_s, 18*8(a0) + vor.vv \T05_v, \S09_v, \S10_v + lw \T00h_s, 18*8+4(a0) + andn \T03l_s, \S14l_s, \T01l_s + andn \T03h_s, \S14h_s, \T01h_s + + vxor.vv \S05_v, \S10_v, \T02_v + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + + vor.vv \T04_v, \T04_v, \S08_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 12*8(a0) + vxor.vv \S06_v, \S11_v, \T03_v + sw \T03h_s, 12*8+4(a0) + andn \T03l_s, \S10l_s, \S14l_s + + vxor.vv \S07_v, \S07_v, \T04_v + andn \T03h_s, \S10h_s, \S14h_s + xor \T03l_s, \T03l_s, \T01l_s + vxor.vv \S08_v, \S08_v, \T05_v + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 13*8(a0) + vand.vv \T02_v, \S10_v, \S11_v + sw \T03h_s, 13*8+4(a0) + andn \T03l_s, \T02l_s, \S10l_s + + vor.vv \T03_v, \S16_v, \S12_v + andn \T03h_s, \T02h_s, \S10h_s + xor \S14l_s, \T03l_s, \S14l_s + vnot.v \T05_v, \S13_v + xor \S14h_s, \T03h_s, \S14h_s + andn \T03l_s, \T00l_s, \T02l_s + andn \T03h_s, \T00h_s, \T02h_s + + vand.vv \T04_v, \S12_v, \S13_v + xor \S10l_s, \T03l_s, \S10l_s + xor \S10h_s, \T03h_s, \S10h_s + andn \T03l_s, \T01l_s, \T00l_s + + vxor.vv \S09_v, \S09_v, \T02_v + andn \T03h_s, \T01h_s, \T00h_s + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + vand.vv \T05_v, \T05_v, \S14_v + lw \T01l_s, 20*8(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + vxor.vv \S10_v, \S15_v, \T03_v + sw \T02h_s, 11*8+4(a0) + lw \T02l_s, 15*8(a0) + vxor.vv \S11_v, \S16_v, \T04_v + lw \T02h_s, 15*8+4(a0) + lw \T00l_s, 24*8(a0) + vxor.vv \S12_v, \S12_v, \T05_v + lw \T00h_s, 24*8+4(a0) + andn \T03l_s, \T02l_s, \T01l_s + + vnot.v \T03_v, \S13_v + andn \T03h_s, \T02h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + vand.vv \T04_v, \S15_v, \S16_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 18*8(a0) + vand.vv \T05_v, \S21_v, \S17_v + sw \T03h_s, 18*8+4(a0) + andn \T03l_s, \S16l_s, \T02l_s + + vor.vv \T02_v, \S14_v, \S15_v + andn \T03h_s, \S16h_s, \T02h_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + vxor.vv \S14_v, \S14_v, \T04_v + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + andn \T03l_s, \S17l_s, \S16l_s + + vxor.vv \S15_v, \S20_v, \T05_v + andn \T03h_s, \S17h_s, \S16h_s + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + vxor.vv \S13_v, \T03_v, \T02_v + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + andn \T03l_s, \T00l_s, \S17l_s + + vnot.v \T03_v, \S18_v + andn \T03h_s, \T00h_s, \S17h_s + xor \S16l_s, \T03l_s, \S16l_s + vnot.v \T05_v, \S18_v + xor \S16h_s, \T03h_s, \S16h_s + andn \T03l_s, \T01l_s, \T00l_s + + vor.vv \T02_v, \S17_v, \S18_v + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 0*8(a0) + vor.vv \T03_v, \T03_v, \S19_v + lw \T00h_s, 0*8+4(a0) + xor \S17h_s, \S17h_s, \T03h_s + vand.vv \T04_v, \S19_v, \S20_v + xor \S17l_s, \S17l_s, \T03l_s + lw \T01l_s, 1*8(a0) + vxor.vv \S16_v, \S21_v, \T02_v + lw \T01h_s, 1*8+4(a0) + lw \T02l_s, 22*8(a0) + vxor.vv \S17_v, \S17_v, \T03_v + lw \T02h_s, 22*8+4(a0) + andn \T03l_s, \S21l_s, \T01l_s + andn \T03h_s, \S21h_s, \T01h_s + + vxor.vv \S18_v, \T05_v, \T04_v + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 24*8(a0) + vnot.v \T03_v, \S01_v + sw \T03h_s, 24*8+4(a0) + andn \T03l_s, \T02l_s, \S21l_s + andn \T03h_s, \T02h_s, \S21h_s + + vnot.v \T05_v, \S01_v + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 20*8(a0) + vor.vv \T02_v, \S20_v, \S21_v + sw \T03h_s, 20*8+4(a0) + andn \T03l_s, \S23l_s, \T02l_s + + vand.vv \T03_v, \T03_v, \S22_v + andn \T03h_s, \S23h_s, \T02h_s + xor \S21l_s, \T03l_s, \S21l_s + vor.vv \T04_v, \S22_v, \S23_v + xor \S21h_s, \T03h_s, \S21h_s + lw \T04_s, 17*4(sp) + vxor.vv \S19_v, \S19_v, \T02_v + andn \T03l_s, \T00l_s, \S23l_s + andn \T03h_s, \T00h_s, \S23h_s + + vxor.vv \S20_v, \S00_v, \T03_v + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + vxor.vv \S21_v, \T05_v, \T04_v + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + vand.vv \T02_v, \S23_v, \S24_v + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 18*4(sp) + vor.vv \T03_v, \S24_v, \S00_v + lw \T00h_s, 19*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + xor \S23l_s, \S23l_s, \T03l_s + vand.vv \T04_v, \S00_v, \S01_v + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + lw \T02l_s, 0(\T04_s) + vor.vv \T05_v, \T01_v, \S02_v + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 8 + andn \T03l_s, \S02l_s, \T01l_s + + vxor.vv \S22_v, \S22_v, \T02_v + andn \T03h_s, \S02h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \S23_v, \S23_v, \T03_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T04_s, 17*4(sp) + vxor.vv \S24_v, \S24_v, \T04_v + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vxor.vv \S00_v, \T00_v, \T05_v + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + vnot.v \T02_v, \S02_v + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + vor.vv \T04_v, \S04_v, \T00_v + andn \T03l_s, \T02l_s, \S02l_s + andn \T03h_s, \T02h_s, \S02h_s + + vand.vv \T03_v, \S03_v, \S04_v + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 1*8(a0) + vand.vv \T05_v, \T00_v, \T01_v + sw \T03h_s, 1*8+4(a0) + andn \T03l_s, \T00l_s, \S04l_s + andn \T03h_s, \T00h_s, \S04h_s + vor.vv \T02_v, \T02_v, \S03_v + lw \T04_s, 28*4(sp) + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vle64.v \T00_v, (\T04_s) + sw \T03l_s, 3*8(a0) + vxor.vv \S02_v, \S02_v, \T03_v + sw \T03h_s, 3*8+4(a0) + andn \T03l_s, \S04l_s, \T02l_s + + addi \T04_s, \T04_s, 16 + andn \T03h_s, \S04h_s, \T02h_s + + vxor.vv \S03_v, \S03_v, \T04_v + xor \S02l_s, \T03l_s, \S02l_s + sw \T04_s, 28*4(sp) + xor \S02h_s, \T03h_s, \S02h_s + vxor.vv \S01_v, \T01_v, \T02_v + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + + vxor.vv \S04_v, \S04_v, \T05_v + xor \S04l_s, \T03l_s, \S04l_s + xor \S04h_s, \T03h_s, \S04h_s + vxor.vv \S00_v, \S00_v, \T00_v +.endm + +# stack: +# 0*4-14*4 for saving registers +# 15*4 for saving a0 +# 16*4 for loop control +# 17*4 for table index of scalar impl +# 18*4,19*4 for C0 +# 20*4,21*4 for C1 +# 22*4,23*4 for C2 +# 24*4,25*4 for C3 +# 26*4,27*4 for C4 +# 28*4 for table index of vector impl +.globl KeccakF1600_StatePermute_RV32V_3x +.align 2 +KeccakF1600_StatePermute_RV32V_3x: + addi sp, sp, -4*29 + SaveRegs + + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + la tp, constants_keccak_bitinter + sw tp, 17*4(sp) + + la gp, constants_keccak + sw gp, 28*4(sp) + + LoadStates_v + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + + li tp, 24 + sw tp, 16*4(sp) # intial store +loop_start: + ARound \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + v30, v31, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + + lw tp, 16*4(sp) + addi tp, tp, -1 + sw tp, 16*4(sp) + bne tp, x0, loop_start + + addi a0, a0, -25*16 + StoreStates_v + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + + RestoreRegs + addi sp, sp, 4*29 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv32imbv_hybrid_x4.s b/examples/naive/riscv/keccak/fips202_rv32imbv_hybrid_x4.s new file mode 100644 index 000000000..3eb5cb7e5 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32imbv_hybrid_x4.s @@ -0,0 +1,1602 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008008 +.quad 0x8000000080008008 + +constants_keccak_bitinter: +.word 0x00000001 +.word 0x00000000 +.word 0x00000000 +.word 0x00000089 +.word 0x00000000 +.word 0x8000008b +.word 0x00000000 +.word 0x80008080 +.word 0x00000001 +.word 0x0000008b +.word 0x00000001 +.word 0x00008000 +.word 0x00000001 +.word 0x80008088 +.word 0x00000001 +.word 0x80000082 +.word 0x00000000 +.word 0x0000000b +.word 0x00000000 +.word 0x0000000a +.word 0x00000001 +.word 0x00008082 +.word 0x00000000 +.word 0x00008003 +.word 0x00000001 +.word 0x0000808b +.word 0x00000001 +.word 0x8000000b +.word 0x00000001 +.word 0x8000008a +.word 0x00000001 +.word 0x80000081 +.word 0x00000000 +.word 0x80000081 +.word 0x00000000 +.word 0x80000008 +.word 0x00000000 +.word 0x00000083 +.word 0x00000000 +.word 0x80008003 +.word 0x00000001 +.word 0x80008088 +.word 0x00000000 +.word 0x80000088 +.word 0x00000001 +.word 0x00008000 +.word 0x00000000 +.word 0x80008082 + +.text + +.macro SaveRegs + sw s0, 0*4(sp) + sw s1, 1*4(sp) + sw s2, 2*4(sp) + sw s3, 3*4(sp) + sw s4, 4*4(sp) + sw s5, 5*4(sp) + sw s6, 6*4(sp) + sw s7, 7*4(sp) + sw s8, 8*4(sp) + sw s9, 9*4(sp) + sw s10, 10*4(sp) + sw s11, 11*4(sp) + sw gp, 12*4(sp) + sw tp, 13*4(sp) + sw ra, 14*4(sp) +.endm + +.macro RestoreRegs + lw s0, 0*4(sp) + lw s1, 1*4(sp) + lw s2, 2*4(sp) + lw s3, 3*4(sp) + lw s4, 4*4(sp) + lw s5, 5*4(sp) + lw s6, 6*4(sp) + lw s7, 7*4(sp) + lw s8, 8*4(sp) + lw s9, 9*4(sp) + lw s10, 10*4(sp) + lw s11, 11*4(sp) + lw gp, 12*4(sp) + lw tp, 13*4(sp) + lw ra, 14*4(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \S02l_s, 2*8(a0) + lw \S02h_s, 2*8+4(a0) + lw \S04l_s, 4*8(a0) + lw \S04h_s, 4*8+4(a0) + lw \S05l_s, 5*8(a0) + lw \S05h_s, 5*8+4(a0) + lw \S08l_s, 8*8(a0) + lw \S08h_s, 8*8+4(a0) + lw \S10l_s, 10*8(a0) + lw \S10h_s, 10*8+4(a0) + lw \S14l_s, 14*8(a0) + lw \S14h_s, 14*8+4(a0) + lw \S16l_s, 16*8(a0) + lw \S16h_s, 16*8+4(a0) + lw \S17l_s, 17*8(a0) + lw \S17h_s, 17*8+4(a0) + lw \S21l_s, 21*8(a0) + lw \S21h_s, 21*8+4(a0) + lw \S23l_s, 23*8(a0) + lw \S23h_s, 23*8+4(a0) +.endm + +.macro StoreStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s + sw \S02l_s, 2*8(a0) + sw \S02h_s, 2*8+4(a0) + sw \S04l_s, 4*8(a0) + sw \S04h_s, 4*8+4(a0) + sw \S05l_s, 5*8(a0) + sw \S05h_s, 5*8+4(a0) + sw \S08l_s, 8*8(a0) + sw \S08h_s, 8*8+4(a0) + sw \S10l_s, 10*8(a0) + sw \S10h_s, 10*8+4(a0) + sw \S14l_s, 14*8(a0) + sw \S14h_s, 14*8+4(a0) + sw \S16l_s, 16*8(a0) + sw \S16h_s, 16*8+4(a0) + sw \S17l_s, 17*8(a0) + sw \S17h_s, 17*8+4(a0) + sw \S21l_s, 21*8(a0) + sw \S21h_s, 21*8+4(a0) + sw \S23l_s, 23*8(a0) + sw \S23h_s, 23*8+4(a0) +.endm + +.macro ARound \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + T05_v, T06_v, \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00l_s, \S05l_s, \S10l_s + xor \T00h_s, \S05h_s, \S10h_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vxor.vv \T00_v, \S01_v, \S06_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + vxor.vv \T01_v, \S04_v, \S09_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + vxor.vv \T02_v, \S03_v, \S08_v + xor \T01l_s, \S08l_s, \S23l_s + xor \T01h_s, \S08h_s, \S23h_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + vxor.vv \T00_v, \T00_v, \S11_v + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T02h_s + vxor.vv \T01_v, \T01_v, \S14_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + vxor.vv \T02_v, \T02_v, \S13_v + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T03l_s, 9*8(a0) + vxor.vv \T00_v, \T00_v, \S16_v + lw \T03h_s, 9*8+4(a0) + xor \T01l_s, \S04l_s, \S14l_s + xor \T01h_s, \S04h_s, \S14h_s + xor \S04l_s, \S04l_s, \T00l_s + vxor.vv \T01_v, \T01_v, \S19_v + xor \S04h_s, \S04h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + xor \S14h_s, \S14h_s, \T00h_s + lw \T02l_s, 19*8(a0) + vxor.vv \T02_v, \T02_v, \S18_v + lw \T02h_s, 19*8+4(a0) + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \T00_v, \T00_v, \S21_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + vxor.vv \T01_v, \T01_v, \S24_v + xor \T01h_s, \T01h_s, \T02h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + sw \T02l_s, 19*8(a0) + vxor.vv \T02_v, \T02_v, \S23_v + li \T04_s, 64-1 + sw \T02h_s, 19*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T01l_s, 26*4(sp) + sw \T01h_s, 27*4(sp) + sw \T03l_s, 24*8(a0) + vsll.vi \T05_v, \T00_v, 1 + sw \T03h_s, 24*8+4(a0) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00l_s, \S16l_s, \S21l_s + xor \T00h_s, \S16h_s, \S21h_s + lw \T02l_s, 6*8(a0) + vsll.vi \T06_v, \T02_v, 1 + lw \T02h_s, 6*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 11*8(a0) + vsrl.vx \T03_v, \T00_v, \T04_s + lw \T03h_s, 11*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + vsrl.vx \T04_v, \T02_v, \T04_s + xor \T00h_s, \T00h_s, \T03h_s + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + rori \T03h_s, \T00h_s, 32-1 + vxor.vv \T03_v, \T03_v, \T05_v + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + vxor.vv \T04_v, \T04_v, \T06_v + xor \S05l_s, \S05l_s, \T00l_s + xor \S05h_s, \S05h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vxor.vv \T03_v, \T03_v, \T01_v + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vxor.vv \T04_v, \T04_v, \T00_v + xor \S10l_s, \S10l_s, \T00l_s + xor \S10h_s, \S10h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + vxor.vv \T05_v, \S00_v, \S05_v + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + lw \T02h_s, 25*4(sp) + lw \T02l_s, 24*4(sp) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + vxor.vv \T06_v, \S02_v, \S07_v + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + lw \T00h_s, 21*4(sp) + lw \T00l_s, 20*4(sp) + rori \T03h_s, \T02h_s, 32-1 + xor \T02h_s, \T02l_s, \T00h_s + vxor.vv \T05_v, \T05_v, \S10_v + xor \T02l_s, \T03h_s, \T00l_s + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \T06_v, \T06_v, \S12_v + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T03l_s, 7*8(a0) + vxor.vv \T05_v, \T05_v, \S15_v + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + xor \S02l_s, \S02l_s, \T02l_s + vxor.vv \T06_v, \T06_v, \S17_v + xor \S02h_s, \S02h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + vxor.vv \T05_v, \T05_v, \S20_v + xor \T03h_s, \T03h_s, \T02h_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + vxor.vv \T06_v, \T06_v, \S22_v + lw \T03h_s, 22*8+4(a0) + xor \S17l_s, \S17l_s, \T02l_s + xor \S17h_s, \S17h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T00l_s, 22*4(sp) + vxor.vv \S05_v, \S05_v, \T03_v + sw \T00h_s, 23*4(sp) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + rori \T03h_s, \T01h_s, 32-1 + xor \T01h_s, \T01l_s, \T00h_s + xor \T01l_s, \T03h_s, \T00l_s + vxor.vv \S10_v, \S10_v, \T03_v + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08l_s, \S08l_s, \T01l_s + xor \S08h_s, \S08h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + vxor.vv \S15_v, \S15_v, \T03_v + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + xor \T02l_s, \T02l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + vxor.vv \S20_v, \S20_v, \T03_v + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \S23l_s, \S23l_s, \T01l_s + xor \S23h_s, \S23h_s, \T01h_s + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + vxor.vv \S02_v, \S02_v, \T04_v + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + vxor.vv \S07_v, \S07_v, \T04_v + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + vxor.vv \S12_v, \S12_v, \T04_v + xor \T00l_s, \T03h_s, \T01l_s + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + xor \S16l_s, \S16l_s, \T00l_s + vsll.vi \T03_v, \T01_v, 1 + xor \S16h_s, \S16h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + lw \T03l_s, 6*8(a0) + vsrl.vx \T00_v, \T01_v, \T04_s + lw \T03h_s, 6*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \S17_v, \S17_v, \T04_v + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + xor \S21l_s, \S21l_s, \T00l_s + vxor.vv \S22_v, \S22_v, \T04_v + xor \S21h_s, \S21h_s, \T00h_s + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 11*8(a0) + vxor.vv \T00_v, \T00_v, \T03_v + sw \T02h_s, 11*8+4(a0) + mv \T02l_s, \T03l_s + mv \T02h_s, \T03h_s + rori \T03l_s, \S21l_s, 31 + rori \T03h_s, \S21h_s, 31 + lw \T00l_s, 0*8(a0) + vxor.vv \T00_v, \T00_v, \T06_v + lw \T00h_s, 0*8+4(a0) + rori \T01l_s, \T02l_s, 10 + rori \T01h_s, \T02h_s, 10 + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + rori \S21h_s, \S08l_s, 5 + vxor.vv \S03_v, \S03_v, \T00_v + rori \S21l_s, \S08h_s, 4 + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + rori \S08h_s, \S16l_s, 10 + rori \S08l_s, \S16h_s, 9 + lw \T03l_s, 18*8(a0) + vxor.vv \S08_v, \S08_v, \T00_v + lw \T03h_s, 18*8+4(a0) + rori \S16l_s, \S05l_s, 14 + rori \S16h_s, \S05h_s, 14 + sw \T00l_s, 18*4(sp) + vxor.vv \S13_v, \S13_v, \T00_v + sw \T00h_s, 19*4(sp) + rori \S05l_s, \T02l_s, 18 + rori \S05h_s, \T02h_s, 18 + rori \T02h_s, \T03l_s, 22 + vxor.vv \S18_v, \S18_v, \T00_v + rori \T02l_s, \T03h_s, 21 + sw \T02l_s, 3*8(a0) + sw \T02h_s, 3*8+4(a0) + lw \T02l_s, 13*8+4(a0) + vxor.vv \S23_v, \S23_v, \T00_v + lw \T02h_s, 13*8(a0) + rori \T03h_s, \T02h_s, 20 + rori \T03l_s, \T02l_s, 19 + sw \T03l_s, 18*8(a0) + vsll.vi \T00_v, \T06_v, 1 + sw \T03h_s, 18*8+4(a0) + rori \T02h_s, \S10l_s, 31 + rori \T02l_s, \S10h_s, 30 + lw \T03l_s, 1*8(a0) + vsll.vi \T03_v, \T05_v, 1 + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + mv \S10h_s, \T03l_s + vsrl.vx \T01_v, \T06_v, \T04_s + rori \S10l_s, \T03h_s, 31 + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + rori \T02l_s, \S02l_s, 1 + rori \T02h_s, \S02h_s, 1 + lw \T03l_s, 12*8(a0) + vsrl.vx \T04_v, \T05_v, \T04_s + lw \T03h_s, 12*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + rori \S02h_s, \T03l_s, 11 + vxor.vv \T01_v, \T01_v, \T00_v + rori \S02l_s, \T03h_s, 10 + rori \T03l_s, \T02l_s, 22 + rori \T03h_s, \T02h_s, 22 + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + vxor.vv \T04_v, \T04_v, \T03_v + lw \T03h_s, 22*8+4(a0) + rori \T02h_s, \T03l_s, 2 + rori \T02l_s, \T03h_s, 1 + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + rori \T03h_s, \S14l_s, 13 + vxor.vv \T01_v, \T01_v, \T05_v + rori \T03l_s, \S14h_s, 12 + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + sw \T03l_s, 22*8(a0) + vxor.vv \T04_v, \T04_v, \T02_v + sw \T03h_s, 22*8+4(a0) + rori \S14l_s, \T02l_s, 23 + rori \S14h_s, \T02h_s, 23 + rori \T02l_s, \S23l_s, 4 + vxor.vv \S01_v, \S01_v, \T01_v + rori \T02h_s, \S23h_s, 4 + lw \T03l_s, 15*8(a0) + lw \T03h_s, 15*8+4(a0) + sw \T02l_s, 20*8(a0) + vxor.vv \S06_v, \S06_v, \T01_v + sw \T02h_s, 20*8+4(a0) + rori \S23h_s, \T03l_s, 12 + rori \S23l_s, \T03h_s, 11 + rori \T02h_s, \S04l_s, 19 + vxor.vv \S11_v, \S11_v, \T01_v + rori \T02l_s, \S04h_s, 18 + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + vxor.vv \S16_v, \S16_v, \T01_v + sw \T02h_s, 15*8+4(a0) + rori \S04l_s, \T03l_s, 25 + rori \S04h_s, \T03h_s, 25 + rori \T02h_s, \S17l_s, 25 + vxor.vv \S21_v, \S21_v, \T01_v + rori \T02l_s, \S17h_s, 24 + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + sw \T02h_s, 24*8+4(a0) + lw \T02l_s, 7*8+4(a0) + vxor.vv \S04_v, \S04_v, \T04_v + lw \T02h_s, 7*8(a0) + rori \S17l_s, \T03l_s, 27 + rori \S17h_s, \T03h_s, 27 + rori \T03l_s, \T02h_s, 29 + rori \T03h_s, \T02l_s, 29 + lw \T02l_s, 19*8(a0) + vxor.vv \S09_v, \S09_v, \T04_v + lw \T02h_s, 19*8+4(a0) + sw \T03l_s, 11*8(a0) + sw \T03h_s, 11*8+4(a0) + rori \T03l_s, \T02l_s, 28 + rori \T03h_s, \T02h_s, 28 + lw \T01l_s, 13*8(a0) + vxor.vv \S14_v, \S14_v, \T04_v + lw \T01h_s, 13*8+4(a0) + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + lw \T00l_s, 12*8(a0) + lw \T00h_s, 12*8+4(a0) + andn \T03l_s, \S08l_s, \T01l_s + vxor.vv \S19_v, \S19_v, \T04_v + andn \T03h_s, \S08h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 9*8(a0) + vxor.vv \S24_v, \S24_v, \T04_v + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + andn \T03l_s, \T02l_s, \S08l_s + vmv.v.v \T00_v, \S00_v + li \T04_s, 44 + andn \T03h_s, \T02h_s, \S08h_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 7*8(a0) + vsrl.vi \T01_v, \S06_v, 20 + sw \T03h_s, 7*8+4(a0) + andn \T03l_s, \S05l_s, \T02l_s + andn \T03h_s, \S05h_s, \T02h_s + xor \S08l_s, \T03l_s, \S08l_s + vsll.vx \T02_v, \S06_v, \T04_s + li \T04_s, 62 + xor \S08h_s, \T03h_s, \S08h_s + andn \T03l_s, \T00l_s, \S05l_s + andn \T03h_s, \T00h_s, \S05h_s + xor \T02l_s, \T03l_s, \T02l_s + vsrl.vi \S00_v, \S02_v, 2 + xor \T02h_s, \T03h_s, \T02h_s + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + vsll.vx \T03_v, \S02_v, \T04_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T01l_s, 19*8(a0) + lw \T01h_s, 19*8+4(a0) + xor \S05h_s, \T03h_s, \S05h_s + xor \S05l_s, \T03l_s, \S05l_s + lw \T00l_s, 18*8(a0) + vxor.vv \T01_v, \T01_v, \T02_v + lw \T00h_s, 18*8+4(a0) + andn \T03l_s, \S14l_s, \T01l_s + andn \T03h_s, \S14h_s, \T01h_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \S00_v, \S00_v, \T03_v + li \T04_s, 43 + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + andn \T03l_s, \S10l_s, \S14l_s + andn \T03h_s, \S10h_s, \S14h_s + xor \T03l_s, \T03l_s, \T01l_s + vsrl.vi \S02_v, \S12_v, 21 + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + andn \T03l_s, \T02l_s, \S10l_s + andn \T03h_s, \T02h_s, \S10h_s + xor \S14l_s, \T03l_s, \S14l_s + vsll.vx \T02_v, \S12_v, \T04_s + li \T04_s, 39 + xor \S14h_s, \T03h_s, \S14h_s + andn \T03l_s, \T00l_s, \T02l_s + andn \T03h_s, \T00h_s, \T02h_s + xor \S10l_s, \T03l_s, \S10l_s + vsll.vi \T03_v, \S13_v, 25 + xor \S10h_s, \T03h_s, \S10h_s + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + xor \T02l_s, \T03l_s, \T02l_s + vsrl.vx \S12_v, \S13_v, \T04_s + xor \T02h_s, \T03h_s, \T02h_s + lw \T01l_s, 20*8(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + vxor.vv \S02_v, \S02_v, \T02_v + sw \T02h_s, 11*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + lw \T00l_s, 24*8(a0) + vxor.vv \S12_v, \S12_v, \T03_v + li \T04_s, 56 + lw \T00h_s, 24*8+4(a0) + andn \T03l_s, \T02l_s, \T01l_s + andn \T03h_s, \T02h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + vsll.vi \T02_v, \S19_v, 8 + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + andn \T03l_s, \S16l_s, \T02l_s + vsrl.vx \S13_v, \S19_v, \T04_s + li \T04_s, 56 + andn \T03h_s, \S16h_s, \T02h_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + andn \T03l_s, \S17l_s, \S16l_s + vsrl.vi \S19_v, \S23_v, 8 + andn \T03h_s, \S17h_s, \S16h_s + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + andn \T03l_s, \T00l_s, \S17l_s + vsll.vx \T03_v, \S23_v, \T04_s + andn \T03h_s, \T00h_s, \S17h_s + xor \S16l_s, \T03l_s, \S16l_s + xor \S16h_s, \T03h_s, \S16h_s + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 0*8(a0) + vxor.vv \S13_v, \S13_v, \T02_v + lw \T00h_s, 0*8+4(a0) + xor \S17h_s, \S17h_s, \T03h_s + xor \S17l_s, \S17l_s, \T03l_s + lw \T01l_s, 1*8(a0) + lw \T01h_s, 1*8+4(a0) + lw \T02l_s, 22*8(a0) + vxor.vv \S19_v, \S19_v, \T03_v + li \T04_s, 41 + lw \T02h_s, 22*8+4(a0) + andn \T03l_s, \S21l_s, \T01l_s + andn \T03h_s, \S21h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + vsrl.vi \S23_v, \S15_v, 23 + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + andn \T03l_s, \T02l_s, \S21l_s + vsll.vx \T02_v, \S15_v, \T04_s + li \T04_s, 63 + andn \T03h_s, \T02h_s, \S21h_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 20*8(a0) + vsll.vi \T03_v, \S01_v, 1 + sw \T03h_s, 20*8+4(a0) + andn \T03l_s, \S23l_s, \T02l_s + andn \T03h_s, \S23h_s, \T02h_s + xor \S21l_s, \T03l_s, \S21l_s + vsrl.vx \S15_v, \S01_v, \T04_s + xor \S21h_s, \T03h_s, \S21h_s + lw \T04_s, 17*4(sp) + andn \T03l_s, \T00l_s, \S23l_s + andn \T03h_s, \T00h_s, \S23h_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + vxor.vv \S15_v, \S15_v, \T03_v + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 18*4(sp) + lw \T00h_s, 19*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + xor \S23l_s, \S23l_s, \T03l_s + vsrl.vi \S01_v, \S08_v, 9 + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + lw \T02l_s, 0(\T04_s) + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 8 + andn \T03l_s, \S02l_s, \T01l_s + sw \T04_s, 17*4(sp) + li \T04_s, 55 + andn \T03h_s, \S02h_s, \T01h_s + vsll.vx \T02_v, \S08_v, \T04_s + li \T04_s, 45 + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vsrl.vi \S08_v, \S16_v, 19 + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + andn \T03l_s, \T02l_s, \S02l_s + andn \T03h_s, \T02h_s, \S02h_s + vsll.vx \T03_v, \S16_v, \T04_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 1*8(a0) + sw \T03h_s, 1*8+4(a0) + vxor.vv \S01_v, \S01_v, \T02_v + andn \T03l_s, \T00l_s, \S04l_s + andn \T03h_s, \T00h_s, \S04h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vxor.vv \S08_v, \S08_v, \T03_v + li \T04_s, 58 + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + andn \T03l_s, \S04l_s, \T02l_s + andn \T03h_s, \S04h_s, \T02h_s + vsll.vi \T02_v, \S07_v, 6 + xor \S02l_s, \T03l_s, \S02l_s + xor \S02h_s, \T03h_s, \S02h_s + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + vsrl.vx \S16_v, \S07_v, \T04_s + li \T04_s, 61 + xor \S04l_s, \T03l_s, \S04l_s + xor \S04h_s, \T03h_s, \S04h_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + vsll.vi \T03_v, \S10_v, 3 + xor \T00l_s, \S05l_s, \S10l_s + xor \T00h_s, \S05h_s, \S10h_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vsrl.vx \S07_v, \S10_v, \T04_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + vxor.vv \S07_v, \S07_v, \T03_v + li \T04_s, 36 + xor \T01l_s, \S08l_s, \S23l_s + xor \T01h_s, \S08h_s, \S23h_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + vsll.vi \T02_v, \S03_v, 28 + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + vsrl.vx \S10_v, \S03_v, \T04_s + li \T04_s, 43 + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + vsll.vi \T03_v, \S18_v, 21 + xor \T00l_s, \T03h_s, \T01l_s + lw \T03l_s, 9*8(a0) + lw \T03h_s, 9*8+4(a0) + xor \T01l_s, \S04l_s, \S14l_s + vsrl.vx \S03_v, \S18_v, \T04_s + xor \T01h_s, \S04h_s, \S14h_s + xor \S04l_s, \S04l_s, \T00l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + vxor.vv \S10_v, \S10_v, \T02_v + xor \S14h_s, \S14h_s, \T00h_s + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + xor \T01l_s, \T01l_s, \T03l_s + vxor.vv \S03_v, \S03_v, \T03_v + li \T04_s, 49 + xor \T01h_s, \T01h_s, \T03h_s + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 9*8(a0) + vsll.vi \T02_v, \S17_v, 15 + sw \T03h_s, 9*8+4(a0) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + vsrl.vx \S18_v, \S17_v, \T04_s + li \T04_s, 54 + xor \T01h_s, \T01h_s, \T02h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + sw \T02l_s, 19*8(a0) + vsll.vi \T03_v, \S11_v, 10 + sw \T02h_s, 19*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T01l_s, 26*4(sp) + sw \T01h_s, 27*4(sp) + sw \T03l_s, 24*8(a0) + vsrl.vx \S17_v, \S11_v, \T04_s + sw \T03h_s, 24*8+4(a0) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00l_s, \S16l_s, \S21l_s + xor \T00h_s, \S16h_s, \S21h_s + lw \T02l_s, 6*8(a0) + vxor.vv \S18_v, \S18_v, \T02_v + lw \T02h_s, 6*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + vxor.vv \S17_v, \S17_v, \T03_v + li \T04_s, 44 + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + sw \T00l_s, 20*4(sp) + vsll.vi \T02_v, \S09_v, 20 + sw \T00h_s, 21*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + vsrl.vx \S11_v, \S09_v, \T04_s + li \T04_s, 61 + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + xor \S05l_s, \S05l_s, \T00l_s + xor \S05h_s, \S05h_s, \T00h_s + vsrl.vi \S09_v, \S22_v, 3 + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + vsll.vx \T03_v, \S22_v, \T04_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \S10l_s, \S10l_s, \T00l_s + xor \S10h_s, \S10h_s, \T00h_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + vxor.vv \S09_v, \S09_v, \T03_v + li \T04_s, 39 + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + lw \T02h_s, 25*4(sp) + lw \T02l_s, 24*4(sp) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + vsrl.vi \S22_v, \S14_v, 25 + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + lw \T00h_s, 21*4(sp) + lw \T00l_s, 20*4(sp) + rori \T03h_s, \T02h_s, 32-1 + xor \T02h_s, \T02l_s, \T00h_s + vsll.vx \T02_v, \S14_v, \T04_s + li \T04_s, 46 + xor \T02l_s, \T03h_s, \T00l_s + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \T00l_s, \T03l_s + vsll.vi \T03_v, \S20_v, 18 + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + vsrl.vx \S14_v, \S20_v, \T04_s + lw \T03h_s, 12*8+4(a0) + xor \S02l_s, \S02l_s, \T02l_s + xor \S02h_s, \S02h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \S22_v, \S22_v, \T02_v + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T03l_s, 12*8(a0) + vxor.vv \S14_v, \S14_v, \T03_v + li \T04_s, 37 + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + lw \T03h_s, 22*8+4(a0) + xor \S17l_s, \S17l_s, \T02l_s + vsll.vi \T02_v, \S04_v, 27 + xor \S17h_s, \S17h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + vsrl.vx \S20_v, \S04_v, \T04_s + li \T04_s, 50 + xor \T03h_s, \T03h_s, \T02h_s + sw \T00l_s, 22*4(sp) + sw \T00h_s, 23*4(sp) + sw \T03l_s, 22*8(a0) + vsll.vi \T03_v, \S24_v, 14 + sw \T03h_s, 22*8+4(a0) + rori \T03h_s, \T01h_s, 32-1 + xor \T01h_s, \T01l_s, \T00h_s + xor \T01l_s, \T03h_s, \T00l_s + vsrl.vx \S04_v, \S24_v, \T04_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08l_s, \S08l_s, \T01l_s + xor \S08h_s, \S08h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + vxor.vv \S20_v, \S20_v, \T02_v + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + xor \T02l_s, \T02l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + vxor.vv \S04_v, \S04_v, \T03_v + li \T04_s, 62 + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \S23l_s, \S23l_s, \T01l_s + xor \S23h_s, \S23h_s, \T01h_s + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + vsll.vi \T02_v, \S21_v, 2 + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + vsrl.vx \S24_v, \S21_v, \T04_s + li \T04_s, 36 + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T02l_s, 1*8(a0) + vsrl.vi \S21_v, \S05_v, 28 + lw \T02h_s, 1*8+4(a0) + xor \S16l_s, \S16l_s, \T00l_s + xor \S16h_s, \S16h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vsll.vx \T03_v, \S05_v, \T04_s + xor \T02h_s, \T02h_s, \T00h_s + lw \T03l_s, 6*8(a0) + lw \T03h_s, 6*8+4(a0) + sw \T02l_s, 1*8(a0) + vxor.vv \S24_v, \S24_v, \T02_v + sw \T02h_s, 1*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 11*8(a0) + vxor.vv \S21_v, \S21_v, \T03_v + lw \T02h_s, 11*8+4(a0) + xor \S21l_s, \S21l_s, \T00l_s + xor \S21h_s, \S21h_s, \T00h_s + sw \T03l_s, 6*8(a0) + vor.vv \T02_v, \S11_v, \S07_v + sw \T03h_s, 6*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 11*8(a0) + vand.vv \T03_v, \S07_v, \S08_v + sw \T02h_s, 11*8+4(a0) + mv \T02l_s, \T03l_s + mv \T02h_s, \T03h_s + rori \T03l_s, \S21l_s, 31 + rori \T03h_s, \S21h_s, 31 + lw \T00l_s, 0*8(a0) + vnot.v \T04_v, \S09_v + lw \T00h_s, 0*8+4(a0) + rori \T01l_s, \T02l_s, 10 + rori \T01h_s, \T02h_s, 10 + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + rori \S21h_s, \S08l_s, 5 + vor.vv \T05_v, \S09_v, \S10_v + rori \S21l_s, \S08h_s, 4 + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + rori \S08h_s, \S16l_s, 10 + rori \S08l_s, \S16h_s, 9 + lw \T03l_s, 18*8(a0) + vxor.vv \S05_v, \S10_v, \T02_v + lw \T03h_s, 18*8+4(a0) + rori \S16l_s, \S05l_s, 14 + rori \S16h_s, \S05h_s, 14 + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + rori \S05l_s, \T02l_s, 18 + vor.vv \T04_v, \T04_v, \S08_v + rori \S05h_s, \T02h_s, 18 + rori \T02h_s, \T03l_s, 22 + rori \T02l_s, \T03h_s, 21 + sw \T02l_s, 3*8(a0) + vxor.vv \S06_v, \S11_v, \T03_v + sw \T02h_s, 3*8+4(a0) + lw \T02l_s, 13*8+4(a0) + lw \T02h_s, 13*8(a0) + rori \T03h_s, \T02h_s, 20 + vxor.vv \S07_v, \S07_v, \T04_v + rori \T03l_s, \T02l_s, 19 + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + rori \T02h_s, \S10l_s, 31 + vxor.vv \S08_v, \S08_v, \T05_v + rori \T02l_s, \S10h_s, 30 + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + vand.vv \T02_v, \S10_v, \S11_v + sw \T02h_s, 13*8+4(a0) + mv \S10h_s, \T03l_s + rori \S10l_s, \T03h_s, 31 + sw \T01l_s, 20*4(sp) + vor.vv \T03_v, \S16_v, \S12_v + sw \T01h_s, 21*4(sp) + rori \T02l_s, \S02l_s, 1 + rori \T02h_s, \S02h_s, 1 + lw \T03l_s, 12*8(a0) + vnot.v \T05_v, \S13_v + lw \T03h_s, 12*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + rori \S02h_s, \T03l_s, 11 + vand.vv \T04_v, \S12_v, \S13_v + rori \S02l_s, \T03h_s, 10 + rori \T03l_s, \T02l_s, 22 + rori \T03h_s, \T02h_s, 22 + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + vxor.vv \S09_v, \S09_v, \T02_v + lw \T03h_s, 22*8+4(a0) + rori \T02h_s, \T03l_s, 2 + rori \T02l_s, \T03h_s, 1 + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + rori \T03h_s, \S14l_s, 13 + vand.vv \T05_v, \T05_v, \S14_v + rori \T03l_s, \S14h_s, 12 + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + rori \S14l_s, \T02l_s, 23 + vxor.vv \S10_v, \S15_v, \T03_v + rori \S14h_s, \T02h_s, 23 + rori \T02l_s, \S23l_s, 4 + rori \T02h_s, \S23h_s, 4 + lw \T03l_s, 15*8(a0) + vxor.vv \S11_v, \S16_v, \T04_v + lw \T03h_s, 15*8+4(a0) + sw \T02l_s, 20*8(a0) + sw \T02h_s, 20*8+4(a0) + rori \S23h_s, \T03l_s, 12 + vxor.vv \S12_v, \S12_v, \T05_v + rori \S23l_s, \T03h_s, 11 + rori \T02h_s, \S04l_s, 19 + rori \T02l_s, \S04h_s, 18 + lw \T03l_s, 24*8(a0) + vnot.v \T03_v, \S13_v + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + rori \S04l_s, \T03l_s, 25 + vand.vv \T04_v, \S15_v, \S16_v + rori \S04h_s, \T03h_s, 25 + rori \T02h_s, \S17l_s, 25 + rori \T02l_s, \S17h_s, 24 + lw \T03l_s, 11*8(a0) + vand.vv \T05_v, \S21_v, \S17_v + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + sw \T02h_s, 24*8+4(a0) + lw \T02l_s, 7*8+4(a0) + vor.vv \T02_v, \S14_v, \S15_v + lw \T02h_s, 7*8(a0) + rori \S17l_s, \T03l_s, 27 + rori \S17h_s, \T03h_s, 27 + rori \T03l_s, \T02h_s, 29 + rori \T03h_s, \T02l_s, 29 + lw \T02l_s, 19*8(a0) + vxor.vv \S14_v, \S14_v, \T04_v + lw \T02h_s, 19*8+4(a0) + sw \T03l_s, 11*8(a0) + sw \T03h_s, 11*8+4(a0) + rori \T03l_s, \T02l_s, 28 + rori \T03h_s, \T02h_s, 28 + lw \T01l_s, 13*8(a0) + vxor.vv \S15_v, \S20_v, \T05_v + lw \T01h_s, 13*8+4(a0) + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + lw \T00l_s, 12*8(a0) + lw \T00h_s, 12*8+4(a0) + andn \T03l_s, \S08l_s, \T01l_s + vxor.vv \S13_v, \T03_v, \T02_v + andn \T03h_s, \S08h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + vnot.v \T03_v, \S18_v + sw \T03h_s, 6*8+4(a0) + andn \T03l_s, \T02l_s, \S08l_s + andn \T03h_s, \T02h_s, \S08h_s + xor \T03l_s, \T03l_s, \T01l_s + vnot.v \T05_v, \S18_v + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + andn \T03l_s, \S05l_s, \T02l_s + vor.vv \T02_v, \S17_v, \S18_v + andn \T03h_s, \S05h_s, \T02h_s + xor \S08l_s, \T03l_s, \S08l_s + xor \S08h_s, \T03h_s, \S08h_s + andn \T03l_s, \T00l_s, \S05l_s + vor.vv \T03_v, \T03_v, \S19_v + andn \T03h_s, \T00h_s, \S05h_s + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + sw \T02l_s, 9*8(a0) + vand.vv \T04_v, \S19_v, \S20_v + sw \T02h_s, 9*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T01l_s, 19*8(a0) + vxor.vv \S16_v, \S21_v, \T02_v + lw \T01h_s, 19*8+4(a0) + xor \S05h_s, \T03h_s, \S05h_s + xor \S05l_s, \T03l_s, \S05l_s + lw \T00l_s, 18*8(a0) + vxor.vv \S17_v, \S17_v, \T03_v + lw \T00h_s, 18*8+4(a0) + andn \T03l_s, \S14l_s, \T01l_s + andn \T03h_s, \S14h_s, \T01h_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \S18_v, \T05_v, \T04_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + andn \T03l_s, \S10l_s, \S14l_s + andn \T03h_s, \S10h_s, \S14h_s + xor \T03l_s, \T03l_s, \T01l_s + vnot.v \T03_v, \S01_v + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + andn \T03l_s, \T02l_s, \S10l_s + andn \T03h_s, \T02h_s, \S10h_s + xor \S14l_s, \T03l_s, \S14l_s + vnot.v \T05_v, \S01_v + xor \S14h_s, \T03h_s, \S14h_s + andn \T03l_s, \T00l_s, \T02l_s + andn \T03h_s, \T00h_s, \T02h_s + xor \S10l_s, \T03l_s, \S10l_s + xor \S10h_s, \T03h_s, \S10h_s + andn \T03l_s, \T01l_s, \T00l_s + vor.vv \T02_v, \S20_v, \S21_v + andn \T03h_s, \T01h_s, \T00h_s + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + lw \T01l_s, 20*8(a0) + vand.vv \T03_v, \T03_v, \S22_v + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T02l_s, 15*8(a0) + vor.vv \T04_v, \S22_v, \S23_v + lw \T02h_s, 15*8+4(a0) + lw \T00l_s, 24*8(a0) + lw \T00h_s, 24*8+4(a0) + andn \T03l_s, \T02l_s, \T01l_s + vxor.vv \S19_v, \S19_v, \T02_v + andn \T03h_s, \T02h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 18*8(a0) + vxor.vv \S20_v, \S00_v, \T03_v + sw \T03h_s, 18*8+4(a0) + andn \T03l_s, \S16l_s, \T02l_s + andn \T03h_s, \S16h_s, \T02h_s + xor \T03l_s, \T03l_s, \T01l_s + vxor.vv \S21_v, \T05_v, \T04_v + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + andn \T03l_s, \S17l_s, \S16l_s + vand.vv \T02_v, \S23_v, \S24_v + andn \T03h_s, \S17h_s, \S16h_s + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + andn \T03l_s, \T00l_s, \S17l_s + vor.vv \T03_v, \S24_v, \S00_v + andn \T03h_s, \T00h_s, \S17h_s + xor \S16l_s, \T03l_s, \S16l_s + xor \S16h_s, \T03h_s, \S16h_s + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 0*8(a0) + vand.vv \T04_v, \S00_v, \S01_v + lw \T00h_s, 0*8+4(a0) + xor \S17h_s, \S17h_s, \T03h_s + xor \S17l_s, \S17l_s, \T03l_s + lw \T01l_s, 1*8(a0) + lw \T01h_s, 1*8+4(a0) + lw \T02l_s, 22*8(a0) + vor.vv \T05_v, \T01_v, \S02_v + lw \T02h_s, 22*8+4(a0) + andn \T03l_s, \S21l_s, \T01l_s + andn \T03h_s, \S21h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 24*8(a0) + vxor.vv \S22_v, \S22_v, \T02_v + sw \T03h_s, 24*8+4(a0) + andn \T03l_s, \T02l_s, \S21l_s + andn \T03h_s, \T02h_s, \S21h_s + xor \T03l_s, \T03l_s, \T01l_s + vxor.vv \S23_v, \S23_v, \T03_v + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + andn \T03l_s, \S23l_s, \T02l_s + vxor.vv \S24_v, \S24_v, \T04_v + andn \T03h_s, \S23h_s, \T02h_s + xor \S21l_s, \T03l_s, \S21l_s + xor \S21h_s, \T03h_s, \S21h_s + lw \T04_s, 17*4(sp) + vxor.vv \S00_v, \T00_v, \T05_v + andn \T03l_s, \T00l_s, \S23l_s + andn \T03h_s, \T00h_s, \S23h_s + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + vnot.v \T02_v, \S02_v + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + vor.vv \T04_v, \S04_v, \T00_v + lw \T00l_s, 18*4(sp) + lw \T00h_s, 19*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + xor \S23l_s, \S23l_s, \T03l_s + vand.vv \T03_v, \S03_v, \S04_v + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + lw \T02l_s, 0(\T04_s) + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 8 + andn \T03l_s, \S02l_s, \T01l_s + vand.vv \T05_v, \T00_v, \T01_v + andn \T03h_s, \S02h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T04_s, 17*4(sp) + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vor.vv \T02_v, \T02_v, \S03_v + lw \T04_s, 29*4(sp) + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + andn \T03l_s, \T02l_s, \S02l_s + andn \T03h_s, \T02h_s, \S02h_s + vxor.vv \S02_v, \S02_v, \T03_v + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + vle64.v \T00_v, (\T04_s) + sw \T03l_s, 1*8(a0) + addi \T04_s, \T04_s, 16 + sw \T03h_s, 1*8+4(a0) + andn \T03l_s, \T00l_s, \S04l_s + andn \T03h_s, \T00h_s, \S04h_s + vxor.vv \S03_v, \S03_v, \T04_v + xor \T03l_s, \T03l_s, \T02l_s + sw \T04_s, 29*4(sp) + xor \T03h_s, \T03h_s, \T02h_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + vxor.vv \S01_v, \T01_v, \T02_v + andn \T03l_s, \S04l_s, \T02l_s + andn \T03h_s, \S04h_s, \T02h_s + xor \S02l_s, \T03l_s, \S02l_s + xor \S02h_s, \T03h_s, \S02h_s + vxor.vv \S04_v, \S04_v, \T05_v + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + xor \S04l_s, \T03l_s, \S04l_s + xor \S04h_s, \T03h_s, \S04h_s + vxor.vv \S00_v, \S00_v, \T00_v +.endm + +# stack: +# 0*4-14*4 for saving registers +# 15*4 for saving a0 +# 16*4 for loop control +# 17*4 for table index of scalar impl +# 18*4,19*4 for C0 +# 20*4,21*4 for C1 +# 22*4,23*4 for C2 +# 24*4,25*4 for C3 +# 26*4,27*4 for C4 +# 28*4 for temporary usage +# 29*4 for table index of vector impl +# 30*4 for outer loop control variable j +.globl KeccakF1600_StatePermute_RV32V_4x +.align 2 +KeccakF1600_StatePermute_RV32V_4x: + addi sp, sp, -4*31 + SaveRegs + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sw s11, 30*4(sp) + # prepare table index + la tp, constants_keccak_bitinter + sw tp, 17*4(sp) + bnez s11, init_1th_loop +init_0th_loop: + la tp, constants_keccak + sw tp, 29*4(sp) + # load 1-th scalar impl inputs and vector impl inputs + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + + li tp, 12 +inner_loop: + sw tp, 16*4(sp) + ARound \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + v30, v31, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + lw tp, 16*4(sp) + addi tp, tp, -1 + bnez tp, inner_loop + + # outer loop control + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,ra, gp, tp + lw s11, 30*4(sp) + beqz s11, final_end +final_1th_loop: + addi a0, a0, -25*(16+8) + StoreStates_v +final_end: + addi s11, s11, 1 + li ra, 2 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 4*31 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv32imbv_hybrid_x5.s b/examples/naive/riscv/keccak/fips202_rv32imbv_hybrid_x5.s new file mode 100644 index 000000000..ceda8e0d1 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32imbv_hybrid_x5.s @@ -0,0 +1,2082 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008008 +.quad 0x8000000080008008 + +constants_keccak_bitinter: +.word 0x00000001 +.word 0x00000000 +.word 0x00000000 +.word 0x00000089 +.word 0x00000000 +.word 0x8000008b +.word 0x00000000 +.word 0x80008080 +.word 0x00000001 +.word 0x0000008b +.word 0x00000001 +.word 0x00008000 +.word 0x00000001 +.word 0x80008088 +.word 0x00000001 +.word 0x80000082 +.word 0x00000000 +.word 0x0000000b +.word 0x00000000 +.word 0x0000000a +.word 0x00000001 +.word 0x00008082 +.word 0x00000000 +.word 0x00008003 +.word 0x00000001 +.word 0x0000808b +.word 0x00000001 +.word 0x8000000b +.word 0x00000001 +.word 0x8000008a +.word 0x00000001 +.word 0x80000081 +.word 0x00000000 +.word 0x80000081 +.word 0x00000000 +.word 0x80000008 +.word 0x00000000 +.word 0x00000083 +.word 0x00000000 +.word 0x80008003 +.word 0x00000001 +.word 0x80008088 +.word 0x00000000 +.word 0x80000088 +.word 0x00000001 +.word 0x00008000 +.word 0x00000000 +.word 0x80008082 + +.text + +.macro SaveRegs + sw s0, 0*4(sp) + sw s1, 1*4(sp) + sw s2, 2*4(sp) + sw s3, 3*4(sp) + sw s4, 4*4(sp) + sw s5, 5*4(sp) + sw s6, 6*4(sp) + sw s7, 7*4(sp) + sw s8, 8*4(sp) + sw s9, 9*4(sp) + sw s10, 10*4(sp) + sw s11, 11*4(sp) + sw gp, 12*4(sp) + sw tp, 13*4(sp) + sw ra, 14*4(sp) +.endm + +.macro RestoreRegs + lw s0, 0*4(sp) + lw s1, 1*4(sp) + lw s2, 2*4(sp) + lw s3, 3*4(sp) + lw s4, 4*4(sp) + lw s5, 5*4(sp) + lw s6, 6*4(sp) + lw s7, 7*4(sp) + lw s8, 8*4(sp) + lw s9, 9*4(sp) + lw s10, 10*4(sp) + lw s11, 11*4(sp) + lw gp, 12*4(sp) + lw tp, 13*4(sp) + lw ra, 14*4(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \S02l_s, 2*8(a0) + lw \S02h_s, 2*8+4(a0) + lw \S04l_s, 4*8(a0) + lw \S04h_s, 4*8+4(a0) + lw \S05l_s, 5*8(a0) + lw \S05h_s, 5*8+4(a0) + lw \S08l_s, 8*8(a0) + lw \S08h_s, 8*8+4(a0) + lw \S10l_s, 10*8(a0) + lw \S10h_s, 10*8+4(a0) + lw \S14l_s, 14*8(a0) + lw \S14h_s, 14*8+4(a0) + lw \S16l_s, 16*8(a0) + lw \S16h_s, 16*8+4(a0) + lw \S17l_s, 17*8(a0) + lw \S17h_s, 17*8+4(a0) + lw \S21l_s, 21*8(a0) + lw \S21h_s, 21*8+4(a0) + lw \S23l_s, 23*8(a0) + lw \S23h_s, 23*8+4(a0) +.endm + +.macro StoreStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s + sw \S02l_s, 2*8(a0) + sw \S02h_s, 2*8+4(a0) + sw \S04l_s, 4*8(a0) + sw \S04h_s, 4*8+4(a0) + sw \S05l_s, 5*8(a0) + sw \S05h_s, 5*8+4(a0) + sw \S08l_s, 8*8(a0) + sw \S08h_s, 8*8+4(a0) + sw \S10l_s, 10*8(a0) + sw \S10h_s, 10*8+4(a0) + sw \S14l_s, 14*8(a0) + sw \S14h_s, 14*8+4(a0) + sw \S16l_s, 16*8(a0) + sw \S16h_s, 16*8+4(a0) + sw \S17l_s, 17*8(a0) + sw \S17h_s, 17*8+4(a0) + sw \S21l_s, 21*8(a0) + sw \S21h_s, 21*8+4(a0) + sw \S23l_s, 23*8(a0) + sw \S23h_s, 23*8+4(a0) +.endm + +.macro ARound \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00h_s, \S05h_s, \S10h_s + xor \T00l_s, \S05l_s, \S10l_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \T00_v, \S00_v, \S05_v + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + vxor.vv \T00_v, \T00_v, \S10_v + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \T01h_s, \S08h_s, \S23h_s + xor \T01l_s, \S08l_s, \S23l_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + vxor.vv \T00_v, \T00_v, \S15_v + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + sw \T01l_s, 24*4(sp) + vxor.vv \T00_v, \T00_v, \S20_v + sw \T01h_s, 25*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T03l_s, 9*8(a0) + lw \T03h_s, 9*8+4(a0) + xor \T01h_s, \S04h_s, \S14h_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \T01l_s, \S04l_s, \S14l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S04l_s, \S04l_s, \T00l_s + xor \S14h_s, \S14h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + vxor.vv \T01_v, \T01_v, \S12_v + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + lw \T03l_s, 24*8(a0) + vxor.vv \T01_v, \T01_v, \S17_v + lw \T03h_s, 24*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 19*8(a0) + sw \T02h_s, 19*8+4(a0) + vxor.vv \T01_v, \T01_v, \S22_v + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + li \T04_s, 64-1 + sw \T03h_s, 24*8+4(a0) + vsll.vi \T03_v, \T01_v, 1 + sw \T01l_s, 26*4(sp) + sw \T01h_s, 27*4(sp) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00h_s, \S16h_s, \S21h_s + xor \T00l_s, \S16l_s, \S21l_s + lw \T02l_s, 6*8(a0) + vsrl.vx \T02_v, \T01_v, \T04_s + lw \T02h_s, 6*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \T02_v, \T02_v, \T03_v + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + vxor.vv \T02_v, \T02_v, \T00_v + xor \S05h_s, \S05h_s, \T00h_s + xor \S05l_s, \S05l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vxor.vv \T03_v, \S01_v, \S06_v + xor \S10h_s, \S10h_s, \T00h_s + xor \S10l_s, \S10l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + sw \T02l_s, 15*8(a0) + vxor.vv \T03_v, \T03_v, \S11_v + sw \T02h_s, 15*8+4(a0) + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + lw \T02l_s, 24*4(sp) + lw \T02h_s, 25*4(sp) + vxor.vv \T03_v, \T03_v, \S16_v + lw \T00l_s, 20*4(sp) + lw \T00h_s, 21*4(sp) + rori \T03h_s, \T02h_s, 32-1 + xor \T02h_s, \T02l_s, \T00h_s + xor \T02l_s, \T03h_s, \T00l_s + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + vxor.vv \T03_v, \T03_v, \S21_v + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 7*8(a0) + vxor.vv \S01_v, \S01_v, \T02_v + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + xor \S02h_s, \S02h_s, \T02h_s + xor \S02l_s, \S02l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \S06_v, \S06_v, \T02_v + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + lw \T03h_s, 22*8+4(a0) + xor \S17h_s, \S17h_s, \T02h_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \S17l_s, \S17l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + vxor.vv \S16_v, \S16_v, \T02_v + sw \T00l_s, 22*4(sp) + sw \T00h_s, 23*4(sp) + rori \T03h_s, \T01h_s, 32-1 + xor \T01h_s, \T01l_s, \T00h_s + xor \T01l_s, \T03h_s, \T00l_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08h_s, \S08h_s, \T01h_s + vxor.vv \S21_v, \S21_v, \T02_v + xor \S08l_s, \S08l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \S23h_s, \S23h_s, \T01h_s + vxor.vv \T02_v, \S04_v, \S09_v + xor \S23l_s, \S23l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + xor \T02l_s, \T02l_s, \T01l_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + xor \T03h_s, \T03h_s, \T01h_s + vxor.vv \T02_v, \T02_v, \S14_v + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + vxor.vv \T02_v, \T02_v, \S19_v + xor \T00l_s, \T03h_s, \T01l_s + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + xor \S16h_s, \S16h_s, \T00h_s + xor \S16l_s, \S16l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vxor.vv \T02_v, \T02_v, \S24_v + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T03l_s, 6*8(a0) + lw \T03h_s, 6*8+4(a0) + xor \S21h_s, \S21h_s, \T00h_s + xor \S21l_s, \S21l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + vsll.vi \T04_v, \T02_v, 1 + xor \T03l_s, \T03l_s, \T00l_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vxor.vv \T01_v, \T01_v, \T04_v + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + lw \T00l_s, 0*8(a0) + li \T04_s, 63 + lw \T00h_s, 0*8+4(a0) + vsrl.vx \T04_v, \T02_v, \T04_s + rori \T03h_s, \S21h_s, 32-1 + rori \T03l_s, \S21l_s, 32-1 + rori \T01h_s, \T02h_s, 32-22 + rori \T01l_s, \T02l_s, 32-22 + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + rori \S21h_s, \S08l_s, 32-27 + vxor.vv \T01_v, \T01_v, \T04_v + rori \S21l_s, \S08h_s, 32-(27+1) + rori \S08h_s, \S16l_s, 32-22 + rori \S08l_s, \S16h_s, 32-(22+1) + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + rori \S16h_s, \S05h_s, 32-18 + rori \S16l_s, \S05l_s, 32-18 + vxor.vv \T04_v, \S03_v, \S08_v + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + rori \S05h_s, \T02h_s, 32-14 + rori \S05l_s, \T02l_s, 32-14 + rori \T02h_s, \T03l_s, 32-10 + rori \T02l_s, \T03h_s, 32-(10+1) + sw \T02l_s, 3*8(a0) + lw \T02l_s, 13*8(a0) + vxor.vv \T04_v, \T04_v, \S13_v + sw \T02h_s, 3*8+4(a0) + lw \T02h_s, 13*8+4(a0) + rori \T03h_s, \T02l_s, 32-12 + rori \T03l_s, \T02h_s, 32-(12+1) + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + rori \T02h_s, \S10l_s, 32-1 + rori \T02l_s, \S10h_s, 32-(1+1) + vxor.vv \T04_v, \T04_v, \S18_v + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + mv \S10h_s, \T03l_s + rori \S10l_s, \T03h_s, 32-1 + rori \T02h_s, \S02h_s, 32-31 + rori \T02l_s, \S02l_s, 32-31 + vxor.vv \T04_v, \T04_v, \S23_v + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + rori \S02h_s, \T03l_s, 32-21 + vxor.vv \S03_v, \S03_v, \T01_v + rori \S02l_s, \T03h_s, 32-(21+1) + rori \T03h_s, \T02h_s, 32-10 + rori \T03l_s, \T02l_s, 32-10 + sw \T03l_s, 12*8(a0) + lw \T03l_s, 22*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03h_s, 22*8+4(a0) + vxor.vv \S08_v, \S08_v, \T01_v + rori \T02h_s, \T03l_s, 32-30 + rori \T02l_s, \T03h_s, 32-(30+1) + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + rori \T03h_s, \S14l_s, 32-19 + rori \T03l_s, \S14h_s, 32-(19+1) + lw \T02l_s, 20*8(a0) + vxor.vv \S13_v, \S13_v, \T01_v + lw \T02h_s, 20*8+4(a0) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + rori \S14h_s, \T02h_s, 32-9 + rori \S14l_s, \T02l_s, 32-9 + rori \T02h_s, \S23h_s, 32-28 + rori \T02l_s, \S23l_s, 32-28 + vxor.vv \S18_v, \S18_v, \T01_v + lw \T03l_s, 15*8(a0) + lw \T03h_s, 15*8+4(a0) + sw \T02l_s, 20*8(a0) + sw \T02h_s, 20*8+4(a0) + rori \S23h_s, \T03l_s, 32-20 + rori \S23l_s, \T03h_s, 32-(20+1) + rori \T02h_s, \S04l_s, 32-13 + vxor.vv \S23_v, \S23_v, \T01_v + rori \T02l_s, \S04h_s, 32-(13+1) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + li \T04_s, 64-1 + rori \S04h_s, \T03h_s, 32-7 + vsll.vi \T01_v, \T00_v, 1 + rori \S04l_s, \T03l_s, 32-7 + rori \T02h_s, \S17l_s, 32-7 + rori \T02l_s, \S17h_s, 32-(7+1) + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + lw \T02l_s, 7*8(a0) + vsrl.vx \T00_v, \T00_v, \T04_s + sw \T02h_s, 24*8+4(a0) + lw \T02h_s, 7*8+4(a0) + rori \S17h_s, \T03h_s, 32-5 + rori \S17l_s, \T03l_s, 32-5 + rori \T03l_s, \T02l_s, 32-3 + rori \T03h_s, \T02h_s, 32-3 + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + vxor.vv \T00_v, \T00_v, \T01_v + sw \T03l_s, 11*8(a0) + sw \T03h_s, 11*8+4(a0) + rori \T03l_s, \T02l_s, 32-4 + rori \T03h_s, \T02h_s, 32-4 + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + vxor.vv \T00_v, \T00_v, \T04_v + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + lw \T01l_s, 13*8(a0) + lw \T01h_s, 13*8+4(a0) + lw \T00l_s, 12*8(a0) + lw \T00h_s, 12*8+4(a0) + andn \T03h_s, \S08h_s, \T01h_s + andn \T03l_s, \S08l_s, \T01l_s + vxor.vv \S04_v, \S04_v, \T00_v + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + andn \T03h_s, \T02h_s, \S08h_s + vxor.vv \S09_v, \S09_v, \T00_v + andn \T03l_s, \T02l_s, \S08l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + andn \T03h_s, \S05h_s, \T02h_s + andn \T03l_s, \S05l_s, \T02l_s + vxor.vv \S14_v, \S14_v, \T00_v + xor \S08h_s, \T03h_s, \S08h_s + xor \S08l_s, \T03l_s, \S08l_s + andn \T03h_s, \T00h_s, \S05h_s + andn \T03l_s, \T00l_s, \S05l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 9*8(a0) + vxor.vv \S19_v, \S19_v, \T00_v + sw \T02h_s, 9*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 18*8(a0) + xor \S05h_s, \T03h_s, \S05h_s + lw \T00h_s, 18*8+4(a0) + xor \S05l_s, \T03l_s, \S05l_s + vxor.vv \S24_v, \S24_v, \T00_v + lw \T01l_s, 19*8(a0) + lw \T01h_s, 19*8+4(a0) + andn \T03l_s, \S14l_s, \T01l_s + lw \T02l_s, 11*8(a0) + andn \T03h_s, \S14h_s, \T01h_s + li \T04_s, 64-1 + lw \T02h_s, 11*8+4(a0) + vsll.vi \T01_v, \T04_v, 1 + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + andn \T03h_s, \S10h_s, \S14h_s + andn \T03l_s, \S10l_s, \S14l_s + xor \T03h_s, \T03h_s, \T01h_s + vsrl.vx \T04_v, \T04_v, \T04_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + andn \T03h_s, \T02h_s, \S10h_s + andn \T03l_s, \T02l_s, \S10l_s + xor \S14h_s, \T03h_s, \S14h_s + xor \S14l_s, \T03l_s, \S14l_s + vxor.vv \T04_v, \T04_v, \T01_v + andn \T03h_s, \T00h_s, \T02h_s + andn \T03l_s, \T00l_s, \T02l_s + xor \S10h_s, \T03h_s, \S10h_s + xor \S10l_s, \T03l_s, \S10l_s + andn \T03h_s, \T01h_s, \T00h_s + andn \T03l_s, \T01l_s, \T00l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + vxor.vv \T04_v, \T04_v, \T03_v + lw \T01l_s, 20*8(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T00l_s, 24*8(a0) + lw \T00h_s, 24*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vxor.vv \S02_v, \S02_v, \T04_v + andn \T03h_s, \T02h_s, \T01h_s + andn \T03l_s, \T02l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + andn \T03h_s, \S16h_s, \T02h_s + andn \T03l_s, \S16l_s, \T02l_s + vxor.vv \S07_v, \S07_v, \T04_v + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + andn \T03h_s, \S17h_s, \S16h_s + andn \T03l_s, \S17l_s, \S16l_s + xor \T02h_s, \T03h_s, \T02h_s + vxor.vv \S12_v, \S12_v, \T04_v + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + andn \T03h_s, \T00h_s, \S17h_s + andn \T03l_s, \T00l_s, \S17l_s + xor \S16h_s, \T03h_s, \S16h_s + xor \S16l_s, \T03l_s, \S16l_s + vxor.vv \S17_v, \S17_v, \T04_v + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + xor \S17h_s, \S17h_s, \T03h_s + lw \T01l_s, 1*8(a0) + xor \S17l_s, \S17l_s, \T03l_s + vxor.vv \S22_v, \S22_v, \T04_v + lw \T01h_s, 1*8+4(a0) + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + andn \T03h_s, \S21h_s, \T01h_s + andn \T03l_s, \S21l_s, \T01l_s + li \T04_s, 64-1 + xor \T03h_s, \T03h_s, \T00h_s + vsll.vi \T01_v, \T03_v, 1 + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + andn \T03h_s, \T02h_s, \S21h_s + andn \T03l_s, \T02l_s, \S21l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + vsrl.vx \T03_v, \T03_v, \T04_s + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + andn \T03h_s, \S23h_s, \T02h_s + andn \T03l_s, \S23l_s, \T02l_s + xor \S21h_s, \T03h_s, \S21h_s + xor \S21l_s, \T03l_s, \S21l_s + andn \T03h_s, \T00h_s, \S23h_s + vxor.vv \T03_v, \T03_v, \T01_v + andn \T03l_s, \T00l_s, \S23l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + vxor.vv \T03_v, \T03_v, \T02_v + lw \T00l_s, 18*4(sp) + lw \T00h_s, 19*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + xor \S23l_s, \S23l_s, \T03l_s + andn \T03h_s, \S02h_s, \T01h_s + andn \T03l_s, \S02l_s, \T01l_s + vxor.vv \S05_v, \S05_v, \T03_v + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T04_s, 17*4(sp) + lw \T02l_s, 0(\T04_s) + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 8 + sw \T04_s, 17*4(sp) + xor \T03h_s, \T03h_s, \T02h_s + vxor.vv \S10_v, \S10_v, \T03_v + xor \T03l_s, \T03l_s, \T02l_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + andn \T03h_s, \T02h_s, \S02h_s + andn \T03l_s, \T02l_s, \S02l_s + xor \T03h_s, \T03h_s, \T01h_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 1*8(a0) + sw \T03h_s, 1*8+4(a0) + andn \T03h_s, \S04h_s, \T02h_s + andn \T03l_s, \S04l_s, \T02l_s + xor \S02h_s, \T03h_s, \S02h_s + xor \S02l_s, \T03l_s, \S02l_s + vxor.vv \S20_v, \S20_v, \T03_v + andn \T03h_s, \T00h_s, \S04h_s + andn \T03l_s, \T00l_s, \S04l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + andn \T03h_s, \T01h_s, \T00h_s + vxor.vv \T00_v, \S00_v, \T03_v + andn \T03l_s, \T01l_s, \T00l_s + xor \S04h_s, \T03h_s, \S04h_s + xor \S04l_s, \T03l_s, \S04l_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + li \T04_s, 44 + xor \T00h_s, \S05h_s, \S10h_s + vsll.vx \T02_v, \S06_v, \T04_s + xor \T00l_s, \S05l_s, \S10l_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + vsrl.vi \T01_v, \S06_v, 64-44 + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + lw \T03l_s, 3*8(a0) + vxor.vv \T01_v, \T01_v, \T02_v + lw \T03h_s, 3*8+4(a0) + xor \T01h_s, \S08h_s, \S23h_s + xor \T01l_s, \S08l_s, \S23l_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + li \T04_s, 62 + xor \T01h_s, \T01h_s, \T03h_s + vsll.vx \T03_v, \S02_v, \T04_s + xor \T01l_s, \T01l_s, \T03l_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + vsrl.vi \S00_v, \S02_v, 64-62 + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T03l_s, 9*8(a0) + lw \T03h_s, 9*8+4(a0) + xor \T01h_s, \S04h_s, \S14h_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \T01l_s, \S04l_s, \S14l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S04l_s, \S04l_s, \T00l_s + xor \S14h_s, \S14h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + lw \T02l_s, 19*8(a0) + li \T04_s, 43 + lw \T02h_s, 19*8+4(a0) + vsll.vx \T02_v, \S12_v, \T04_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + vsrl.vi \S02_v, \S12_v, 64-43 + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 19*8(a0) + sw \T02h_s, 19*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + li \T04_s, 64-25 + sw \T01l_s, 26*4(sp) + vsll.vi \T03_v, \S13_v, 25 + sw \T01h_s, 27*4(sp) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00h_s, \S16h_s, \S21h_s + xor \T00l_s, \S16l_s, \S21l_s + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + vsrl.vx \S12_v, \S13_v, \T04_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + li \T04_s, 64-8 + xor \T00l_s, \T03h_s, \T01l_s + vsll.vi \T02_v, \S19_v, 8 + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + xor \S05h_s, \S05h_s, \T00h_s + xor \S05l_s, \S05l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 0*8(a0) + vsrl.vx \S13_v, \S19_v, \T04_s + sw \T02h_s, 0*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \S10h_s, \S10h_s, \T00h_s + xor \S10l_s, \S10l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vxor.vv \S13_v, \S13_v, \T02_v + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + li \T04_s, 56 + sw \T03l_s, 20*8(a0) + vsll.vx \T03_v, \S23_v, \T04_s + sw \T03h_s, 20*8+4(a0) + lw \T02l_s, 24*4(sp) + lw \T02h_s, 25*4(sp) + lw \T00l_s, 20*4(sp) + lw \T00h_s, 21*4(sp) + rori \T03h_s, \T02h_s, 32-1 + xor \T02h_s, \T02l_s, \T00h_s + xor \T02l_s, \T03h_s, \T00l_s + vsrl.vi \S19_v, \S23_v, 64-56 + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + vxor.vv \S19_v, \S19_v, \T03_v + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + xor \S02h_s, \S02h_s, \T02h_s + li \T04_s, 41 + xor \S02l_s, \S02l_s, \T02l_s + vsll.vx \T02_v, \S15_v, \T04_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + vsrl.vi \S23_v, \S15_v, 64-41 + lw \T03h_s, 22*8+4(a0) + xor \S17h_s, \S17h_s, \T02h_s + xor \S17l_s, \S17l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + vxor.vv \S23_v, \S23_v, \T02_v + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + sw \T00l_s, 22*4(sp) + sw \T00h_s, 23*4(sp) + rori \T03h_s, \T01h_s, 32-1 + li \T04_s, 64-1 + xor \T01h_s, \T01l_s, \T00h_s + vsll.vi \T03_v, \S01_v, 1 + xor \T01l_s, \T03h_s, \T00l_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08h_s, \S08h_s, \T01h_s + xor \S08l_s, \S08l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + vsrl.vx \S15_v, \S01_v, \T04_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \S23h_s, \S23h_s, \T01h_s + xor \S23l_s, \S23l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \T02l_s, \T02l_s, \T01l_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + li \T04_s, 55 + xor \T03h_s, \T03h_s, \T01h_s + vsll.vx \T02_v, \S08_v, \T04_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + vsrl.vi \S01_v, \S08_v, 64-55 + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + xor \S16h_s, \S16h_s, \T00h_s + xor \S16l_s, \S16l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + vxor.vv \S01_v, \S01_v, \T02_v + lw \T03l_s, 6*8(a0) + lw \T03h_s, 6*8+4(a0) + xor \S21h_s, \S21h_s, \T00h_s + xor \S21l_s, \S21l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + li \T04_s, 45 + lw \T02l_s, 11*8(a0) + vsll.vx \T03_v, \S16_v, \T04_s + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + vsrl.vi \S08_v, \S16_v, 64-45 + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + rori \T03h_s, \S21h_s, 32-1 + rori \T03l_s, \S21l_s, 32-1 + rori \T01h_s, \T02h_s, 32-22 + vxor.vv \S08_v, \S08_v, \T03_v + rori \T01l_s, \T02l_s, 32-22 + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + rori \S21h_s, \S08l_s, 32-27 + rori \S21l_s, \S08h_s, 32-(27+1) + li \T04_s, 64-6 + rori \S08h_s, \S16l_s, 32-22 + vsll.vi \T02_v, \S07_v, 6 + rori \S08l_s, \S16h_s, 32-(22+1) + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + rori \S16h_s, \S05h_s, 32-18 + rori \S16l_s, \S05l_s, 32-18 + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + vsrl.vx \S16_v, \S07_v, \T04_s + rori \S05h_s, \T02h_s, 32-14 + rori \S05l_s, \T02l_s, 32-14 + rori \T02h_s, \T03l_s, 32-10 + rori \T02l_s, \T03h_s, 32-(10+1) + sw \T02l_s, 3*8(a0) + lw \T02l_s, 13*8(a0) + sw \T02h_s, 3*8+4(a0) + vxor.vv \S16_v, \S16_v, \T02_v + lw \T02h_s, 13*8+4(a0) + rori \T03h_s, \T02l_s, 32-12 + rori \T03l_s, \T02h_s, 32-(12+1) + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + li \T04_s, 64-3 + rori \T02h_s, \S10l_s, 32-1 + vsll.vi \T03_v, \S10_v, 3 + rori \T02l_s, \S10h_s, 32-(1+1) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + mv \S10h_s, \T03l_s + rori \S10l_s, \T03h_s, 32-1 + vsrl.vx \S07_v, \S10_v, \T04_s + rori \T02h_s, \S02h_s, 32-31 + rori \T02l_s, \S02l_s, 32-31 + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + vxor.vv \S07_v, \S07_v, \T03_v + rori \S02h_s, \T03l_s, 32-21 + rori \S02l_s, \T03h_s, 32-(21+1) + rori \T03h_s, \T02h_s, 32-10 + rori \T03l_s, \T02l_s, 32-10 + sw \T03l_s, 12*8(a0) + lw \T03l_s, 22*8(a0) + li \T04_s, 64-28 + sw \T03h_s, 12*8+4(a0) + vsll.vi \T02_v, \S03_v, 28 + lw \T03h_s, 22*8+4(a0) + rori \T02h_s, \T03l_s, 32-30 + rori \T02l_s, \T03h_s, 32-(30+1) + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + rori \T03h_s, \S14l_s, 32-19 + rori \T03l_s, \S14h_s, 32-(19+1) + lw \T02l_s, 20*8(a0) + vsrl.vx \S10_v, \S03_v, \T04_s + lw \T02h_s, 20*8+4(a0) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + rori \S14h_s, \T02h_s, 32-9 + rori \S14l_s, \T02l_s, 32-9 + rori \T02h_s, \S23h_s, 32-28 + rori \T02l_s, \S23l_s, 32-28 + vxor.vv \S10_v, \S10_v, \T02_v + lw \T03l_s, 15*8(a0) + lw \T03h_s, 15*8+4(a0) + sw \T02l_s, 20*8(a0) + sw \T02h_s, 20*8+4(a0) + rori \S23h_s, \T03l_s, 32-20 + li \T04_s, 64-21 + rori \S23l_s, \T03h_s, 32-(20+1) + vsll.vi \T03_v, \S18_v, 21 + rori \T02h_s, \S04l_s, 32-13 + rori \T02l_s, \S04h_s, 32-(13+1) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + rori \S04h_s, \T03h_s, 32-7 + vsrl.vx \S03_v, \S18_v, \T04_s + rori \S04l_s, \T03l_s, 32-7 + rori \T02h_s, \S17l_s, 32-7 + rori \T02l_s, \S17h_s, 32-(7+1) + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + lw \T02l_s, 7*8(a0) + vxor.vv \S03_v, \S03_v, \T03_v + sw \T02h_s, 24*8+4(a0) + lw \T02h_s, 7*8+4(a0) + rori \S17h_s, \T03h_s, 32-5 + rori \S17l_s, \T03l_s, 32-5 + rori \T03l_s, \T02l_s, 32-3 + li \T04_s, 64-15 + rori \T03h_s, \T02h_s, 32-3 + vsll.vi \T02_v, \S17_v, 15 + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + sw \T03l_s, 11*8(a0) + sw \T03h_s, 11*8+4(a0) + rori \T03l_s, \T02l_s, 32-4 + rori \T03h_s, \T02h_s, 32-4 + sw \T00l_s, 18*4(sp) + vsrl.vx \S18_v, \S17_v, \T04_s + sw \T00h_s, 19*4(sp) + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + lw \T01l_s, 13*8(a0) + lw \T01h_s, 13*8+4(a0) + vxor.vv \S18_v, \S18_v, \T02_v + lw \T00l_s, 12*8(a0) + lw \T00h_s, 12*8+4(a0) + andn \T03h_s, \S08h_s, \T01h_s + andn \T03l_s, \S08l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + li \T04_s, 64-10 + lw \T02l_s, 9*8(a0) + vsll.vi \T03_v, \S11_v, 10 + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + andn \T03h_s, \T02h_s, \S08h_s + andn \T03l_s, \T02l_s, \S08l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 7*8(a0) + vsrl.vx \S17_v, \S11_v, \T04_s + sw \T03h_s, 7*8+4(a0) + andn \T03h_s, \S05h_s, \T02h_s + andn \T03l_s, \S05l_s, \T02l_s + xor \S08h_s, \T03h_s, \S08h_s + xor \S08l_s, \T03l_s, \S08l_s + andn \T03h_s, \T00h_s, \S05h_s + andn \T03l_s, \T00l_s, \S05l_s + xor \T02h_s, \T03h_s, \T02h_s + vxor.vv \S17_v, \S17_v, \T03_v + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + li \T04_s, 64-20 + lw \T00l_s, 18*8(a0) + vsll.vi \T02_v, \S09_v, 20 + xor \S05h_s, \T03h_s, \S05h_s + lw \T00h_s, 18*8+4(a0) + xor \S05l_s, \T03l_s, \S05l_s + lw \T01l_s, 19*8(a0) + lw \T01h_s, 19*8+4(a0) + andn \T03l_s, \S14l_s, \T01l_s + lw \T02l_s, 11*8(a0) + vsrl.vx \S11_v, \S09_v, \T04_s + andn \T03h_s, \S14h_s, \T01h_s + lw \T02h_s, 11*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + andn \T03h_s, \S10h_s, \S14h_s + vxor.vv \S11_v, \S11_v, \T02_v + andn \T03l_s, \S10l_s, \S14l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + li \T04_s, 61 + andn \T03h_s, \T02h_s, \S10h_s + vsll.vx \T03_v, \S22_v, \T04_s + andn \T03l_s, \T02l_s, \S10l_s + xor \S14h_s, \T03h_s, \S14h_s + xor \S14l_s, \T03l_s, \S14l_s + andn \T03h_s, \T00h_s, \T02h_s + andn \T03l_s, \T00l_s, \T02l_s + xor \S10h_s, \T03h_s, \S10h_s + xor \S10l_s, \T03l_s, \S10l_s + vsrl.vi \S09_v, \S22_v, 64-61 + andn \T03h_s, \T01h_s, \T00h_s + andn \T03l_s, \T01l_s, \T00l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + lw \T01l_s, 20*8(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + vxor.vv \S09_v, \S09_v, \T03_v + sw \T02h_s, 11*8+4(a0) + lw \T00l_s, 24*8(a0) + lw \T00h_s, 24*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + li \T04_s, 39 + andn \T03h_s, \T02h_s, \T01h_s + vsll.vx \T02_v, \S14_v, \T04_s + andn \T03l_s, \T02l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + andn \T03h_s, \S16h_s, \T02h_s + andn \T03l_s, \S16l_s, \T02l_s + xor \T03h_s, \T03h_s, \T01h_s + vsrl.vi \S22_v, \S14_v, 64-39 + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + andn \T03h_s, \S17h_s, \S16h_s + andn \T03l_s, \S17l_s, \S16l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 15*8(a0) + vxor.vv \S22_v, \S22_v, \T02_v + sw \T02h_s, 15*8+4(a0) + andn \T03h_s, \T00h_s, \S17h_s + andn \T03l_s, \T00l_s, \S17l_s + xor \S16h_s, \T03h_s, \S16h_s + xor \S16l_s, \T03l_s, \S16l_s + andn \T03l_s, \T01l_s, \T00l_s + li \T04_s, 64-18 + andn \T03h_s, \T01h_s, \T00h_s + vsll.vi \T03_v, \S20_v, 18 + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + xor \S17h_s, \S17h_s, \T03h_s + lw \T01l_s, 1*8(a0) + xor \S17l_s, \S17l_s, \T03l_s + lw \T01h_s, 1*8+4(a0) + lw \T02l_s, 22*8(a0) + vsrl.vx \S14_v, \S20_v, \T04_s + lw \T02h_s, 22*8+4(a0) + andn \T03h_s, \S21h_s, \T01h_s + andn \T03l_s, \S21l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + vxor.vv \S14_v, \S14_v, \T03_v + andn \T03h_s, \T02h_s, \S21h_s + andn \T03l_s, \T02l_s, \S21l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 20*8(a0) + li \T04_s, 64-27 + sw \T03h_s, 20*8+4(a0) + vsll.vi \T02_v, \S04_v, 27 + andn \T03h_s, \S23h_s, \T02h_s + andn \T03l_s, \S23l_s, \T02l_s + xor \S21h_s, \T03h_s, \S21h_s + xor \S21l_s, \T03l_s, \S21l_s + andn \T03h_s, \T00h_s, \S23h_s + andn \T03l_s, \T00l_s, \S23l_s + xor \T02h_s, \T03h_s, \T02h_s + vsrl.vx \S20_v, \S04_v, \T04_s + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 18*4(sp) + lw \T00h_s, 19*4(sp) + vxor.vv \S20_v, \S20_v, \T02_v + xor \S23h_s, \S23h_s, \T03h_s + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + xor \S23l_s, \S23l_s, \T03l_s + andn \T03h_s, \S02h_s, \T01h_s + andn \T03l_s, \S02l_s, \T01l_s + vsll.vi \T03_v, \S24_v, 14 + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T04_s, 17*4(sp) + lw \T02l_s, 0(\T04_s) + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 8 + sw \T04_s, 17*4(sp) + li \T04_s, 64-14 + xor \T03h_s, \T03h_s, \T02h_s + vsrl.vx \S04_v, \S24_v, \T04_s + xor \T03l_s, \T03l_s, \T02l_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + andn \T03h_s, \T02h_s, \S02h_s + andn \T03l_s, \T02l_s, \S02l_s + vxor.vv \S04_v, \S04_v, \T03_v + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 1*8(a0) + sw \T03h_s, 1*8+4(a0) + andn \T03h_s, \S04h_s, \T02h_s + andn \T03l_s, \S04l_s, \T02l_s + li \T04_s, 64-2 + xor \S02h_s, \T03h_s, \S02h_s + vsll.vi \T02_v, \S21_v, 2 + xor \S02l_s, \T03l_s, \S02l_s + andn \T03h_s, \T00h_s, \S04h_s + andn \T03l_s, \T00l_s, \S04l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + andn \T03h_s, \T01h_s, \T00h_s + vsrl.vx \S24_v, \S21_v, \T04_s + andn \T03l_s, \T01l_s, \T00l_s + xor \S04h_s, \T03h_s, \S04h_s + xor \S04l_s, \T03l_s, \S04l_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00h_s, \S05h_s, \S10h_s + xor \T00l_s, \S05l_s, \S10l_s + vxor.vv \S24_v, \S24_v, \T02_v + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 20*8(a0) + li \T04_s, 36 + lw \T03h_s, 20*8+4(a0) + vsll.vx \T03_v, \S05_v, \T04_s + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + lw \T03l_s, 3*8(a0) + vsrl.vi \S21_v, \S05_v, 64-36 + lw \T03h_s, 3*8+4(a0) + xor \T01h_s, \S08h_s, \S23h_s + xor \T01l_s, \S08l_s, \S23l_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + vxor.vv \S21_v, \S21_v, \T03_v + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + sw \T01l_s, 24*4(sp) + vor.vv \T02_v, \S11_v, \S07_v + sw \T01h_s, 25*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T03l_s, 9*8(a0) + lw \T03h_s, 9*8+4(a0) + xor \T01h_s, \S04h_s, \S14h_s + vxor.vv \S05_v, \S10_v, \T02_v + xor \T01l_s, \S04l_s, \S14l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S04l_s, \S04l_s, \T00l_s + xor \S14h_s, \S14h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + vand.vv \T03_v, \S07_v, \S08_v + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + vxor.vv \S06_v, \S11_v, \T03_v + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 19*8(a0) + sw \T02h_s, 19*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + vnot.v \T02_v, \S09_v + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + sw \T01l_s, 26*4(sp) + sw \T01h_s, 27*4(sp) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + vor.vv \T02_v, \T02_v, \S08_v + xor \T00h_s, \S16h_s, \S21h_s + xor \T00l_s, \S16l_s, \S21l_s + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 11*8(a0) + vxor.vv \S07_v, \S07_v, \T02_v + lw \T03h_s, 11*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + vor.vv \T03_v, \S09_v, \S10_v + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + xor \S05h_s, \S05h_s, \T00h_s + xor \S05l_s, \S05l_s, \T00l_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \S10h_s, \S10h_s, \T00h_s + vand.vv \T02_v, \S10_v, \S11_v + xor \S10l_s, \S10l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + vxor.vv \S09_v, \S09_v, \T02_v + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + lw \T02l_s, 24*4(sp) + lw \T02h_s, 25*4(sp) + lw \T00l_s, 20*4(sp) + vor.vv \T03_v, \S16_v, \S12_v + lw \T00h_s, 21*4(sp) + rori \T03h_s, \T02h_s, 32-1 + xor \T02h_s, \T02l_s, \T00h_s + xor \T02l_s, \T03h_s, \T00l_s + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T00h_s, \S02h_s, \S17h_s + vxor.vv \S10_v, \S15_v, \T03_v + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + vand.vv \T02_v, \S12_v, \S13_v + lw \T03h_s, 12*8+4(a0) + xor \S02h_s, \S02h_s, \T02h_s + xor \S02l_s, \S02l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 12*8(a0) + vxor.vv \S11_v, \S16_v, \T02_v + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + lw \T03h_s, 22*8+4(a0) + xor \S17h_s, \S17h_s, \T02h_s + xor \S17l_s, \S17l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + vnot.v \T03_v, \S13_v + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + sw \T00l_s, 22*4(sp) + sw \T00h_s, 23*4(sp) + rori \T03h_s, \T01h_s, 32-1 + xor \T01h_s, \T01l_s, \T00h_s + vand.vv \T03_v, \T03_v, \S14_v + xor \T01l_s, \T03h_s, \T00l_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08h_s, \S08h_s, \T01h_s + xor \S08l_s, \S08l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + vxor.vv \S12_v, \S12_v, \T03_v + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \S23h_s, \S23h_s, \T01h_s + xor \S23l_s, \S23l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + vnot.v \T03_v, \S13_v + xor \T02l_s, \T02l_s, \T01l_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + vor.vv \T02_v, \S14_v, \S15_v + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + vxor.vv \S13_v, \T03_v, \T02_v + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + xor \S16h_s, \S16h_s, \T00h_s + xor \S16l_s, \S16l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 1*8(a0) + vand.vv \T03_v, \S15_v, \S16_v + sw \T02h_s, 1*8+4(a0) + lw \T03l_s, 6*8(a0) + lw \T03h_s, 6*8+4(a0) + xor \S21h_s, \S21h_s, \T00h_s + xor \S21l_s, \S21l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \S14_v, \S14_v, \T03_v + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + vand.vv \T02_v, \S21_v, \S17_v + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + rori \T03h_s, \S21h_s, 32-1 + rori \T03l_s, \S21l_s, 32-1 + rori \T01h_s, \T02h_s, 32-22 + rori \T01l_s, \T02l_s, 32-22 + vxor.vv \S15_v, \S20_v, \T02_v + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + rori \S21h_s, \S08l_s, 32-27 + rori \S21l_s, \S08h_s, 32-(27+1) + rori \S08h_s, \S16l_s, 32-22 + rori \S08l_s, \S16h_s, 32-(22+1) + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + vor.vv \T03_v, \S17_v, \S18_v + rori \S16h_s, \S05h_s, 32-18 + rori \S16l_s, \S05l_s, 32-18 + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + rori \S05h_s, \T02h_s, 32-14 + rori \S05l_s, \T02l_s, 32-14 + rori \T02h_s, \T03l_s, 32-10 + vxor.vv \S16_v, \S21_v, \T03_v + rori \T02l_s, \T03h_s, 32-(10+1) + sw \T02l_s, 3*8(a0) + lw \T02l_s, 13*8(a0) + sw \T02h_s, 3*8+4(a0) + lw \T02h_s, 13*8+4(a0) + rori \T03h_s, \T02l_s, 32-12 + rori \T03l_s, \T02h_s, 32-(12+1) + vnot.v \T02_v, \S18_v + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + rori \T02h_s, \S10l_s, 32-1 + rori \T02l_s, \S10h_s, 32-(1+1) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + vor.vv \T02_v, \T02_v, \S19_v + sw \T02h_s, 13*8+4(a0) + mv \S10h_s, \T03l_s + rori \S10l_s, \T03h_s, 32-1 + rori \T02h_s, \S02h_s, 32-31 + rori \T02l_s, \S02l_s, 32-31 + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + vxor.vv \S17_v, \S17_v, \T02_v + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + rori \S02h_s, \T03l_s, 32-21 + rori \S02l_s, \T03h_s, 32-(21+1) + rori \T03h_s, \T02h_s, 32-10 + vnot.v \T02_v, \S18_v + rori \T03l_s, \T02l_s, 32-10 + sw \T03l_s, 12*8(a0) + lw \T03l_s, 22*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03h_s, 22*8+4(a0) + rori \T02h_s, \T03l_s, 32-30 + rori \T02l_s, \T03h_s, 32-(30+1) + vand.vv \T03_v, \S19_v, \S20_v + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + rori \T03h_s, \S14l_s, 32-19 + rori \T03l_s, \S14h_s, 32-(19+1) + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + sw \T03l_s, 22*8(a0) + vxor.vv \S18_v, \T02_v, \T03_v + sw \T03h_s, 22*8+4(a0) + rori \S14h_s, \T02h_s, 32-9 + rori \S14l_s, \T02l_s, 32-9 + rori \T02h_s, \S23h_s, 32-28 + rori \T02l_s, \S23l_s, 32-28 + lw \T03l_s, 15*8(a0) + lw \T03h_s, 15*8+4(a0) + sw \T02l_s, 20*8(a0) + vor.vv \T02_v, \S20_v, \S21_v + sw \T02h_s, 20*8+4(a0) + rori \S23h_s, \T03l_s, 32-20 + rori \S23l_s, \T03h_s, 32-(20+1) + rori \T02h_s, \S04l_s, 32-13 + rori \T02l_s, \S04h_s, 32-(13+1) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + vxor.vv \S19_v, \S19_v, \T02_v + sw \T02h_s, 15*8+4(a0) + rori \S04h_s, \T03h_s, 32-7 + rori \S04l_s, \T03l_s, 32-7 + rori \T02h_s, \S17l_s, 32-7 + rori \T02l_s, \S17h_s, 32-(7+1) + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + vnot.v \T03_v, \S01_v + lw \T02l_s, 7*8(a0) + sw \T02h_s, 24*8+4(a0) + lw \T02h_s, 7*8+4(a0) + rori \S17h_s, \T03h_s, 32-5 + rori \S17l_s, \T03l_s, 32-5 + rori \T03l_s, \T02l_s, 32-3 + rori \T03h_s, \T02h_s, 32-3 + vand.vv \T03_v, \T03_v, \S22_v + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + sw \T03l_s, 11*8(a0) + sw \T03h_s, 11*8+4(a0) + rori \T03l_s, \T02l_s, 32-4 + rori \T03h_s, \T02h_s, 32-4 + sw \T00l_s, 18*4(sp) + vxor.vv \S20_v, \S00_v, \T03_v + sw \T00h_s, 19*4(sp) + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + lw \T01l_s, 13*8(a0) + lw \T01h_s, 13*8+4(a0) + vnot.v \T03_v, \S01_v + lw \T00l_s, 12*8(a0) + lw \T00h_s, 12*8+4(a0) + andn \T03h_s, \S08h_s, \T01h_s + andn \T03l_s, \S08l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T02l_s, 9*8(a0) + vor.vv \T02_v, \S22_v, \S23_v + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + andn \T03h_s, \T02h_s, \S08h_s + andn \T03l_s, \T02l_s, \S08l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + vxor.vv \S21_v, \T03_v, \T02_v + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + andn \T03h_s, \S05h_s, \T02h_s + andn \T03l_s, \S05l_s, \T02l_s + xor \S08h_s, \T03h_s, \S08h_s + xor \S08l_s, \T03l_s, \S08l_s + andn \T03h_s, \T00h_s, \S05h_s + vand.vv \T03_v, \S23_v, \S24_v + andn \T03l_s, \T00l_s, \S05l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + vxor.vv \S22_v, \S22_v, \T03_v + lw \T00l_s, 18*8(a0) + xor \S05h_s, \T03h_s, \S05h_s + lw \T00h_s, 18*8+4(a0) + xor \S05l_s, \T03l_s, \S05l_s + lw \T01l_s, 19*8(a0) + lw \T01h_s, 19*8+4(a0) + andn \T03l_s, \S14l_s, \T01l_s + lw \T02l_s, 11*8(a0) + vor.vv \T02_v, \S24_v, \S00_v + andn \T03h_s, \S14h_s, \T01h_s + lw \T02h_s, 11*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + andn \T03h_s, \S10h_s, \S14h_s + andn \T03l_s, \S10l_s, \S14l_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + andn \T03h_s, \T02h_s, \S10h_s + andn \T03l_s, \T02l_s, \S10l_s + xor \S14h_s, \T03h_s, \S14h_s + xor \S14l_s, \T03l_s, \S14l_s + vand.vv \T03_v, \S00_v, \S01_v + andn \T03h_s, \T00h_s, \T02h_s + andn \T03l_s, \T00l_s, \T02l_s + xor \S10h_s, \T03h_s, \S10h_s + xor \S10l_s, \T03l_s, \S10l_s + andn \T03h_s, \T01h_s, \T00h_s + andn \T03l_s, \T01l_s, \T00l_s + xor \T02h_s, \T03h_s, \T02h_s + vxor.vv \S24_v, \S24_v, \T03_v + xor \T02l_s, \T03l_s, \T02l_s + lw \T01l_s, 20*8(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T00l_s, 24*8(a0) + lw \T00h_s, 24*8+4(a0) + vor.vv \T02_v, \T01_v, \S02_v + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + andn \T03h_s, \T02h_s, \T01h_s + andn \T03l_s, \T02l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 18*8(a0) + vxor.vv \S00_v, \T00_v, \T02_v + sw \T03h_s, 18*8+4(a0) + andn \T03h_s, \S16h_s, \T02h_s + andn \T03l_s, \S16l_s, \T02l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + vnot.v \T03_v, \S02_v + andn \T03h_s, \S17h_s, \S16h_s + andn \T03l_s, \S17l_s, \S16l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + andn \T03h_s, \T00h_s, \S17h_s + vor.vv \T03_v, \T03_v, \S03_v + andn \T03l_s, \T00l_s, \S17l_s + xor \S16h_s, \T03h_s, \S16h_s + xor \S16l_s, \T03l_s, \S16l_s + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + vxor.vv \S01_v, \T01_v, \T03_v + xor \S17h_s, \S17h_s, \T03h_s + lw \T01l_s, 1*8(a0) + xor \S17l_s, \S17l_s, \T03l_s + lw \T01h_s, 1*8+4(a0) + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + andn \T03h_s, \S21h_s, \T01h_s + vand.vv \T02_v, \S03_v, \S04_v + andn \T03l_s, \S21l_s, \T01l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + andn \T03h_s, \T02h_s, \S21h_s + andn \T03l_s, \T02l_s, \S21l_s + xor \T03h_s, \T03h_s, \T01h_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + andn \T03h_s, \S23h_s, \T02h_s + andn \T03l_s, \S23l_s, \T02l_s + xor \S21h_s, \T03h_s, \S21h_s + xor \S21l_s, \T03l_s, \S21l_s + andn \T03h_s, \T00h_s, \S23h_s + vor.vv \T03_v, \S04_v, \T00_v + andn \T03l_s, \T00l_s, \S23l_s + xor \T02h_s, \T03h_s, \T02h_s + xor \T02l_s, \T03l_s, \T02l_s + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 18*4(sp) + vxor.vv \S03_v, \S03_v, \T03_v + lw \T00h_s, 19*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + xor \S23l_s, \S23l_s, \T03l_s + andn \T03h_s, \S02h_s, \T01h_s + andn \T03l_s, \S02l_s, \T01l_s + vand.vv \T02_v, \T00_v, \T01_v + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T04_s, 17*4(sp) + lw \T02l_s, 0(\T04_s) + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 8 + sw \T04_s, 17*4(sp) + vxor.vv \S04_v, \S04_v, \T02_v + xor \T03h_s, \T03h_s, \T02h_s + lw \T04_s, 29*4(sp) + xor \T03l_s, \T03l_s, \T02l_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + andn \T03h_s, \T02h_s, \S02h_s + vle64.v \T00_v, 0(\T04_s) + andn \T03l_s, \T02l_s, \S02l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 1*8(a0) + sw \T03h_s, 1*8+4(a0) + andn \T03h_s, \S04h_s, \T02h_s + andn \T03l_s, \S04l_s, \T02l_s + vxor.vv \S00_v, \S00_v, \T00_v + xor \S02h_s, \T03h_s, \S02h_s + xor \S02l_s, \T03l_s, \S02l_s + andn \T03h_s, \T00h_s, \S04h_s + andn \T03l_s, \T00l_s, \S04l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 3*8(a0) + addi \T04_s, \T04_s, 16 + sw \T03h_s, 3*8+4(a0) + andn \T03h_s, \T01h_s, \T00h_s + sw \T04_s, 29*4(sp) + andn \T03l_s, \T01l_s, \T00l_s + xor \S04h_s, \T03h_s, \S04h_s + xor \S04l_s, \T03l_s, \S04l_s +.endm + +# stack: +# 0*4-14*4 for saving registers +# 15*4 for saving a0 +# 16*4 for loop control +# 17*4 for table index of scalar impl +# 18*4,19*4 for C0 +# 20*4,21*4 for C1 +# 22*4,23*4 for C2 +# 24*4,25*4 for C3 +# 26*4,27*4 for C4 +# 28*4 for temporary usage +# 29*4 for table index of vector impl +# 30*4 for outer loop control variable j +.globl KeccakF1600_StatePermute_RV32V_5x +.align 2 +KeccakF1600_StatePermute_RV32V_5x: + addi sp, sp, -4*31 + SaveRegs + sw a0, 15*4(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sw s11, 30*4(sp) + # prepare table index + la tp, constants_keccak_bitinter + sw tp, 17*4(sp) + bnez s11, init_1th_loop +init_0th_loop: + la tp, constants_keccak + sw tp, 29*4(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + li tp, 8 +inner_loop: + sw tp, 16*4(sp) + ARound \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + lw tp, 16*4(sp) + addi tp, tp, -1 + bnez tp, inner_loop + + lw a0, 15*4(sp) + lw s11, 30*4(sp) + addi gp, s11, -2 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*16 + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,ra, gp, tp + addi s11, s11, 1 + li ra, 3 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 4*31 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv32imv_hybrid_x3.s b/examples/naive/riscv/keccak/fips202_rv32imv_hybrid_x3.s new file mode 100644 index 000000000..d16c7219f --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32imv_hybrid_x3.s @@ -0,0 +1,1241 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008008 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sw s0, 0*4(sp) + sw s1, 1*4(sp) + sw s2, 2*4(sp) + sw s3, 3*4(sp) + sw s4, 4*4(sp) + sw s5, 5*4(sp) + sw s6, 6*4(sp) + sw s7, 7*4(sp) + sw s8, 8*4(sp) + sw s9, 9*4(sp) + sw s10, 10*4(sp) + sw s11, 11*4(sp) + sw gp, 12*4(sp) + sw tp, 13*4(sp) + sw ra, 14*4(sp) +.endm + +.macro RestoreRegs + lw s0, 0*4(sp) + lw s1, 1*4(sp) + lw s2, 2*4(sp) + lw s3, 3*4(sp) + lw s4, 4*4(sp) + lw s5, 5*4(sp) + lw s6, 6*4(sp) + lw s7, 7*4(sp) + lw s8, 8*4(sp) + lw s9, 9*4(sp) + lw s10, 10*4(sp) + lw s11, 11*4(sp) + lw gp, 12*4(sp) + lw tp, 13*4(sp) + lw ra, 14*4(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \S02l_s, 2*8(a0) + lw \S02h_s, 2*8+4(a0) + lw \S04l_s, 4*8(a0) + lw \S04h_s, 4*8+4(a0) + lw \S05l_s, 5*8(a0) + lw \S05h_s, 5*8+4(a0) + lw \S08l_s, 8*8(a0) + lw \S08h_s, 8*8+4(a0) + lw \S10l_s, 10*8(a0) + lw \S10h_s, 10*8+4(a0) + lw \S14l_s, 14*8(a0) + lw \S14h_s, 14*8+4(a0) + lw \S16l_s, 16*8(a0) + lw \S16h_s, 16*8+4(a0) + lw \S17l_s, 17*8(a0) + lw \S17h_s, 17*8+4(a0) + lw \S21l_s, 21*8(a0) + lw \S21h_s, 21*8+4(a0) + # lane complement: 1,2,8,12,17,20 + lw \T00l_s, 1*8(a0) + lw \T00h_s, 1*8+4(a0) + lw \S23l_s, 23*8(a0) + lw \S23h_s, 23*8+4(a0) + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + lw \T01l_s, 12*8(a0) + lw \T01h_s, 12*8+4(a0) + sw \T00l_s, 1*8(a0) + sw \T00h_s, 1*8+4(a0) + not \T01l_s, \T01l_s + not \T01h_s, \T01h_s + lw \T00l_s, 20*8(a0) + lw \T00h_s, 20*8+4(a0) + sw \T01l_s, 12*8(a0) + sw \T01h_s, 12*8+4(a0) + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + not \S02l_s, \S02l_s + not \S02h_s, \S02h_s + sw \T00l_s, 20*8(a0) + sw \T00h_s, 20*8+4(a0) + not \S08l_s, \S08l_s + not \S08h_s, \S08h_s + not \S17l_s, \S17l_s + not \S17h_s, \S17h_s +.endm + +.macro StoreStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + # lane complement: 1,2,8,12,17,20 + lw \T00l_s, 1*8(a0) + lw \T00h_s, 1*8+4(a0) + not \S02l_s, \S02l_s + not \S02h_s, \S02h_s + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + sw \T00l_s, 1*8(a0) + sw \T00h_s, 1*8+4(a0) + lw \T01l_s, 12*8(a0) + lw \T01h_s, 12*8+4(a0) + not \S08l_s, \S08l_s + not \S08h_s, \S08h_s + not \T01l_s, \T01l_s + not \T01h_s, \T01h_s + sw \T01l_s, 12*8(a0) + sw \T01h_s, 12*8+4(a0) + lw \T00l_s, 20*8(a0) + lw \T00h_s, 20*8+4(a0) + not \S17l_s, \S17l_s + not \S17h_s, \S17h_s + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + sw \T00l_s, 20*8(a0) + sw \T00h_s, 20*8+4(a0) + sw \S02l_s, 2*8(a0) + sw \S02h_s, 2*8+4(a0) + sw \S04l_s, 4*8(a0) + sw \S04h_s, 4*8+4(a0) + sw \S05l_s, 5*8(a0) + sw \S05h_s, 5*8+4(a0) + sw \S08l_s, 8*8(a0) + sw \S08h_s, 8*8+4(a0) + sw \S10l_s, 10*8(a0) + sw \S10h_s, 10*8+4(a0) + sw \S14l_s, 14*8(a0) + sw \S14h_s, 14*8+4(a0) + sw \S16l_s, 16*8(a0) + sw \S16h_s, 16*8+4(a0) + sw \S17l_s, 17*8(a0) + sw \S17h_s, 17*8+4(a0) + sw \S21l_s, 21*8(a0) + sw \S21h_s, 21*8+4(a0) + sw \S23l_s, 23*8(a0) + sw \S23h_s, 23*8+4(a0) +.endm + +.macro ARound \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + T05_v, T06_v, \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00l_s, \S05l_s, \S10l_s + xor \T00h_s, \S05h_s, \S10h_s + vxor.vv \T00_v, \S01_v, \S06_v + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \T01_v, \S04_v, \S09_v + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + vxor.vv \T02_v, \S03_v, \S08_v + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \T00_v, \T00_v, \S11_v + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + vxor.vv \T01_v, \T01_v, \S14_v + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + xor \T01l_s, \S08l_s, \S23l_s + vxor.vv \T02_v, \T02_v, \S13_v + xor \T01h_s, \S08h_s, \S23h_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + vxor.vv \T00_v, \T00_v, \S16_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + lw \T03l_s, 18*8(a0) + vxor.vv \T01_v, \T01_v, \S19_v + lw \T03h_s, 18*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T02h_s + vxor.vv \T02_v, \T02_v, \S18_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + srli \T03h_s, \T00l_s, 31 + vxor.vv \T00_v, \T00_v, \S21_v + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \T01_v, \T01_v, \S24_v + xor \T00h_s, \T00h_s, \T03h_s + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + vxor.vv \T02_v, \T02_v, \S23_v + li \T04_s, 64-1 + xor \T00l_s, \T00l_s, \T01l_s + xor \T00h_s, \T00h_s, \T01h_s + lw \T03l_s, 9*8(a0) + vsll.vi \T05_v, \T00_v, 1 + lw \T03h_s, 9*8+4(a0) + xor \T01l_s, \S04l_s, \S14l_s + xor \T01h_s, \S04h_s, \S14h_s + vsll.vi \T06_v, \T02_v, 1 + xor \S04l_s, \S04l_s, \T00l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + vsrl.vx \T03_v, \T00_v, \T04_s + xor \S14h_s, \S14h_s, \T00h_s + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + vsrl.vx \T04_v, \T02_v, \T04_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \T03_v, \T03_v, \T05_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + vxor.vv \T04_v, \T04_v, \T06_v + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + vxor.vv \T03_v, \T03_v, \T01_v + xor \T01h_s, \T01h_s, \T02h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vxor.vv \T04_v, \T04_v, \T00_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + sw \T02l_s, 19*8(a0) + sw \T02h_s, 19*8+4(a0) + vxor.vv \T05_v, \S00_v, \S05_v + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T01l_s, 26*4(sp) + vxor.vv \T06_v, \S02_v, \S07_v + sw \T01h_s, 27*4(sp) + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + vxor.vv \T05_v, \T05_v, \S10_v + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00l_s, \S16l_s, \S21l_s + vxor.vv \T06_v, \T06_v, \S12_v + xor \T00h_s, \S16h_s, \S21h_s + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + vxor.vv \T05_v, \T05_v, \S15_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 11*8(a0) + vxor.vv \T06_v, \T06_v, \S17_v + lw \T03h_s, 11*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + vxor.vv \T05_v, \T05_v, \S20_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + sw \T00l_s, 20*4(sp) + vxor.vv \T06_v, \T06_v, \S22_v + sw \T00h_s, 21*4(sp) + srli \T03h_s, \T00l_s, 31 + slli \T00l_s, \T00l_s, 1 + vxor.vv \S00_v, \S00_v, \T03_v + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \S05_v, \S05_v, \T03_v + xor \T00h_s, \T00h_s, \T03h_s + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + xor \T00l_s, \T00l_s, \T01l_s + vxor.vv \S10_v, \S10_v, \T03_v + xor \T00h_s, \T00h_s, \T01h_s + xor \S05l_s, \S05l_s, \T00l_s + xor \S05h_s, \S05h_s, \T00h_s + vxor.vv \S15_v, \S15_v, \T03_v + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + vxor.vv \S20_v, \S20_v, \T03_v + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + vxor.vv \S02_v, \S02_v, \T04_v + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \S10l_s, \S10l_s, \T00l_s + vxor.vv \S07_v, \S07_v, \T04_v + xor \S10h_s, \S10h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vxor.vv \S12_v, \S12_v, \T04_v + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + vsll.vi \T03_v, \T01_v, 1 + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 24*4(sp) + lw \T02h_s, 25*4(sp) + vsrl.vx \T00_v, \T01_v, \T04_s + lw \T00l_s, 20*4(sp) + lw \T00h_s, 21*4(sp) + sw \T03l_s, 20*8(a0) + vxor.vv \S17_v, \S17_v, \T04_v + sw \T03h_s, 20*8+4(a0) + srli \T03h_s, \T02l_s, 31 + slli \T02l_s, \T02l_s, 1 + vxor.vv \S22_v, \S22_v, \T04_v + srli \T03l_s, \T02h_s, 31 + slli \T02h_s, \T02h_s, 1 + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + vxor.vv \T00_v, \T00_v, \T03_v + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + vxor.vv \T00_v, \T00_v, \T06_v + xor \T02h_s, \T02h_s, \T00h_s + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \S02h_s, \S17h_s + vxor.vv \S03_v, \S03_v, \T00_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + vxor.vv \S08_v, \S08_v, \T00_v + xor \T03h_s, \T03h_s, \T02h_s + xor \S02l_s, \S02l_s, \T02l_s + xor \S02h_s, \S02h_s, \T02h_s + vxor.vv \S13_v, \S13_v, \T00_v + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + vxor.vv \S18_v, \S18_v, \T00_v + lw \T03h_s, 12*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \S23_v, \S23_v, \T00_v + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \S17l_s, \S17l_s, \T02l_s + vsll.vi \T00_v, \T06_v, 1 + xor \S17h_s, \S17h_s, \T02h_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + vsll.vi \T03_v, \T05_v, 1 + lw \T03l_s, 22*8(a0) + lw \T03h_s, 22*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + vsrl.vx \T01_v, \T06_v, \T04_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T00l_s, 22*4(sp) + vsrl.vx \T04_v, \T05_v, \T04_s + sw \T00h_s, 23*4(sp) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + vxor.vv \T01_v, \T01_v, \T00_v + srli \T03h_s, \T01l_s, 31 + slli \T01l_s, \T01l_s, 1 + srli \T03l_s, \T01h_s, 31 + vxor.vv \T04_v, \T04_v, \T03_v + slli \T01h_s, \T01h_s, 1 + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + vxor.vv \T01_v, \T01_v, \T05_v + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \T01l_s, \T01l_s, \T00l_s + vxor.vv \T04_v, \T04_v, \T02_v + xor \T01h_s, \T01h_s, \T00h_s + xor \S08l_s, \S08l_s, \T01l_s + xor \S08h_s, \S08h_s, \T01h_s + vxor.vv \S01_v, \S01_v, \T01_v + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + lw \T02l_s, 13*8(a0) + vxor.vv \S06_v, \S06_v, \T01_v + lw \T02h_s, 13*8+4(a0) + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + vxor.vv \S11_v, \S11_v, \T01_v + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T02l_s, \T02l_s, \T01l_s + vxor.vv \S16_v, \S16_v, \T01_v + xor \T02h_s, \T02h_s, \T01h_s + xor \S23l_s, \S23l_s, \T01l_s + xor \S23h_s, \S23h_s, \T01h_s + vxor.vv \S21_v, \S21_v, \T01_v + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + vxor.vv \S04_v, \S04_v, \T04_v + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + sw \T03l_s, 18*8(a0) + vxor.vv \S09_v, \S09_v, \T04_v + sw \T03h_s, 18*8+4(a0) + srli \T03h_s, \T00l_s, 31 + slli \T00l_s, \T00l_s, 1 + vxor.vv \S14_v, \S14_v, \T04_v + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \S19_v, \S19_v, \T04_v + xor \T00h_s, \T00h_s, \T03h_s + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + vxor.vv \S24_v, \S24_v, \T04_v + xor \T00l_s, \T00l_s, \T01l_s + xor \T00h_s, \T00h_s, \T01h_s + lw \T03l_s, 6*8(a0) + vmv.v.v \T00_v, \S00_v + li \T04_s, 44 + lw \T03h_s, 6*8+4(a0) + xor \S16l_s, \S16l_s, \T00l_s + xor \S16h_s, \S16h_s, \T00h_s + vsrl.vi \T01_v, \S06_v, 20 + xor \S21l_s, \S21l_s, \T00l_s + xor \S21h_s, \S21h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vsll.vx \T02_v, \S06_v, \T04_s + li \T04_s, 62 + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + vsrl.vi \S00_v, \S02_v, 2 + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 11*8(a0) + vsll.vx \T03_v, \S02_v, \T04_s + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + vxor.vv \T01_v, \T01_v, \T02_v + xor \T02h_s, \T02h_s, \T00h_s + mv \T01l_s, \T03l_s + mv \T01h_s, \T03h_s + vxor.vv \S00_v, \S00_v, \T03_v + li \T04_s, 43 + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + slli \T03l_s, \S21l_s, 2 + vsrl.vi \S02_v, \S12_v, 21 + srli \S21l_s, \S21l_s, 30 + srli \T03h_s, \S21h_s, 30 + slli \S21h_s, \S21h_s, 2 + vsll.vx \T02_v, \S12_v, \T04_s + li \T04_s, 39 + xor \T03l_s, \T03l_s, \T03h_s + xor \T03h_s, \S21h_s, \S21l_s + slli \T02h_s, \T01l_s, 12 + vsll.vi \T03_v, \S13_v, 25 + srli \T01l_s, \T01l_s, 20 + slli \T02l_s, \T01h_s, 12 + srli \T01h_s, \T01h_s, 20 + vsrl.vx \S12_v, \S13_v, \T04_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T02h_s + lw \T00l_s, 0*8(a0) + vxor.vv \S02_v, \S02_v, \T02_v + lw \T00h_s, 0*8+4(a0) + slli \S21l_s, \S08h_s, 23 + srli \S08h_s, \S08h_s, 9 + vxor.vv \S12_v, \S12_v, \T03_v + li \T04_s, 56 + srli \S21h_s, \S08l_s, 9 + slli \S08l_s, \S08l_s, 23 + xor \S21l_s, \S21l_s, \S21h_s + vsll.vi \T02_v, \S19_v, 8 + xor \S21h_s, \S08l_s, \S08h_s + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + vsrl.vx \S13_v, \S19_v, \T04_s + li \T04_s, 56 + slli \S08l_s, \S16h_s, 13 + srli \S16h_s, \S16h_s, 19 + srli \S08h_s, \S16l_s, 19 + slli \S16l_s, \S16l_s, 13 + vsrl.vi \S19_v, \S23_v, 8 + xor \S08l_s, \S08l_s, \S08h_s + xor \S08h_s, \S16l_s, \S16h_s + lw \T02l_s, 3*8(a0) + vsll.vx \T03_v, \S23_v, \T04_s + lw \T02h_s, 3*8+4(a0) + slli \S16l_s, \S05h_s, 4 + srli \S05h_s, \S05h_s, 28 + vxor.vv \S13_v, \S13_v, \T02_v + srli \S16h_s, \S05l_s, 28 + slli \S05l_s, \S05l_s, 4 + xor \S16l_s, \S16l_s, \S16h_s + vxor.vv \S19_v, \S19_v, \T03_v + li \T04_s, 41 + xor \S16h_s, \S05l_s, \S05h_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + vsrl.vi \S23_v, \S15_v, 23 + slli \S05l_s, \T02l_s, 28 + srli \T02l_s, \T02l_s, 4 + srli \S05h_s, \T02h_s, 4 + vsll.vx \T02_v, \S15_v, \T04_s + li \T04_s, 63 + slli \T02h_s, \T02h_s, 28 + xor \S05l_s, \S05l_s, \S05h_s + xor \S05h_s, \T02h_s, \T02l_s + vsll.vi \T03_v, \S01_v, 1 + slli \T02l_s, \T03l_s, 21 + srli \T03l_s, \T03l_s, 11 + srli \T02h_s, \T03h_s, 11 + vsrl.vx \S15_v, \S01_v, \T04_s + slli \T03h_s, \T03h_s, 21 + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \T03h_s, \T03l_s + vxor.vv \S23_v, \S23_v, \T02_v + lw \T03l_s, 13*8(a0) + lw \T03h_s, 13*8+4(a0) + sw \T02l_s, 3*8(a0) + vxor.vv \S15_v, \S15_v, \T03_v + li \T04_s, 55 + sw \T02h_s, 3*8+4(a0) + srli \T02h_s, \T03l_s, 7 + slli \T03l_s, \T03l_s, 25 + srli \T02l_s, \T03h_s, 7 + vsrl.vi \S01_v, \S08_v, 9 + slli \T03h_s, \T03h_s, 25 + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vsll.vx \T02_v, \S08_v, \T04_s + li \T04_s, 45 + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + slli \T02l_s, \S10l_s, 3 + vsrl.vi \S08_v, \S16_v, 19 + srli \S10l_s, \S10l_s, 29 + srli \T02h_s, \S10h_s, 29 + slli \S10h_s, \S10h_s, 3 + vsll.vx \T03_v, \S16_v, \T04_s + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S10h_s, \S10l_s + lw \T03l_s, 1*8(a0) + vxor.vv \S01_v, \S01_v, \T02_v + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + vxor.vv \S08_v, \S08_v, \T03_v + li \T04_s, 58 + slli \S10l_s, \T03l_s, 1 + srli \T03l_s, \T03l_s, 31 + srli \S10h_s, \T03h_s, 31 + vsll.vi \T02_v, \S07_v, 6 + slli \T03h_s, \T03h_s, 1 + xor \S10l_s, \S10l_s, \S10h_s + xor \S10h_s, \T03h_s, \T03l_s + vsrl.vx \S16_v, \S07_v, \T04_s + li \T04_s, 61 + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + slli \T02l_s, \S02h_s, 30 + vsll.vi \T03_v, \S10_v, 3 + srli \S02h_s, \S02h_s, 2 + srli \T02h_s, \S02l_s, 2 + slli \S02l_s, \S02l_s, 30 + vsrl.vx \S07_v, \S10_v, \T04_s + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S02l_s, \S02h_s + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + vxor.vv \S16_v, \S16_v, \T02_v + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + slli \S02l_s, \T03h_s, 11 + vxor.vv \S07_v, \S07_v, \T03_v + li \T04_s, 36 + srli \T03h_s, \T03h_s, 21 + srli \S02h_s, \T03l_s, 21 + slli \T03l_s, \T03l_s, 11 + vsll.vi \T02_v, \S03_v, 28 + xor \S02l_s, \S02l_s, \S02h_s + xor \S02h_s, \T03l_s, \T03h_s + slli \T03l_s, \T02l_s, 20 + vsrl.vx \S10_v, \S03_v, \T04_s + li \T04_s, 43 + srli \T02l_s, \T02l_s, 12 + srli \T03h_s, \T02h_s, 12 + slli \T02h_s, \T02h_s, 20 + vsll.vi \T03_v, \S18_v, 21 + xor \T03l_s, \T03l_s, \T03h_s + xor \T03h_s, \T02h_s, \T02l_s + lw \T02l_s, 22*8(a0) + vsrl.vx \S03_v, \S18_v, \T04_s + lw \T02h_s, 22*8+4(a0) + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + vxor.vv \S10_v, \S10_v, \T02_v + slli \T03h_s, \T02l_s, 29 + srli \T02l_s, \T02l_s, 3 + slli \T03l_s, \T02h_s, 29 + vxor.vv \S03_v, \S03_v, \T03_v + li \T04_s, 49 + srli \T02h_s, \T02h_s, 3 + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + vsll.vi \T02_v, \S17_v, 15 + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + slli \T03l_s, \S14h_s, 7 + vsrl.vx \S18_v, \S17_v, \T04_s + li \T04_s, 54 + srli \S14h_s, \S14h_s, 25 + srli \T03h_s, \S14l_s, 25 + slli \S14l_s, \S14l_s, 7 + xor \T03l_s, \T03l_s, \T03h_s + vsll.vi \T03_v, \S11_v, 10 + xor \T03h_s, \S14l_s, \S14h_s + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + vsrl.vx \S17_v, \S11_v, \T04_s + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + slli \S14l_s, \T02l_s, 18 + vxor.vv \S18_v, \S18_v, \T02_v + srli \T02l_s, \T02l_s, 14 + srli \S14h_s, \T02h_s, 14 + slli \T02h_s, \T02h_s, 18 + vxor.vv \S17_v, \S17_v, \T03_v + li \T04_s, 44 + xor \S14l_s, \S14l_s, \S14h_s + xor \S14h_s, \T02h_s, \T02l_s + lw \T03l_s, 15*8(a0) + vsll.vi \T02_v, \S09_v, 20 + lw \T03h_s, 15*8+4(a0) + slli \T02l_s, \S23h_s, 24 + srli \S23h_s, \S23h_s, 8 + vsrl.vx \S11_v, \S09_v, \T04_s + li \T04_s, 61 + srli \T02h_s, \S23l_s, 8 + slli \S23l_s, \S23l_s, 24 + xor \T02l_s, \T02l_s, \T02h_s + vsrl.vi \S09_v, \S22_v, 3 + xor \T02h_s, \S23l_s, \S23h_s + slli \S23l_s, \T03h_s, 9 + srli \T03h_s, \T03h_s, 23 + vsll.vx \T03_v, \S22_v, \T04_s + srli \S23h_s, \T03l_s, 23 + slli \T03l_s, \T03l_s, 9 + xor \S23l_s, \S23l_s, \S23h_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \S23h_s, \T03l_s, \T03h_s + sw \T02l_s, 20*8(a0) + sw \T02h_s, 20*8+4(a0) + vxor.vv \S09_v, \S09_v, \T03_v + li \T04_s, 39 + slli \T02l_s, \S04l_s, 27 + srli \S04l_s, \S04l_s, 5 + srli \T02h_s, \S04h_s, 5 + slli \S04h_s, \S04h_s, 27 + vsrl.vi \S22_v, \S14_v, 25 + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S04h_s, \S04l_s + lw \T03l_s, 24*8(a0) + vsll.vx \T02_v, \S14_v, \T04_s + li \T04_s, 46 + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + vsll.vi \T03_v, \S20_v, 18 + slli \S04l_s, \T03l_s, 14 + srli \T03l_s, \T03l_s, 18 + srli \S04h_s, \T03h_s, 18 + vsrl.vx \S14_v, \S20_v, \T04_s + slli \T03h_s, \T03h_s, 14 + xor \S04l_s, \S04l_s, \S04h_s + xor \S04h_s, \T03h_s, \T03l_s + vxor.vv \S22_v, \S22_v, \T02_v + slli \T02l_s, \S17l_s, 15 + srli \S17l_s, \S17l_s, 17 + srli \T02h_s, \S17h_s, 17 + vxor.vv \S14_v, \S14_v, \T03_v + li \T04_s, 37 + slli \S17h_s, \S17h_s, 15 + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S17h_s, \S17l_s + vsll.vi \T02_v, \S04_v, 27 + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + vsrl.vx \S20_v, \S04_v, \T04_s + li \T04_s, 50 + sw \T02h_s, 24*8+4(a0) + lw \T02h_s, 7*8(a0) + lw \T02l_s, 7*8+4(a0) + vsll.vi \T03_v, \S24_v, 14 + slli \S17l_s, \T03l_s, 10 + srli \T03l_s, \T03l_s, 22 + srli \S17h_s, \T03h_s, 22 + vsrl.vx \S04_v, \S24_v, \T04_s + slli \T03h_s, \T03h_s, 10 + xor \S17l_s, \S17l_s, \S17h_s + xor \S17h_s, \T03h_s, \T03l_s + srli \T03h_s, \T02h_s, 26 + vxor.vv \S20_v, \S20_v, \T02_v + slli \T02h_s, \T02h_s, 6 + srli \T03l_s, \T02l_s, 26 + slli \T02l_s, \T02l_s, 6 + vxor.vv \S04_v, \S04_v, \T03_v + li \T04_s, 62 + xor \T02h_s, \T02h_s, \T03l_s + xor \T02l_s, \T02l_s, \T03h_s + lw \T03l_s, 19*8(a0) + vsll.vi \T02_v, \S21_v, 2 + lw \T03h_s, 19*8+4(a0) + sw \T02h_s, 11*8(a0) + sw \T02l_s, 11*8+4(a0) + vsrl.vx \S24_v, \S21_v, \T04_s + li \T04_s, 36 + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + srli \T02h_s, \T03l_s, 24 + vsrl.vi \S21_v, \S05_v, 28 + slli \T03l_s, \T03l_s, 8 + srli \T02l_s, \T03h_s, 24 + slli \T03h_s, \T03h_s, 8 + vsll.vx \T03_v, \S05_v, \T04_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + lw \T00l_s, 12*8(a0) + vxor.vv \S24_v, \S24_v, \T02_v + lw \T00h_s, 12*8+4(a0) + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + vxor.vv \S21_v, \S21_v, \T03_v + lw \T01l_s, 13*8(a0) + lw \T01h_s, 13*8+4(a0) + sw \T03l_s, 19*8(a0) + vor.vv \T02_v, \S11_v, \S07_v + sw \T03h_s, 19*8+4(a0) + and \T03l_s, \T01l_s, \S08l_s + and \T03h_s, \T01h_s, \S08h_s + vand.vv \T03_v, \S07_v, \S08_v + xor \T03l_s, \T00l_s, \T03l_s + xor \T03h_s, \T00h_s, \T03h_s + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + vnot.v \T04_v, \S09_v + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + not \T03l_s, \T02l_s + vor.vv \T05_v, \S09_v, \S10_v + not \T03h_s, \T02h_s + or \T03l_s, \T03l_s, \S08l_s + or \T03h_s, \T03h_s, \S08h_s + vxor.vv \S05_v, \S10_v, \T02_v + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + sw \T03l_s, 7*8(a0) + vor.vv \T04_v, \T04_v, \S08_v + sw \T03h_s, 7*8+4(a0) + or \T03l_s, \T02l_s, \S05l_s + or \T03h_s, \T02h_s, \S05h_s + vxor.vv \S06_v, \S11_v, \T03_v + xor \S08l_s, \S08l_s, \T03l_s + xor \S08h_s, \S08h_s, \T03h_s + and \T03l_s, \S05l_s, \T00l_s + vxor.vv \S07_v, \S07_v, \T04_v + and \T03h_s, \S05h_s, \T00h_s + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + vxor.vv \S08_v, \S08_v, \T05_v + or \T03l_s, \T00l_s, \T01l_s + or \T03h_s, \T00h_s, \T01h_s + lw \T01l_s, 19*8(a0) + vand.vv \T02_v, \S10_v, \S11_v + lw \T01h_s, 19*8+4(a0) + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + vor.vv \T03_v, \S16_v, \S12_v + lw \T00l_s, 18*8(a0) + lw \T00h_s, 18*8+4(a0) + xor \S05h_s, \S05h_s, \T03h_s + vnot.v \T05_v, \S13_v + xor \S05l_s, \S05l_s, \T03l_s + not \T03l_s, \T01l_s + not \T03h_s, \T01h_s + and \T03l_s, \T03l_s, \S14l_s + vand.vv \T04_v, \S12_v, \S13_v + and \T03h_s, \T03h_s, \S14h_s + xor \T03l_s, \T00l_s, \T03l_s + xor \T03h_s, \T00h_s, \T03h_s + vxor.vv \S09_v, \S09_v, \T02_v + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 12*8(a0) + vand.vv \T05_v, \T05_v, \S14_v + sw \T03h_s, 12*8+4(a0) + not \T04_s, \T01h_s + or \T03h_s, \S14h_s, \S10h_s + vxor.vv \S10_v, \S15_v, \T03_v + or \T03l_s, \S14l_s, \S10l_s + xor \T03h_s, \T03h_s, \T04_s + not \T04_s, \T01l_s + vxor.vv \S11_v, \S16_v, \T04_v + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + vxor.vv \S12_v, \S12_v, \T05_v + and \T03l_s, \S10l_s, \T02l_s + and \T03h_s, \S10h_s, \T02h_s + xor \S14l_s, \S14l_s, \T03l_s + vnot.v \T03_v, \S13_v + xor \S14h_s, \S14h_s, \T03h_s + or \T03l_s, \T02l_s, \T00l_s + or \T03h_s, \T02h_s, \T00h_s + vand.vv \T04_v, \S15_v, \S16_v + xor \S10l_s, \S10l_s, \T03l_s + xor \S10h_s, \S10h_s, \T03h_s + and \T03l_s, \T00l_s, \T01l_s + vand.vv \T05_v, \S21_v, \S17_v + and \T03h_s, \T00h_s, \T01h_s + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + vor.vv \T02_v, \S14_v, \S15_v + lw \T00h_s, 24*8+4(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02h_s, 11*8+4(a0) + sw \T02l_s, 11*8(a0) + vxor.vv \S14_v, \S14_v, \T04_v + lw \T02h_s, 15*8+4(a0) + lw \T01l_s, 20*8(a0) + lw \T02l_s, 15*8(a0) + vxor.vv \S15_v, \S20_v, \T05_v + lw \T00l_s, 24*8(a0) + not \T04_s, \T00h_s + and \T03h_s, \T01h_s, \T02h_s + vxor.vv \S13_v, \T03_v, \T02_v + and \T03l_s, \T01l_s, \T02l_s + xor \T03h_s, \T03h_s, \T04_s + not \T04_s, \T00l_s + vnot.v \T03_v, \S18_v + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + vnot.v \T05_v, \S18_v + or \T03l_s, \T02l_s, \S16l_s + or \T03h_s, \T02h_s, \S16h_s + xor \T03l_s, \T01l_s, \T03l_s + vor.vv \T02_v, \S17_v, \S18_v + xor \T03h_s, \T01h_s, \T03h_s + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + vor.vv \T03_v, \T03_v, \S19_v + and \T03l_s, \S16l_s, \S17l_s + and \T03h_s, \S16h_s, \S17h_s + xor \T02l_s, \T02l_s, \T03l_s + vand.vv \T04_v, \S19_v, \S20_v + xor \T02h_s, \T02h_s, \T03h_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + vxor.vv \S16_v, \S21_v, \T02_v + or \T03l_s, \S17l_s, \T00l_s + or \T03h_s, \S17h_s, \T00h_s + xor \S16l_s, \S16l_s, \T03l_s + vxor.vv \S17_v, \S17_v, \T03_v + xor \S16h_s, \S16h_s, \T03h_s + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + not \T03l_s, \T00l_s + vxor.vv \S18_v, \T05_v, \T04_v + not \T03h_s, \T00h_s + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + vnot.v \T03_v, \S01_v + or \T03l_s, \T03l_s, \T01l_s + or \T03h_s, \T03h_s, \T01h_s + lw \T01l_s, 1*8(a0) + vnot.v \T05_v, \S01_v + lw \T01h_s, 1*8+4(a0) + xor \S17l_s, \S17l_s, \T03l_s + xor \S17h_s, \S17h_s, \T03h_s + vor.vv \T02_v, \S20_v, \S21_v + and \T03l_s, \T01l_s, \S21l_s + and \T03h_s, \T01h_s, \S21h_s + xor \T03l_s, \T00l_s, \T03l_s + vand.vv \T03_v, \T03_v, \S22_v + xor \T03h_s, \T00h_s, \T03h_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + vor.vv \T04_v, \S22_v, \S23_v + not \T03l_s, \S21l_s + not \T03h_s, \S21h_s + and \T03l_s, \T03l_s, \T02l_s + vxor.vv \S19_v, \S19_v, \T02_v + and \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + vxor.vv \S20_v, \S00_v, \T03_v + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + not \T04_s, \S21h_s + vxor.vv \S21_v, \T05_v, \T04_v + or \T03h_s, \T02h_s, \S23h_s + or \T03l_s, \T02l_s, \S23l_s + xor \S21h_s, \T03h_s, \T04_s + vand.vv \T02_v, \S23_v, \S24_v + not \T04_s, \S21l_s + xor \S21l_s, \T03l_s, \T04_s + and \T03l_s, \S23l_s, \T00l_s + and \T03h_s, \S23h_s, \T00h_s + vor.vv \T03_v, \S24_v, \S00_v + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + lw \T04_s, 17*4(sp) + vand.vv \T04_v, \S00_v, \S01_v + or \T03l_s, \T00l_s, \T01l_s + or \T03h_s, \T00h_s, \T01h_s + lw \T00l_s, 18*4(sp) + vor.vv \T05_v, \T01_v, \S02_v + lw \T00h_s, 19*4(sp) + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + vxor.vv \S22_v, \S22_v, \T02_v + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + vxor.vv \S23_v, \S23_v, \T03_v + xor \S23l_s, \S23l_s, \T03l_s + lw \T02l_s, 0(\T04_s) + lw \T02h_s, 4(\T04_s) + vxor.vv \S24_v, \S24_v, \T04_v + or \T03l_s, \T01l_s, \S02l_s + or \T03h_s, \T01h_s, \S02h_s + vxor.vv \S00_v, \T00_v, \T05_v + xor \T03l_s, \T00l_s, \T03l_s + xor \T03h_s, \T00h_s, \T03h_s + vnot.v \T02_v, \S02_v + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + lw \T02l_s, 3*8(a0) + vor.vv \T04_v, \S04_v, \T00_v + lw \T02h_s, 3*8+4(a0) + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + vand.vv \T03_v, \S03_v, \S04_v + not \T03l_s, \S02l_s + not \T03h_s, \S02h_s + or \T03l_s, \T03l_s, \T02l_s + or \T03h_s, \T03h_s, \T02h_s + vand.vv \T05_v, \T00_v, \T01_v + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + sw \T03l_s, 1*8(a0) + vor.vv \T02_v, \T02_v, \S03_v + sw \T03h_s, 1*8+4(a0) + and \T03l_s, \T02l_s, \S04l_s + and \T03h_s, \T02h_s, \S04h_s + vxor.vv \S02_v, \S02_v, \T03_v + vle64.v \T00_v, (\T04_s) + xor \S02l_s, \S02l_s, \T03l_s + xor \S02h_s, \S02h_s, \T03h_s + or \T03l_s, \S04l_s, \T00l_s + vxor.vv \S03_v, \S03_v, \T04_v + or \T03h_s, \S04h_s, \T00h_s + xor \T03l_s, \T02l_s, \T03l_s + xor \T03h_s, \T02h_s, \T03h_s + vxor.vv \S01_v, \T01_v, \T02_v + addi \T04_s, \T04_s, 16 + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + and \T03l_s, \T00l_s, \T01l_s + vxor.vv \S04_v, \S04_v, \T05_v + sw \T04_s, 17*4(sp) + and \T03h_s, \T00h_s, \T01h_s + xor \S04l_s, \S04l_s, \T03l_s + xor \S04h_s, \S04h_s, \T03h_s + vxor.vv \S00_v, \S00_v, \T00_v +.endm + +# stack: +# 0*4-14*4 for saving registers +# 15*4 for saving a0 +# 16*4 for loop control +# 17*4 for table index +# 18*4,19*4 for C0 +# 20*4,21*4 for C1 +# 22*4,23*4 for C2 +# 24*4,25*4 for C3 +# 26*4,27*4 for C4 +.globl KeccakF1600_StatePermute_RV32V_3x +.align 2 +KeccakF1600_StatePermute_RV32V_3x: + addi sp, sp, -4*28 + SaveRegs + + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + la tp, constants_keccak + sw tp, 17*4(sp) + + LoadStates_v + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + + li tp, 24 + +loop_start: + sw tp, 16*4(sp) + ARound \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + v30, v31, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + + lw tp, 16*4(sp) + addi tp, tp, -1 + bnez tp, loop_start + + addi a0, a0, -25*16 + StoreStates_v + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + + RestoreRegs + addi sp, sp, 4*28 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv32imv_hybrid_x4.s b/examples/naive/riscv/keccak/fips202_rv32imv_hybrid_x4.s new file mode 100644 index 000000000..d9b232b94 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32imv_hybrid_x4.s @@ -0,0 +1,1877 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008008 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sw s0, 0*4(sp) + sw s1, 1*4(sp) + sw s2, 2*4(sp) + sw s3, 3*4(sp) + sw s4, 4*4(sp) + sw s5, 5*4(sp) + sw s6, 6*4(sp) + sw s7, 7*4(sp) + sw s8, 8*4(sp) + sw s9, 9*4(sp) + sw s10, 10*4(sp) + sw s11, 11*4(sp) + sw gp, 12*4(sp) + sw tp, 13*4(sp) + sw ra, 14*4(sp) +.endm + +.macro RestoreRegs + lw s0, 0*4(sp) + lw s1, 1*4(sp) + lw s2, 2*4(sp) + lw s3, 3*4(sp) + lw s4, 4*4(sp) + lw s5, 5*4(sp) + lw s6, 6*4(sp) + lw s7, 7*4(sp) + lw s8, 8*4(sp) + lw s9, 9*4(sp) + lw s10, 10*4(sp) + lw s11, 11*4(sp) + lw gp, 12*4(sp) + lw tp, 13*4(sp) + lw ra, 14*4(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \S02l_s, 2*8(a0) + lw \S02h_s, 2*8+4(a0) + lw \S04l_s, 4*8(a0) + lw \S04h_s, 4*8+4(a0) + lw \S05l_s, 5*8(a0) + lw \S05h_s, 5*8+4(a0) + lw \S08l_s, 8*8(a0) + lw \S08h_s, 8*8+4(a0) + lw \S10l_s, 10*8(a0) + lw \S10h_s, 10*8+4(a0) + lw \S14l_s, 14*8(a0) + lw \S14h_s, 14*8+4(a0) + lw \S16l_s, 16*8(a0) + lw \S16h_s, 16*8+4(a0) + lw \S17l_s, 17*8(a0) + lw \S17h_s, 17*8+4(a0) + lw \S21l_s, 21*8(a0) + lw \S21h_s, 21*8+4(a0) + # lane complement: 1,2,8,12,17,20 + lw \T00l_s, 1*8(a0) + lw \T00h_s, 1*8+4(a0) + lw \S23l_s, 23*8(a0) + lw \S23h_s, 23*8+4(a0) + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + lw \T01l_s, 12*8(a0) + lw \T01h_s, 12*8+4(a0) + sw \T00l_s, 1*8(a0) + sw \T00h_s, 1*8+4(a0) + not \T01l_s, \T01l_s + not \T01h_s, \T01h_s + lw \T00l_s, 20*8(a0) + lw \T00h_s, 20*8+4(a0) + sw \T01l_s, 12*8(a0) + sw \T01h_s, 12*8+4(a0) + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + not \S02l_s, \S02l_s + not \S02h_s, \S02h_s + sw \T00l_s, 20*8(a0) + sw \T00h_s, 20*8+4(a0) + not \S08l_s, \S08l_s + not \S08h_s, \S08h_s + not \S17l_s, \S17l_s + not \S17h_s, \S17h_s +.endm + +.macro StoreStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s + # lane complement: 1,2,8,12,17,20 + lw \T00l_s, 1*8(a0) + lw \T00h_s, 1*8+4(a0) + not \S02l_s, \S02l_s + not \S02h_s, \S02h_s + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + sw \T00l_s, 1*8(a0) + sw \T00h_s, 1*8+4(a0) + lw \T01l_s, 12*8(a0) + lw \T01h_s, 12*8+4(a0) + not \S08l_s, \S08l_s + not \S08h_s, \S08h_s + not \T01l_s, \T01l_s + not \T01h_s, \T01h_s + sw \T01l_s, 12*8(a0) + sw \T01h_s, 12*8+4(a0) + lw \T00l_s, 20*8(a0) + lw \T00h_s, 20*8+4(a0) + not \S17l_s, \S17l_s + not \S17h_s, \S17h_s + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + sw \T00l_s, 20*8(a0) + sw \T00h_s, 20*8+4(a0) + sw \S02l_s, 2*8(a0) + sw \S02h_s, 2*8+4(a0) + sw \S04l_s, 4*8(a0) + sw \S04h_s, 4*8+4(a0) + sw \S05l_s, 5*8(a0) + sw \S05h_s, 5*8+4(a0) + sw \S08l_s, 8*8(a0) + sw \S08h_s, 8*8+4(a0) + sw \S10l_s, 10*8(a0) + sw \S10h_s, 10*8+4(a0) + sw \S14l_s, 14*8(a0) + sw \S14h_s, 14*8+4(a0) + sw \S16l_s, 16*8(a0) + sw \S16h_s, 16*8+4(a0) + sw \S17l_s, 17*8(a0) + sw \S17h_s, 17*8+4(a0) + sw \S21l_s, 21*8(a0) + sw \S21h_s, 21*8+4(a0) + sw \S23l_s, 23*8(a0) + sw \S23h_s, 23*8+4(a0) +.endm + +.macro ARound \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + T05_v, T06_v, \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00l_s, \S05l_s, \S10l_s + xor \T00h_s, \S05h_s, \S10h_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \T00_v, \S01_v, \S06_v + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \T01_v, \S04_v, \S09_v + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + xor \T01l_s, \S08l_s, \S23l_s + xor \T01h_s, \S08h_s, \S23h_s + vxor.vv \T02_v, \S03_v, \S08_v + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + vxor.vv \T00_v, \T00_v, \S11_v + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + srli \T03h_s, \T00l_s, 31 + slli \T00l_s, \T00l_s, 1 + vxor.vv \T01_v, \T01_v, \S14_v + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + vxor.vv \T02_v, \T02_v, \S13_v + xor \T00l_s, \T00l_s, \T01l_s + xor \T00h_s, \T00h_s, \T01h_s + lw \T03l_s, 9*8(a0) + lw \T03h_s, 9*8+4(a0) + xor \T01l_s, \S04l_s, \S14l_s + xor \T01h_s, \S04h_s, \S14h_s + vxor.vv \T00_v, \T00_v, \S16_v + xor \S04l_s, \S04l_s, \T00l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + xor \S14h_s, \S14h_s, \T00h_s + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + vxor.vv \T01_v, \T01_v, \S19_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + vxor.vv \T02_v, \T02_v, \S18_v + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T02h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vxor.vv \T00_v, \T00_v, \S21_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + sw \T02l_s, 19*8(a0) + sw \T02h_s, 19*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T01l_s, 26*4(sp) + sw \T01h_s, 27*4(sp) + vxor.vv \T01_v, \T01_v, \S24_v + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00l_s, \S16l_s, \S21l_s + xor \T00h_s, \S16h_s, \S21h_s + vxor.vv \T02_v, \T02_v, \S23_v + li \T04_s, 64-1 + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + vsll.vi \T05_v, \T00_v, 1 + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + vsll.vi \T06_v, \T02_v, 1 + srli \T03h_s, \T00l_s, 31 + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vsrl.vx \T03_v, \T00_v, \T04_s + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + xor \T00l_s, \T00l_s, \T01l_s + xor \T00h_s, \T00h_s, \T01h_s + xor \S05l_s, \S05l_s, \T00l_s + xor \S05h_s, \S05h_s, \T00h_s + vsrl.vx \T04_v, \T02_v, \T04_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + vxor.vv \T03_v, \T03_v, \T05_v + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \S10l_s, \S10l_s, \T00l_s + xor \S10h_s, \S10h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vxor.vv \T04_v, \T04_v, \T06_v + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 24*4(sp) + lw \T02h_s, 25*4(sp) + vxor.vv \T03_v, \T03_v, \T01_v + lw \T00l_s, 20*4(sp) + lw \T00h_s, 21*4(sp) + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + srli \T03h_s, \T02l_s, 31 + slli \T02l_s, \T02l_s, 1 + vxor.vv \T04_v, \T04_v, \T00_v + srli \T03l_s, \T02h_s, 31 + slli \T02h_s, \T02h_s, 1 + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vxor.vv \T05_v, \S00_v, \S05_v + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vxor.vv \T06_v, \S02_v, \S07_v + xor \S02l_s, \S02l_s, \T02l_s + xor \S02h_s, \S02h_s, \T02h_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + vxor.vv \T05_v, \T05_v, \S10_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \S17l_s, \S17l_s, \T02l_s + xor \S17h_s, \S17h_s, \T02h_s + vxor.vv \T06_v, \T06_v, \S12_v + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + lw \T03h_s, 22*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \T05_v, \T05_v, \S15_v + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T00l_s, 22*4(sp) + sw \T00h_s, 23*4(sp) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + vxor.vv \T06_v, \T06_v, \S17_v + srli \T03h_s, \T01l_s, 31 + slli \T01l_s, \T01l_s, 1 + srli \T03l_s, \T01h_s, 31 + slli \T01h_s, \T01h_s, 1 + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + vxor.vv \T05_v, \T05_v, \S20_v + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \T01l_s, \T01l_s, \T00l_s + xor \T01h_s, \T01h_s, \T00h_s + xor \S08l_s, \S08l_s, \T01l_s + xor \S08h_s, \S08h_s, \T01h_s + vxor.vv \T06_v, \T06_v, \S22_v + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + vxor.vv \S00_v, \S00_v, \T03_v + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T02l_s, \T02l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + xor \S23l_s, \S23l_s, \T01l_s + xor \S23h_s, \S23h_s, \T01h_s + vxor.vv \S05_v, \S05_v, \T03_v + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + vxor.vv \S10_v, \S10_v, \T03_v + srli \T03h_s, \T00l_s, 31 + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \S15_v, \S15_v, \T03_v + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + xor \T00l_s, \T00l_s, \T01l_s + xor \T00h_s, \T00h_s, \T01h_s + lw \T03l_s, 6*8(a0) + lw \T03h_s, 6*8+4(a0) + vxor.vv \S20_v, \S20_v, \T03_v + xor \S16l_s, \S16l_s, \T00l_s + xor \S16h_s, \S16h_s, \T00h_s + xor \S21l_s, \S21l_s, \T00l_s + xor \S21h_s, \S21h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vxor.vv \S02_v, \S02_v, \T04_v + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + vxor.vv \S07_v, \S07_v, \T04_v + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + mv \T01l_s, \T03l_s + mv \T01h_s, \T03h_s + vxor.vv \S12_v, \S12_v, \T04_v + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + slli \T03l_s, \S21l_s, 2 + srli \S21l_s, \S21l_s, 30 + srli \T03h_s, \S21h_s, 30 + slli \S21h_s, \S21h_s, 2 + vsll.vi \T03_v, \T01_v, 1 + xor \T03l_s, \T03l_s, \T03h_s + xor \T03h_s, \S21h_s, \S21l_s + slli \T02h_s, \T01l_s, 12 + srli \T01l_s, \T01l_s, 20 + slli \T02l_s, \T01h_s, 12 + srli \T01h_s, \T01h_s, 20 + vsrl.vx \T00_v, \T01_v, \T04_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T02h_s + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + slli \S21l_s, \S08h_s, 23 + srli \S08h_s, \S08h_s, 9 + vxor.vv \S17_v, \S17_v, \T04_v + srli \S21h_s, \S08l_s, 9 + slli \S08l_s, \S08l_s, 23 + xor \S21l_s, \S21l_s, \S21h_s + xor \S21h_s, \S08l_s, \S08h_s + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + vxor.vv \S22_v, \S22_v, \T04_v + slli \S08l_s, \S16h_s, 13 + srli \S16h_s, \S16h_s, 19 + srli \S08h_s, \S16l_s, 19 + slli \S16l_s, \S16l_s, 13 + xor \S08l_s, \S08l_s, \S08h_s + xor \S08h_s, \S16l_s, \S16h_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + vxor.vv \T00_v, \T00_v, \T03_v + slli \S16l_s, \S05h_s, 4 + srli \S05h_s, \S05h_s, 28 + srli \S16h_s, \S05l_s, 28 + slli \S05l_s, \S05l_s, 4 + xor \S16l_s, \S16l_s, \S16h_s + xor \S16h_s, \S05l_s, \S05h_s + vxor.vv \T00_v, \T00_v, \T06_v + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + slli \S05l_s, \T02l_s, 28 + srli \T02l_s, \T02l_s, 4 + srli \S05h_s, \T02h_s, 4 + slli \T02h_s, \T02h_s, 28 + vxor.vv \S03_v, \S03_v, \T00_v + xor \S05l_s, \S05l_s, \S05h_s + xor \S05h_s, \T02h_s, \T02l_s + slli \T02l_s, \T03l_s, 21 + srli \T03l_s, \T03l_s, 11 + srli \T02h_s, \T03h_s, 11 + slli \T03h_s, \T03h_s, 21 + vxor.vv \S08_v, \S08_v, \T00_v + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \T03h_s, \T03l_s + lw \T03l_s, 13*8(a0) + lw \T03h_s, 13*8+4(a0) + sw \T02l_s, 3*8(a0) + sw \T02h_s, 3*8+4(a0) + vxor.vv \S13_v, \S13_v, \T00_v + srli \T02h_s, \T03l_s, 7 + slli \T03l_s, \T03l_s, 25 + srli \T02l_s, \T03h_s, 7 + slli \T03h_s, \T03h_s, 25 + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vxor.vv \S18_v, \S18_v, \T00_v + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + slli \T02l_s, \S10l_s, 3 + srli \S10l_s, \S10l_s, 29 + srli \T02h_s, \S10h_s, 29 + slli \S10h_s, \S10h_s, 3 + vxor.vv \S23_v, \S23_v, \T00_v + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S10h_s, \S10l_s + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + vsll.vi \T00_v, \T06_v, 1 + slli \S10l_s, \T03l_s, 1 + srli \T03l_s, \T03l_s, 31 + srli \S10h_s, \T03h_s, 31 + slli \T03h_s, \T03h_s, 1 + xor \S10l_s, \S10l_s, \S10h_s + xor \S10h_s, \T03h_s, \T03l_s + vsll.vi \T03_v, \T05_v, 1 + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + slli \T02l_s, \S02h_s, 30 + srli \S02h_s, \S02h_s, 2 + srli \T02h_s, \S02l_s, 2 + slli \S02l_s, \S02l_s, 30 + vsrl.vx \T01_v, \T06_v, \T04_s + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S02l_s, \S02h_s + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + slli \S02l_s, \T03h_s, 11 + srli \T03h_s, \T03h_s, 21 + vsrl.vx \T04_v, \T05_v, \T04_s + srli \S02h_s, \T03l_s, 21 + slli \T03l_s, \T03l_s, 11 + xor \S02l_s, \S02l_s, \S02h_s + xor \S02h_s, \T03l_s, \T03h_s + slli \T03l_s, \T02l_s, 20 + srli \T02l_s, \T02l_s, 12 + vxor.vv \T01_v, \T01_v, \T00_v + srli \T03h_s, \T02h_s, 12 + slli \T02h_s, \T02h_s, 20 + xor \T03l_s, \T03l_s, \T03h_s + xor \T03h_s, \T02h_s, \T02l_s + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + vxor.vv \T04_v, \T04_v, \T03_v + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + slli \T03h_s, \T02l_s, 29 + srli \T02l_s, \T02l_s, 3 + slli \T03l_s, \T02h_s, 29 + srli \T02h_s, \T02h_s, 3 + vxor.vv \T01_v, \T01_v, \T05_v + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + slli \T03l_s, \S14h_s, 7 + srli \S14h_s, \S14h_s, 25 + vxor.vv \T04_v, \T04_v, \T02_v + srli \T03h_s, \S14l_s, 25 + slli \S14l_s, \S14l_s, 7 + xor \T03l_s, \T03l_s, \T03h_s + xor \T03h_s, \S14l_s, \S14h_s + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + vxor.vv \S01_v, \S01_v, \T01_v + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + slli \S14l_s, \T02l_s, 18 + srli \T02l_s, \T02l_s, 14 + srli \S14h_s, \T02h_s, 14 + slli \T02h_s, \T02h_s, 18 + vxor.vv \S06_v, \S06_v, \T01_v + xor \S14l_s, \S14l_s, \S14h_s + xor \S14h_s, \T02h_s, \T02l_s + lw \T03l_s, 15*8(a0) + lw \T03h_s, 15*8+4(a0) + slli \T02l_s, \S23h_s, 24 + srli \S23h_s, \S23h_s, 8 + vxor.vv \S11_v, \S11_v, \T01_v + srli \T02h_s, \S23l_s, 8 + slli \S23l_s, \S23l_s, 24 + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S23l_s, \S23h_s + slli \S23l_s, \T03h_s, 9 + srli \T03h_s, \T03h_s, 23 + vxor.vv \S16_v, \S16_v, \T01_v + srli \S23h_s, \T03l_s, 23 + slli \T03l_s, \T03l_s, 9 + xor \S23l_s, \S23l_s, \S23h_s + xor \S23h_s, \T03l_s, \T03h_s + sw \T02l_s, 20*8(a0) + sw \T02h_s, 20*8+4(a0) + vxor.vv \S21_v, \S21_v, \T01_v + slli \T02l_s, \S04l_s, 27 + srli \S04l_s, \S04l_s, 5 + srli \T02h_s, \S04h_s, 5 + slli \S04h_s, \S04h_s, 27 + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S04h_s, \S04l_s + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + vxor.vv \S04_v, \S04_v, \T04_v + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + slli \S04l_s, \T03l_s, 14 + srli \T03l_s, \T03l_s, 18 + srli \S04h_s, \T03h_s, 18 + slli \T03h_s, \T03h_s, 14 + vxor.vv \S09_v, \S09_v, \T04_v + xor \S04l_s, \S04l_s, \S04h_s + xor \S04h_s, \T03h_s, \T03l_s + slli \T02l_s, \S17l_s, 15 + srli \S17l_s, \S17l_s, 17 + srli \T02h_s, \S17h_s, 17 + slli \S17h_s, \S17h_s, 15 + vxor.vv \S14_v, \S14_v, \T04_v + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S17h_s, \S17l_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + sw \T02h_s, 24*8+4(a0) + vxor.vv \S19_v, \S19_v, \T04_v + lw \T02h_s, 7*8(a0) + lw \T02l_s, 7*8+4(a0) + slli \S17l_s, \T03l_s, 10 + srli \T03l_s, \T03l_s, 22 + srli \S17h_s, \T03h_s, 22 + slli \T03h_s, \T03h_s, 10 + vxor.vv \S24_v, \S24_v, \T04_v + xor \S17l_s, \S17l_s, \S17h_s + xor \S17h_s, \T03h_s, \T03l_s + srli \T03h_s, \T02h_s, 26 + slli \T02h_s, \T02h_s, 6 + srli \T03l_s, \T02l_s, 26 + slli \T02l_s, \T02l_s, 6 + vmv.v.v \T00_v, \S00_v + li \T04_s, 44 + xor \T02h_s, \T02h_s, \T03l_s + xor \T02l_s, \T02l_s, \T03h_s + lw \T03l_s, 19*8(a0) + lw \T03h_s, 19*8+4(a0) + sw \T02h_s, 11*8(a0) + sw \T02l_s, 11*8+4(a0) + vsrl.vi \T01_v, \S06_v, 20 + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + srli \T02h_s, \T03l_s, 24 + slli \T03l_s, \T03l_s, 8 + srli \T02l_s, \T03h_s, 24 + slli \T03h_s, \T03h_s, 8 + vsll.vx \T02_v, \S06_v, \T04_s + li \T04_s, 62 + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + lw \T00l_s, 12*8(a0) + lw \T00h_s, 12*8+4(a0) + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + vsrl.vi \S00_v, \S02_v, 2 + lw \T01l_s, 13*8(a0) + lw \T01h_s, 13*8+4(a0) + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + and \T03l_s, \T01l_s, \S08l_s + and \T03h_s, \T01h_s, \S08h_s + vsll.vx \T03_v, \S02_v, \T04_s + xor \T03l_s, \T00l_s, \T03l_s + xor \T03h_s, \T00h_s, \T03h_s + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + not \T03l_s, \T02l_s + not \T03h_s, \T02h_s + vxor.vv \T01_v, \T01_v, \T02_v + or \T03l_s, \T03l_s, \S08l_s + or \T03h_s, \T03h_s, \S08h_s + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + vxor.vv \S00_v, \S00_v, \T03_v + li \T04_s, 43 + or \T03l_s, \T02l_s, \S05l_s + or \T03h_s, \T02h_s, \S05h_s + xor \S08l_s, \S08l_s, \T03l_s + xor \S08h_s, \S08h_s, \T03h_s + and \T03l_s, \S05l_s, \T00l_s + and \T03h_s, \S05h_s, \T00h_s + vsrl.vi \S02_v, \S12_v, 21 + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + or \T03l_s, \T00l_s, \T01l_s + or \T03h_s, \T00h_s, \T01h_s + lw \T01l_s, 19*8(a0) + lw \T01h_s, 19*8+4(a0) + vsll.vx \T02_v, \S12_v, \T04_s + li \T04_s, 39 + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + lw \T00l_s, 18*8(a0) + lw \T00h_s, 18*8+4(a0) + xor \S05h_s, \S05h_s, \T03h_s + xor \S05l_s, \S05l_s, \T03l_s + vsll.vi \T03_v, \S13_v, 25 + not \T03l_s, \T01l_s + not \T03h_s, \T01h_s + and \T03l_s, \T03l_s, \S14l_s + and \T03h_s, \T03h_s, \S14h_s + xor \T03l_s, \T00l_s, \T03l_s + xor \T03h_s, \T00h_s, \T03h_s + vsrl.vx \S12_v, \S13_v, \T04_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + not \T04_s, \T01h_s + or \T03h_s, \S14h_s, \S10h_s + vxor.vv \S02_v, \S02_v, \T02_v + or \T03l_s, \S14l_s, \S10l_s + xor \T03h_s, \T03h_s, \T04_s + not \T04_s, \T01l_s + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + vxor.vv \S12_v, \S12_v, \T03_v + li \T04_s, 56 + and \T03l_s, \S10l_s, \T02l_s + and \T03h_s, \S10h_s, \T02h_s + xor \S14l_s, \S14l_s, \T03l_s + xor \S14h_s, \S14h_s, \T03h_s + or \T03l_s, \T02l_s, \T00l_s + or \T03h_s, \T02h_s, \T00h_s + vsll.vi \T02_v, \S19_v, 8 + xor \S10l_s, \S10l_s, \T03l_s + xor \S10h_s, \S10h_s, \T03h_s + and \T03l_s, \T00l_s, \T01l_s + and \T03h_s, \T00h_s, \T01h_s + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + vsrl.vx \S13_v, \S19_v, \T04_s + lw \T00h_s, 24*8+4(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02h_s, 11*8+4(a0) + sw \T02l_s, 11*8(a0) + lw \T02h_s, 15*8+4(a0) + lw \T01l_s, 20*8(a0) + lw \T02l_s, 15*8(a0) + lw \T00l_s, 24*8(a0) + vsrl.vi \S19_v, \S23_v, 8 + not \T04_s, \T00h_s + and \T03h_s, \T01h_s, \T02h_s + and \T03l_s, \T01l_s, \T02l_s + xor \T03h_s, \T03h_s, \T04_s + not \T04_s, \T00l_s + xor \T03l_s, \T03l_s, \T04_s + li \T04_s, 56 + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + vsll.vx \T03_v, \S23_v, \T04_s + or \T03l_s, \T02l_s, \S16l_s + or \T03h_s, \T02h_s, \S16h_s + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + vxor.vv \S13_v, \S13_v, \T02_v + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + and \T03l_s, \S16l_s, \S17l_s + and \T03h_s, \S16h_s, \S17h_s + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + vxor.vv \S19_v, \S19_v, \T03_v + li \T04_s, 41 + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + or \T03l_s, \S17l_s, \T00l_s + or \T03h_s, \S17h_s, \T00h_s + xor \S16l_s, \S16l_s, \T03l_s + xor \S16h_s, \S16h_s, \T03h_s + vsrl.vi \S23_v, \S15_v, 23 + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + not \T03l_s, \T00l_s + not \T03h_s, \T00h_s + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + vsll.vx \T02_v, \S15_v, \T04_s + li \T04_s, 63 + or \T03l_s, \T03l_s, \T01l_s + or \T03h_s, \T03h_s, \T01h_s + lw \T01l_s, 1*8(a0) + lw \T01h_s, 1*8+4(a0) + xor \S17l_s, \S17l_s, \T03l_s + xor \S17h_s, \S17h_s, \T03h_s + vsll.vi \T03_v, \S01_v, 1 + and \T03l_s, \T01l_s, \S21l_s + and \T03h_s, \T01h_s, \S21h_s + sw \S17h_s, 28*4(sp) + xor \T03l_s, \T00l_s, \T03l_s + xor \T03h_s, \T00h_s, \T03h_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + vsrl.vx \S15_v, \S01_v, \T04_s + not \T03l_s, \S21l_s + not \T03h_s, \S21h_s + and \T03l_s, \T03l_s, \T02l_s + and \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + vxor.vv \S23_v, \S23_v, \T02_v + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + not \T04_s, \S21h_s + or \T03h_s, \T02h_s, \S23h_s + or \T03l_s, \T02l_s, \S23l_s + xor \S21h_s, \T03h_s, \T04_s + vxor.vv \S15_v, \S15_v, \T03_v + li \S17h_s, 55 + not \T04_s, \S21l_s + xor \S21l_s, \T03l_s, \T04_s + and \T03l_s, \S23l_s, \T00l_s + and \T03h_s, \S23h_s, \T00h_s + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + lw \T04_s, 17*4(sp) + or \T03l_s, \T00l_s, \T01l_s + vsrl.vi \S01_v, \S08_v, 9 + or \T03h_s, \T00h_s, \T01h_s + lw \T00l_s, 18*4(sp) + lw \T00h_s, 19*4(sp) + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + lw \T01l_s, 20*4(sp) + vsll.vx \T02_v, \S08_v, \S17h_s + li \S17h_s, 45 + lw \T01h_s, 21*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + xor \S23l_s, \S23l_s, \T03l_s + lw \T02l_s, 0(\T04_s) + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 16 + vsrl.vi \S08_v, \S16_v, 19 + or \T03l_s, \T01l_s, \S02l_s + or \T03h_s, \T01h_s, \S02h_s + xor \T03l_s, \T00l_s, \T03l_s + xor \T03h_s, \T00h_s, \T03h_s + sw \T04_s, 17*4(sp) + xor \T03l_s, \T03l_s, \T02l_s + vsll.vx \T03_v, \S16_v, \S17h_s + xor \T03h_s, \T03h_s, \T02h_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + not \T03l_s, \S02l_s + vxor.vv \S01_v, \S01_v, \T02_v + not \T03h_s, \S02h_s + or \T03l_s, \T03l_s, \T02l_s + lw \S17h_s, 28*4(sp) + or \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + sw \T03l_s, 1*8(a0) + vxor.vv \S08_v, \S08_v, \T03_v + li \T04_s, 58 + sw \T03h_s, 1*8+4(a0) + and \T03l_s, \T02l_s, \S04l_s + and \T03h_s, \T02h_s, \S04h_s + xor \S02l_s, \S02l_s, \T03l_s + xor \S02h_s, \S02h_s, \T03h_s + or \T03l_s, \S04l_s, \T00l_s + vsll.vi \T02_v, \S07_v, 6 + or \T03h_s, \S04h_s, \T00h_s + xor \T03l_s, \T02l_s, \T03l_s + xor \T03h_s, \T02h_s, \T03h_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + and \T03l_s, \T00l_s, \T01l_s + vsrl.vx \S16_v, \S07_v, \T04_s + li \T04_s, 61 + and \T03h_s, \T00h_s, \T01h_s + xor \S04l_s, \S04l_s, \T03l_s + xor \S04h_s, \S04h_s, \T03h_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00l_s, \S05l_s, \S10l_s + vsll.vi \T03_v, \S10_v, 3 + xor \T00h_s, \S05h_s, \S10h_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 20*8(a0) + vsrl.vx \S07_v, \S10_v, \T04_s + lw \T03h_s, 20*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + sw \T00l_s, 18*4(sp) + vxor.vv \S16_v, \S16_v, \T02_v + sw \T00h_s, 19*4(sp) + xor \T01l_s, \S08l_s, \S23l_s + xor \T01h_s, \S08h_s, \S23h_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \T01l_s, \T01l_s, \T03l_s + vxor.vv \S07_v, \S07_v, \T03_v + li \T04_s, 36 + xor \T01h_s, \T01h_s, \T03h_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T03l_s + vsll.vi \T02_v, \S03_v, 28 + xor \T01h_s, \T01h_s, \T03h_s + srli \T03h_s, \T00l_s, 31 + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + vsrl.vx \S10_v, \S03_v, \T04_s + li \T04_s, 43 + xor \T00h_s, \T00h_s, \T03h_s + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + xor \T00l_s, \T00l_s, \T01l_s + xor \T00h_s, \T00h_s, \T01h_s + lw \T03l_s, 9*8(a0) + vsll.vi \T03_v, \S18_v, 21 + lw \T03h_s, 9*8+4(a0) + xor \T01l_s, \S04l_s, \S14l_s + xor \T01h_s, \S04h_s, \S14h_s + xor \S04l_s, \S04l_s, \T00l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + vsrl.vx \S03_v, \S18_v, \T04_s + xor \S14h_s, \S14h_s, \T00h_s + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \S10_v, \S10_v, \T02_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + vxor.vv \S03_v, \S03_v, \T03_v + li \T04_s, 49 + xor \T01h_s, \T01h_s, \T02h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + sw \T02l_s, 19*8(a0) + vsll.vi \T02_v, \S17_v, 15 + sw \T02h_s, 19*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T01l_s, 26*4(sp) + sw \T01h_s, 27*4(sp) + sw \T03l_s, 24*8(a0) + vsrl.vx \S18_v, \S17_v, \T04_s + li \T04_s, 54 + sw \T03h_s, 24*8+4(a0) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00l_s, \S16l_s, \S21l_s + xor \T00h_s, \S16h_s, \S21h_s + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + vsll.vi \T03_v, \S11_v, 10 + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + vsrl.vx \S17_v, \S11_v, \T04_s + xor \T00h_s, \T00h_s, \T03h_s + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + srli \T03h_s, \T00l_s, 31 + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 31 + vxor.vv \S18_v, \S18_v, \T02_v + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + xor \T00l_s, \T00l_s, \T01l_s + vxor.vv \S17_v, \S17_v, \T03_v + li \T04_s, 44 + xor \T00h_s, \T00h_s, \T01h_s + xor \S05l_s, \S05l_s, \T00l_s + xor \S05h_s, \S05h_s, \T00h_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + vsll.vi \T02_v, \S09_v, 20 + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \S10l_s, \S10l_s, \T00l_s + vsrl.vx \S11_v, \S09_v, \T04_s + li \T04_s, 61 + xor \S10h_s, \S10h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + vsrl.vi \S09_v, \S22_v, 3 + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 24*4(sp) + lw \T02h_s, 25*4(sp) + lw \T00l_s, 20*4(sp) + lw \T00h_s, 21*4(sp) + sw \T03l_s, 20*8(a0) + vsll.vx \T03_v, \S22_v, \T04_s + sw \T03h_s, 20*8+4(a0) + srli \T03h_s, \T02l_s, 31 + slli \T02l_s, \T02l_s, 1 + srli \T03l_s, \T02h_s, 31 + slli \T02h_s, \T02h_s, 1 + xor \T02l_s, \T02l_s, \T03l_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \T02h_s, \T02h_s, \T03h_s + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T00l_s, \S02l_s, \S17l_s + vxor.vv \S09_v, \S09_v, \T03_v + li \T04_s, 39 + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \S02l_s, \S02l_s, \T02l_s + xor \S02h_s, \S02h_s, \T02h_s + sw \T03l_s, 7*8(a0) + vsrl.vi \S22_v, \S14_v, 25 + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + vsll.vx \T02_v, \S14_v, \T04_s + li \T04_s, 46 + xor \T03h_s, \T03h_s, \T02h_s + xor \S17l_s, \S17l_s, \T02l_s + xor \S17h_s, \S17h_s, \T02h_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + vsll.vi \T03_v, \S20_v, 18 + lw \T03h_s, 22*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T00l_s, 22*4(sp) + vsrl.vx \S14_v, \S20_v, \T04_s + sw \T00h_s, 23*4(sp) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + srli \T03h_s, \T01l_s, 31 + slli \T01l_s, \T01l_s, 1 + srli \T03l_s, \T01h_s, 31 + vxor.vv \S22_v, \S22_v, \T02_v + slli \T01h_s, \T01h_s, 1 + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \T01l_s, \T01l_s, \T00l_s + vxor.vv \S14_v, \S14_v, \T03_v + li \T04_s, 37 + xor \T01h_s, \T01h_s, \T00h_s + xor \S08l_s, \S08l_s, \T01l_s + xor \S08h_s, \S08h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + lw \T02l_s, 13*8(a0) + vsll.vi \T02_v, \S04_v, 27 + lw \T02h_s, 13*8+4(a0) + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T02l_s, \T02l_s, \T01l_s + vsrl.vx \S20_v, \S04_v, \T04_s + li \T04_s, 50 + xor \T02h_s, \T02h_s, \T01h_s + xor \S23l_s, \S23l_s, \T01l_s + xor \S23h_s, \S23h_s, \T01h_s + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + xor \T03l_s, \T03l_s, \T01l_s + vsll.vi \T03_v, \S24_v, 14 + xor \T03h_s, \T03h_s, \T01h_s + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + srli \T03h_s, \T00l_s, 31 + vsrl.vx \S04_v, \S24_v, \T04_s + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + xor \T00l_s, \T00l_s, \T01l_s + vxor.vv \S20_v, \S20_v, \T02_v + xor \T00h_s, \T00h_s, \T01h_s + lw \T03l_s, 6*8(a0) + lw \T03h_s, 6*8+4(a0) + xor \S16l_s, \S16l_s, \T00l_s + xor \S16h_s, \S16h_s, \T00h_s + xor \S21l_s, \S21l_s, \T00l_s + vxor.vv \S04_v, \S04_v, \T03_v + li \T04_s, 62 + xor \S21h_s, \S21h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + vsll.vi \T02_v, \S21_v, 2 + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + xor \T02l_s, \T02l_s, \T00l_s + vsrl.vx \S24_v, \S21_v, \T04_s + li \T04_s, 36 + xor \T02h_s, \T02h_s, \T00h_s + mv \T01l_s, \T03l_s + mv \T01h_s, \T03h_s + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + slli \T03l_s, \S21l_s, 2 + vsrl.vi \S21_v, \S05_v, 28 + srli \S21l_s, \S21l_s, 30 + srli \T03h_s, \S21h_s, 30 + slli \S21h_s, \S21h_s, 2 + xor \T03l_s, \T03l_s, \T03h_s + xor \T03h_s, \S21h_s, \S21l_s + slli \T02h_s, \T01l_s, 12 + vsll.vx \T03_v, \S05_v, \T04_s + srli \T01l_s, \T01l_s, 20 + slli \T02l_s, \T01h_s, 12 + srli \T01h_s, \T01h_s, 20 + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T02h_s + lw \T00l_s, 0*8(a0) + vxor.vv \S24_v, \S24_v, \T02_v + lw \T00h_s, 0*8+4(a0) + slli \S21l_s, \S08h_s, 23 + srli \S08h_s, \S08h_s, 9 + srli \S21h_s, \S08l_s, 9 + slli \S08l_s, \S08l_s, 23 + xor \S21l_s, \S21l_s, \S21h_s + vxor.vv \S21_v, \S21_v, \T03_v + xor \S21h_s, \S08l_s, \S08h_s + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + slli \S08l_s, \S16h_s, 13 + srli \S16h_s, \S16h_s, 19 + srli \S08h_s, \S16l_s, 19 + vor.vv \T02_v, \S11_v, \S07_v + slli \S16l_s, \S16l_s, 13 + xor \S08l_s, \S08l_s, \S08h_s + xor \S08h_s, \S16l_s, \S16h_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + slli \S16l_s, \S05h_s, 4 + vand.vv \T03_v, \S07_v, \S08_v + srli \S05h_s, \S05h_s, 28 + srli \S16h_s, \S05l_s, 28 + slli \S05l_s, \S05l_s, 4 + xor \S16l_s, \S16l_s, \S16h_s + xor \S16h_s, \S05l_s, \S05h_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + slli \S05l_s, \T02l_s, 28 + vnot.v \T04_v, \S09_v + srli \T02l_s, \T02l_s, 4 + srli \S05h_s, \T02h_s, 4 + slli \T02h_s, \T02h_s, 28 + xor \S05l_s, \S05l_s, \S05h_s + xor \S05h_s, \T02h_s, \T02l_s + slli \T02l_s, \T03l_s, 21 + vor.vv \T05_v, \S09_v, \S10_v + srli \T03l_s, \T03l_s, 11 + srli \T02h_s, \T03h_s, 11 + slli \T03h_s, \T03h_s, 21 + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \T03h_s, \T03l_s + lw \T03l_s, 13*8(a0) + vxor.vv \S05_v, \S10_v, \T02_v + lw \T03h_s, 13*8+4(a0) + sw \T02l_s, 3*8(a0) + sw \T02h_s, 3*8+4(a0) + srli \T02h_s, \T03l_s, 7 + slli \T03l_s, \T03l_s, 25 + srli \T02l_s, \T03h_s, 7 + vor.vv \T04_v, \T04_v, \S08_v + slli \T03h_s, \T03h_s, 25 + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + slli \T02l_s, \S10l_s, 3 + vxor.vv \S06_v, \S11_v, \T03_v + srli \S10l_s, \S10l_s, 29 + srli \T02h_s, \S10h_s, 29 + slli \S10h_s, \S10h_s, 3 + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S10h_s, \S10l_s + lw \T03l_s, 1*8(a0) + vxor.vv \S07_v, \S07_v, \T04_v + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + slli \S10l_s, \T03l_s, 1 + srli \T03l_s, \T03l_s, 31 + srli \S10h_s, \T03h_s, 31 + vxor.vv \S08_v, \S08_v, \T05_v + slli \T03h_s, \T03h_s, 1 + xor \S10l_s, \S10l_s, \S10h_s + xor \S10h_s, \T03h_s, \T03l_s + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + slli \T02l_s, \S02h_s, 30 + vand.vv \T02_v, \S10_v, \S11_v + srli \S02h_s, \S02h_s, 2 + srli \T02h_s, \S02l_s, 2 + slli \S02l_s, \S02l_s, 30 + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S02l_s, \S02h_s + sw \T02l_s, 1*8(a0) + vor.vv \T03_v, \S16_v, \S12_v + sw \T02h_s, 1*8+4(a0) + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + slli \S02l_s, \T03h_s, 11 + srli \T03h_s, \T03h_s, 21 + srli \S02h_s, \T03l_s, 21 + vnot.v \T05_v, \S13_v + slli \T03l_s, \T03l_s, 11 + xor \S02l_s, \S02l_s, \S02h_s + xor \S02h_s, \T03l_s, \T03h_s + slli \T03l_s, \T02l_s, 20 + srli \T02l_s, \T02l_s, 12 + srli \T03h_s, \T02h_s, 12 + slli \T02h_s, \T02h_s, 20 + xor \T03l_s, \T03l_s, \T03h_s + vand.vv \T04_v, \S12_v, \S13_v + xor \T03h_s, \T02h_s, \T02l_s + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + slli \T03h_s, \T02l_s, 29 + vxor.vv \S09_v, \S09_v, \T02_v + srli \T02l_s, \T02l_s, 3 + slli \T03l_s, \T02h_s, 29 + srli \T02h_s, \T02h_s, 3 + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + sw \T02l_s, 9*8(a0) + vand.vv \T05_v, \T05_v, \S14_v + sw \T02h_s, 9*8+4(a0) + slli \T03l_s, \S14h_s, 7 + srli \S14h_s, \S14h_s, 25 + srli \T03h_s, \S14l_s, 25 + slli \S14l_s, \S14l_s, 7 + xor \T03l_s, \T03l_s, \T03h_s + vxor.vv \S10_v, \S15_v, \T03_v + xor \T03h_s, \S14l_s, \S14h_s + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + slli \S14l_s, \T02l_s, 18 + vxor.vv \S11_v, \S16_v, \T04_v + srli \T02l_s, \T02l_s, 14 + srli \S14h_s, \T02h_s, 14 + slli \T02h_s, \T02h_s, 18 + xor \S14l_s, \S14l_s, \S14h_s + xor \S14h_s, \T02h_s, \T02l_s + lw \T03l_s, 15*8(a0) + vxor.vv \S12_v, \S12_v, \T05_v + lw \T03h_s, 15*8+4(a0) + slli \T02l_s, \S23h_s, 24 + srli \S23h_s, \S23h_s, 8 + srli \T02h_s, \S23l_s, 8 + slli \S23l_s, \S23l_s, 24 + xor \T02l_s, \T02l_s, \T02h_s + vnot.v \T03_v, \S13_v + xor \T02h_s, \S23l_s, \S23h_s + slli \S23l_s, \T03h_s, 9 + srli \T03h_s, \T03h_s, 23 + srli \S23h_s, \T03l_s, 23 + slli \T03l_s, \T03l_s, 9 + xor \S23l_s, \S23l_s, \S23h_s + vand.vv \T04_v, \S15_v, \S16_v + xor \S23h_s, \T03l_s, \T03h_s + sw \T02l_s, 20*8(a0) + sw \T02h_s, 20*8+4(a0) + slli \T02l_s, \S04l_s, 27 + srli \S04l_s, \S04l_s, 5 + srli \T02h_s, \S04h_s, 5 + vand.vv \T05_v, \S21_v, \S17_v + slli \S04h_s, \S04h_s, 27 + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S04h_s, \S04l_s + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + vor.vv \T02_v, \S14_v, \S15_v + sw \T02h_s, 15*8+4(a0) + slli \S04l_s, \T03l_s, 14 + srli \T03l_s, \T03l_s, 18 + srli \S04h_s, \T03h_s, 18 + slli \T03h_s, \T03h_s, 14 + xor \S04l_s, \S04l_s, \S04h_s + xor \S04h_s, \T03h_s, \T03l_s + slli \T02l_s, \S17l_s, 15 + vxor.vv \S14_v, \S14_v, \T04_v + srli \S17l_s, \S17l_s, 17 + srli \T02h_s, \S17h_s, 17 + slli \S17h_s, \S17h_s, 15 + xor \T02l_s, \T02l_s, \T02h_s + xor \T02h_s, \S17h_s, \S17l_s + lw \T03l_s, 11*8(a0) + vxor.vv \S15_v, \S20_v, \T05_v + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + sw \T02h_s, 24*8+4(a0) + lw \T02h_s, 7*8(a0) + lw \T02l_s, 7*8+4(a0) + slli \S17l_s, \T03l_s, 10 + vxor.vv \S13_v, \T03_v, \T02_v + srli \T03l_s, \T03l_s, 22 + srli \S17h_s, \T03h_s, 22 + slli \T03h_s, \T03h_s, 10 + xor \S17l_s, \S17l_s, \S17h_s + xor \S17h_s, \T03h_s, \T03l_s + srli \T03h_s, \T02h_s, 26 + vnot.v \T03_v, \S18_v + slli \T02h_s, \T02h_s, 6 + srli \T03l_s, \T02l_s, 26 + slli \T02l_s, \T02l_s, 6 + xor \T02h_s, \T02h_s, \T03l_s + xor \T02l_s, \T02l_s, \T03h_s + lw \T03l_s, 19*8(a0) + vnot.v \T05_v, \S18_v + lw \T03h_s, 19*8+4(a0) + sw \T02h_s, 11*8(a0) + sw \T02l_s, 11*8+4(a0) + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + srli \T02h_s, \T03l_s, 24 + vor.vv \T02_v, \S17_v, \S18_v + slli \T03l_s, \T03l_s, 8 + srli \T02l_s, \T03h_s, 24 + slli \T03h_s, \T03h_s, 8 + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + lw \T00l_s, 12*8(a0) + vor.vv \T03_v, \T03_v, \S19_v + lw \T00h_s, 12*8+4(a0) + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + lw \T01l_s, 13*8(a0) + lw \T01h_s, 13*8+4(a0) + sw \T03l_s, 19*8(a0) + vand.vv \T04_v, \S19_v, \S20_v + sw \T03h_s, 19*8+4(a0) + and \T03l_s, \T01l_s, \S08l_s + and \T03h_s, \T01h_s, \S08h_s + xor \T03l_s, \T00l_s, \T03l_s + xor \T03h_s, \T00h_s, \T03h_s + lw \T02l_s, 9*8(a0) + vxor.vv \S16_v, \S21_v, \T02_v + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + not \T03l_s, \T02l_s + not \T03h_s, \T02h_s + or \T03l_s, \T03l_s, \S08l_s + vxor.vv \S17_v, \S17_v, \T03_v + or \T03h_s, \T03h_s, \S08h_s + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + or \T03l_s, \T02l_s, \S05l_s + or \T03h_s, \T02h_s, \S05h_s + xor \S08l_s, \S08l_s, \T03l_s + vxor.vv \S18_v, \T05_v, \T04_v + xor \S08h_s, \S08h_s, \T03h_s + and \T03l_s, \S05l_s, \T00l_s + and \T03h_s, \S05h_s, \T00h_s + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + or \T03l_s, \T00l_s, \T01l_s + vnot.v \T03_v, \S01_v + or \T03h_s, \T00h_s, \T01h_s + lw \T01l_s, 19*8(a0) + lw \T01h_s, 19*8+4(a0) + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + lw \T00l_s, 18*8(a0) + vnot.v \T05_v, \S01_v + lw \T00h_s, 18*8+4(a0) + xor \S05h_s, \S05h_s, \T03h_s + xor \S05l_s, \S05l_s, \T03l_s + not \T03l_s, \T01l_s + not \T03h_s, \T01h_s + and \T03l_s, \T03l_s, \S14l_s + vor.vv \T02_v, \S20_v, \S21_v + and \T03h_s, \T03h_s, \S14h_s + xor \T03l_s, \T00l_s, \T03l_s + xor \T03h_s, \T00h_s, \T03h_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 12*8(a0) + vand.vv \T03_v, \T03_v, \S22_v + sw \T03h_s, 12*8+4(a0) + not \T04_s, \T01h_s + or \T03h_s, \S14h_s, \S10h_s + or \T03l_s, \S14l_s, \S10l_s + xor \T03h_s, \T03h_s, \T04_s + not \T04_s, \T01l_s + vor.vv \T04_v, \S22_v, \S23_v + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + and \T03l_s, \S10l_s, \T02l_s + and \T03h_s, \S10h_s, \T02h_s + xor \S14l_s, \S14l_s, \T03l_s + vxor.vv \S19_v, \S19_v, \T02_v + xor \S14h_s, \S14h_s, \T03h_s + or \T03l_s, \T02l_s, \T00l_s + or \T03h_s, \T02h_s, \T00h_s + xor \S10l_s, \S10l_s, \T03l_s + xor \S10h_s, \S10h_s, \T03h_s + and \T03l_s, \T00l_s, \T01l_s + vxor.vv \S20_v, \S00_v, \T03_v + and \T03h_s, \T00h_s, \T01h_s + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + lw \T00h_s, 24*8+4(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02h_s, 11*8+4(a0) + vxor.vv \S21_v, \T05_v, \T04_v + sw \T02l_s, 11*8(a0) + lw \T02h_s, 15*8+4(a0) + lw \T01l_s, 20*8(a0) + lw \T02l_s, 15*8(a0) + lw \T00l_s, 24*8(a0) + not \T04_s, \T00h_s + vand.vv \T02_v, \S23_v, \S24_v + and \T03h_s, \T01h_s, \T02h_s + and \T03l_s, \T01l_s, \T02l_s + xor \T03h_s, \T03h_s, \T04_s + not \T04_s, \T00l_s + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + or \T03l_s, \T02l_s, \S16l_s + vor.vv \T03_v, \S24_v, \S00_v + or \T03h_s, \T02h_s, \S16h_s + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + and \T03l_s, \S16l_s, \S17l_s + vand.vv \T04_v, \S00_v, \S01_v + and \T03h_s, \S16h_s, \S17h_s + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + or \T03l_s, \S17l_s, \T00l_s + vor.vv \T05_v, \T01_v, \S02_v + or \T03h_s, \S17h_s, \T00h_s + xor \S16l_s, \S16l_s, \T03l_s + xor \S16h_s, \S16h_s, \T03h_s + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + not \T03l_s, \T00l_s + vxor.vv \S22_v, \S22_v, \T02_v + not \T03h_s, \T00h_s + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + or \T03l_s, \T03l_s, \T01l_s + or \T03h_s, \T03h_s, \T01h_s + lw \T01l_s, 1*8(a0) + vxor.vv \S23_v, \S23_v, \T03_v + lw \T01h_s, 1*8+4(a0) + xor \S17l_s, \S17l_s, \T03l_s + xor \S17h_s, \S17h_s, \T03h_s + and \T03l_s, \T01l_s, \S21l_s + and \T03h_s, \T01h_s, \S21h_s + xor \T03l_s, \T00l_s, \T03l_s + vxor.vv \S24_v, \S24_v, \T04_v + xor \T03h_s, \T00h_s, \T03h_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + not \T03l_s, \S21l_s + not \T03h_s, \S21h_s + and \T03l_s, \T03l_s, \T02l_s + vxor.vv \S00_v, \T00_v, \T05_v + and \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + not \T04_s, \S21h_s + vnot.v \T02_v, \S02_v + or \T03h_s, \T02h_s, \S23h_s + or \T03l_s, \T02l_s, \S23l_s + xor \S21h_s, \T03h_s, \T04_s + not \T04_s, \S21l_s + xor \S21l_s, \T03l_s, \T04_s + and \T03l_s, \S23l_s, \T00l_s + vor.vv \T04_v, \S04_v, \T00_v + and \T03h_s, \S23h_s, \T00h_s + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + lw \T04_s, 17*4(sp) + or \T03l_s, \T00l_s, \T01l_s + or \T03h_s, \T00h_s, \T01h_s + vand.vv \T03_v, \S03_v, \S04_v + lw \T00l_s, 18*4(sp) + lw \T00h_s, 19*4(sp) + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + xor \S23l_s, \S23l_s, \T03l_s + vand.vv \T05_v, \T00_v, \T01_v + lw \T02l_s, 0(\T04_s) + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 16 + or \T03l_s, \T01l_s, \S02l_s + or \T03h_s, \T01h_s, \S02h_s + xor \T03l_s, \T00l_s, \T03l_s + vor.vv \T02_v, \T02_v, \S03_v + xor \T03h_s, \T00h_s, \T03h_s + sw \T04_s, 17*4(sp) + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + vxor.vv \S02_v, \S02_v, \T03_v + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + not \T03l_s, \S02l_s + not \T03h_s, \S02h_s + lw \T04_s, 29*4(sp) + or \T03l_s, \T03l_s, \T02l_s + or \T03h_s, \T03h_s, \T02h_s + vxor.vv \S03_v, \S03_v, \T04_v + xor \T03l_s, \T01l_s, \T03l_s + xor \T03h_s, \T01h_s, \T03h_s + vle64.v \T00_v, (\T04_s) + sw \T03l_s, 1*8(a0) + sw \T03h_s, 1*8+4(a0) + addi \T04_s, \T04_s, 16 + and \T03l_s, \T02l_s, \S04l_s + and \T03h_s, \T02h_s, \S04h_s + vxor.vv \S01_v, \T01_v, \T02_v + xor \S02l_s, \S02l_s, \T03l_s + sw \T04_s, 29*4(sp) + xor \S02h_s, \S02h_s, \T03h_s + or \T03l_s, \S04l_s, \T00l_s + or \T03h_s, \S04h_s, \T00h_s + xor \T03l_s, \T02l_s, \T03l_s + xor \T03h_s, \T02h_s, \T03h_s + vxor.vv \S04_v, \S04_v, \T05_v + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + and \T03l_s, \T00l_s, \T01l_s + and \T03h_s, \T00h_s, \T01h_s + xor \S04l_s, \S04l_s, \T03l_s + xor \S04h_s, \S04h_s, \T03h_s + vxor.vv \S00_v, \S00_v, \T00_v +.endm + +# stack: +# 0*4-14*4 for saving registers +# 15*4 for saving a0 +# 16*4 for loop control +# 17*4 for table index of scalar impl +# 18*4,19*4 for C0 +# 20*4,21*4 for C1 +# 22*4,23*4 for C2 +# 24*4,25*4 for C3 +# 26*4,27*4 for C4 +# 28*4 for temporary usage +# 29*4 for table index of vector impl +# 30*4 for outer loop control variable j +.globl KeccakF1600_StatePermute_RV32V_4x +.align 2 +KeccakF1600_StatePermute_RV32V_4x: + addi sp, sp, -4*31 + SaveRegs + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sw s11, 30*4(sp) + # prepare table index + la tp, constants_keccak + sw tp, 17*4(sp) + bnez s11, init_1th_loop +init_0th_loop: + sw tp, 29*4(sp) + # load 1-th scalar impl inputs and vector impl inputs + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + + li tp, 12 +inner_loop: + sw tp, 16*4(sp) + ARound \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + v30, v31, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + lw tp, 16*4(sp) + addi tp, tp, -1 + bnez tp, inner_loop + + # outer loop control + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,ra, gp, tp + lw s11, 30*4(sp) + beqz s11, final_end +final_1th_loop: + addi a0, a0, -25*(16+8) + StoreStates_v +final_end: + addi s11, s11, 1 + li ra, 2 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 4*31 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv32imv_hybrid_x5.s b/examples/naive/riscv/keccak/fips202_rv32imv_hybrid_x5.s new file mode 100644 index 000000000..46c4c89c5 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32imv_hybrid_x5.s @@ -0,0 +1,2504 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008008 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sw s0, 0*4(sp) + sw s1, 1*4(sp) + sw s2, 2*4(sp) + sw s3, 3*4(sp) + sw s4, 4*4(sp) + sw s5, 5*4(sp) + sw s6, 6*4(sp) + sw s7, 7*4(sp) + sw s8, 8*4(sp) + sw s9, 9*4(sp) + sw s10, 10*4(sp) + sw s11, 11*4(sp) + sw gp, 12*4(sp) + sw tp, 13*4(sp) + sw ra, 14*4(sp) +.endm + +.macro RestoreRegs + lw s0, 0*4(sp) + lw s1, 1*4(sp) + lw s2, 2*4(sp) + lw s3, 3*4(sp) + lw s4, 4*4(sp) + lw s5, 5*4(sp) + lw s6, 6*4(sp) + lw s7, 7*4(sp) + lw s8, 8*4(sp) + lw s9, 9*4(sp) + lw s10, 10*4(sp) + lw s11, 11*4(sp) + lw gp, 12*4(sp) + lw tp, 13*4(sp) + lw ra, 14*4(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \S02l_s, 2*8(a0) + lw \S02h_s, 2*8+4(a0) + lw \S04l_s, 4*8(a0) + lw \S04h_s, 4*8+4(a0) + lw \S05l_s, 5*8(a0) + lw \S05h_s, 5*8+4(a0) + lw \S08l_s, 8*8(a0) + lw \S08h_s, 8*8+4(a0) + lw \S10l_s, 10*8(a0) + lw \S10h_s, 10*8+4(a0) + lw \S14l_s, 14*8(a0) + lw \S14h_s, 14*8+4(a0) + lw \S16l_s, 16*8(a0) + lw \S16h_s, 16*8+4(a0) + lw \S17l_s, 17*8(a0) + lw \S17h_s, 17*8+4(a0) + lw \S21l_s, 21*8(a0) + lw \S21h_s, 21*8+4(a0) + # lane complement: 1,2,8,12,17,20 + lw \T00l_s, 1*8(a0) + lw \T00h_s, 1*8+4(a0) + lw \S23l_s, 23*8(a0) + lw \S23h_s, 23*8+4(a0) + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + lw \T01l_s, 12*8(a0) + lw \T01h_s, 12*8+4(a0) + sw \T00l_s, 1*8(a0) + sw \T00h_s, 1*8+4(a0) + not \T01l_s, \T01l_s + not \T01h_s, \T01h_s + lw \T00l_s, 20*8(a0) + lw \T00h_s, 20*8+4(a0) + sw \T01l_s, 12*8(a0) + sw \T01h_s, 12*8+4(a0) + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + not \S02l_s, \S02l_s + not \S02h_s, \S02h_s + sw \T00l_s, 20*8(a0) + sw \T00h_s, 20*8+4(a0) + not \S08l_s, \S08l_s + not \S08h_s, \S08h_s + not \S17l_s, \S17l_s + not \S17h_s, \S17h_s +.endm + +.macro StoreStates_s \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s + # lane complement: 1,2,8,12,17,20 + lw \T00l_s, 1*8(a0) + lw \T00h_s, 1*8+4(a0) + not \S02l_s, \S02l_s + not \S02h_s, \S02h_s + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + sw \T00l_s, 1*8(a0) + sw \T00h_s, 1*8+4(a0) + lw \T01l_s, 12*8(a0) + lw \T01h_s, 12*8+4(a0) + not \S08l_s, \S08l_s + not \S08h_s, \S08h_s + not \T01l_s, \T01l_s + not \T01h_s, \T01h_s + sw \T01l_s, 12*8(a0) + sw \T01h_s, 12*8+4(a0) + lw \T00l_s, 20*8(a0) + lw \T00h_s, 20*8+4(a0) + not \S17l_s, \S17l_s + not \S17h_s, \S17h_s + not \T00l_s, \T00l_s + not \T00h_s, \T00h_s + sw \T00l_s, 20*8(a0) + sw \T00h_s, 20*8+4(a0) + sw \S02l_s, 2*8(a0) + sw \S02h_s, 2*8+4(a0) + sw \S04l_s, 4*8(a0) + sw \S04h_s, 4*8+4(a0) + sw \S05l_s, 5*8(a0) + sw \S05h_s, 5*8+4(a0) + sw \S08l_s, 8*8(a0) + sw \S08h_s, 8*8+4(a0) + sw \S10l_s, 10*8(a0) + sw \S10h_s, 10*8+4(a0) + sw \S14l_s, 14*8(a0) + sw \S14h_s, 14*8+4(a0) + sw \S16l_s, 16*8(a0) + sw \S16h_s, 16*8+4(a0) + sw \S17l_s, 17*8(a0) + sw \S17h_s, 17*8+4(a0) + sw \S21l_s, 21*8(a0) + sw \S21h_s, 21*8+4(a0) + sw \S23l_s, 23*8(a0) + sw \S23h_s, 23*8+4(a0) +.endm + +.macro ARound \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, \ + S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, \ + T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00h_s, \S05h_s, \S10h_s + xor \T00l_s, \S05l_s, \S10l_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + vxor.vv \T00_v, \S00_v, \S05_v + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \T01h_s, \S08h_s, \S23h_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \T01l_s, \S08l_s, \S23l_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T03h_s + vxor.vv \T00_v, \T00_v, \S15_v + xor \T01l_s, \T01l_s, \T03l_s + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + srli \T03h_s, \T00l_s, 31 + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \T00_v, \T00_v, \S20_v + xor \T00h_s, \T00h_s, \T01h_s + xor \T00l_s, \T00l_s, \T01l_s + lw \T03l_s, 9*8(a0) + lw \T03h_s, 9*8+4(a0) + xor \T01h_s, \S04h_s, \S14h_s + xor \T01l_s, \S04l_s, \S14l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S04l_s, \S04l_s, \T00l_s + xor \S14h_s, \S14h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + vxor.vv \T01_v, \S02_v, \S07_v + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + lw \T03l_s, 24*8(a0) + vxor.vv \T01_v, \T01_v, \S12_v + lw \T03h_s, 24*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 19*8(a0) + sw \T02h_s, 19*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + vxor.vv \T01_v, \T01_v, \S17_v + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + sw \T01l_s, 26*4(sp) + sw \T01h_s, 27*4(sp) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00h_s, \S16h_s, \S21h_s + xor \T00l_s, \S16l_s, \S21l_s + vxor.vv \T01_v, \T01_v, \S22_v + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + li \T04_s, 64-1 + xor \T00h_s, \T00h_s, \T03h_s + vsll.vi \T03_v, \T01_v, 1 + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + srli \T03h_s, \T00l_s, 32-1 + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 32-1 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vsrl.vx \T02_v, \T01_v, \T04_s + xor \T00h_s, \T00h_s, \T01h_s + xor \T00l_s, \T00l_s, \T01l_s + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + xor \S05h_s, \S05h_s, \T00h_s + xor \S05l_s, \S05l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + vxor.vv \T02_v, \T02_v, \T03_v + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \S10h_s, \S10h_s, \T00h_s + xor \S10l_s, \S10l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + lw \T03l_s, 20*8(a0) + vxor.vv \T02_v, \T02_v, \T00_v + lw \T03h_s, 20*8+4(a0) + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + lw \T02l_s, 24*4(sp) + lw \T02h_s, 25*4(sp) + lw \T00l_s, 20*4(sp) + vxor.vv \T03_v, \S01_v, \S06_v + lw \T00h_s, 21*4(sp) + srli \T03h_s, \T02l_s, 32-1 + slli \T02l_s, \T02l_s, 1 + srli \T03l_s, \T02h_s, 32-1 + slli \T02h_s, \T02h_s, 1 + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vxor.vv \T03_v, \T03_v, \S11_v + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + vxor.vv \T03_v, \T03_v, \S16_v + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + xor \S02h_s, \S02h_s, \T02h_s + xor \S02l_s, \S02l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 12*8(a0) + vxor.vv \T03_v, \T03_v, \S21_v + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + lw \T03h_s, 22*8+4(a0) + xor \S17h_s, \S17h_s, \T02h_s + xor \S17l_s, \S17l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 22*8(a0) + vxor.vv \S01_v, \S01_v, \T02_v + sw \T03h_s, 22*8+4(a0) + sw \T00l_s, 22*4(sp) + sw \T00h_s, 23*4(sp) + srli \T03h_s, \T01l_s, 32-1 + slli \T01l_s, \T01l_s, 1 + srli \T03l_s, \T01h_s, 32-1 + slli \T01h_s, \T01h_s, 1 + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + vxor.vv \S06_v, \S06_v, \T02_v + xor \T01h_s, \T01h_s, \T00h_s + xor \T01l_s, \T01l_s, \T00l_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08h_s, \S08h_s, \T01h_s + xor \S08l_s, \S08l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + vxor.vv \S11_v, \S11_v, \T02_v + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \S23h_s, \S23h_s, \T01h_s + xor \S23l_s, \S23l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + xor \T02l_s, \T02l_s, \T01l_s + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + lw \T03l_s, 18*8(a0) + vxor.vv \S16_v, \S16_v, \T02_v + lw \T03h_s, 18*8+4(a0) + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + srli \T03h_s, \T00l_s, 32-1 + vxor.vv \S21_v, \S21_v, \T02_v + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 32-1 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00h_s, \T00h_s, \T01h_s + xor \T00l_s, \T00l_s, \T01l_s + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + vxor.vv \T02_v, \S04_v, \S09_v + xor \S16h_s, \S16h_s, \T00h_s + xor \S16l_s, \S16l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T03l_s, 6*8(a0) + lw \T03h_s, 6*8+4(a0) + xor \S21h_s, \S21h_s, \T00h_s + xor \S21l_s, \S21l_s, \T00l_s + vxor.vv \T02_v, \T02_v, \S14_v + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 11*8(a0) + vxor.vv \T02_v, \T02_v, \S19_v + sw \T02h_s, 11*8+4(a0) + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + lw \T01l_s, 6*8(a0) + lw \T01h_s, 6*8+4(a0) + slli \T03l_s, \S21l_s, 2 + srli \S21l_s, \S21l_s, 32-2 + srli \T03h_s, \S21h_s, 32-2 + xor \T03l_s, \T03l_s, \T03h_s + slli \T03h_s, \S21h_s, 2 + vxor.vv \T02_v, \T02_v, \S24_v + xor \T03h_s, \T03h_s, \S21l_s + slli \T02h_s, \T01l_s, 44-32 + srli \T01l_s, \T01l_s, 64-44 + slli \T02l_s, \T01h_s, 44-32 + xor \T01l_s, \T01l_s, \T02l_s + srli \T01h_s, \T01h_s, 64-44 + xor \T01h_s, \T01h_s, \T02h_s + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + vsll.vi \T04_v, \T02_v, 1 + slli \S21h_s, \S08l_s, 55-32 + srli \S08l_s, \S08l_s, 64-55 + srli \S21l_s, \S08h_s, 64-55 + xor \S21h_s, \S21h_s, \S21l_s + slli \S21l_s, \S08h_s, 55-32 + xor \S21l_s, \S21l_s, \S08l_s + slli \S08h_s, \S16l_s, 45-32 + srli \S16l_s, \S16l_s, 64-45 + srli \S08l_s, \S16h_s, 64-45 + xor \S08h_s, \S08h_s, \S08l_s + vxor.vv \T01_v, \T01_v, \T04_v + slli \S08l_s, \S16h_s, 45-32 + xor \S08l_s, \S08l_s, \S16l_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + slli \S16h_s, \S05l_s, 36-32 + srli \S05l_s, \S05l_s, 64-36 + srli \S16l_s, \S05h_s, 64-36 + li \T04_s, 63 + xor \S16h_s, \S16h_s, \S16l_s + vsrl.vx \T04_v, \T02_v, \T04_s + slli \S16l_s, \S05h_s, 36-32 + xor \S16l_s, \S16l_s, \S05l_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + slli \S05l_s, \T02l_s, 28 + srli \T02l_s, \T02l_s, 32-28 + srli \S05h_s, \T02h_s, 32-28 + xor \S05l_s, \S05l_s, \S05h_s + slli \S05h_s, \T02h_s, 28 + xor \S05h_s, \S05h_s, \T02l_s + vxor.vv \T01_v, \T01_v, \T04_v + slli \T02l_s, \T03l_s, 21 + srli \T03l_s, \T03l_s, 32-21 + srli \T02h_s, \T03h_s, 32-21 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \T03h_s, 21 + xor \T02h_s, \T02h_s, \T03l_s + lw \T03l_s, 13*8(a0) + lw \T03h_s, 13*8+4(a0) + sw \T02l_s, 3*8(a0) + vxor.vv \T04_v, \S03_v, \S08_v + sw \T02h_s, 3*8+4(a0) + srli \T02h_s, \T03l_s, 32-25 + slli \T03l_s, \T03l_s, 25 + srli \T02l_s, \T03h_s, 32-25 + slli \T03h_s, \T03h_s, 25 + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + slli \T02l_s, \S10l_s, 3 + vxor.vv \T04_v, \T04_v, \S13_v + srli \S10l_s, \S10l_s, 32-3 + srli \T02h_s, \S10h_s, 32-3 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S10h_s, 3 + xor \T02h_s, \T02h_s, \S10l_s + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + vxor.vv \T04_v, \T04_v, \S18_v + slli \S10l_s, \T03l_s, 1 + srli \T03l_s, \T03l_s, 32-1 + srli \S10h_s, \T03h_s, 32-1 + xor \S10l_s, \S10l_s, \S10h_s + slli \S10h_s, \T03h_s, 1 + xor \S10h_s, \S10h_s, \T03l_s + slli \T02l_s, \S02h_s, 62-32 + srli \S02h_s, \S02h_s, 64-62 + srli \T02h_s, \S02l_s, 64-62 + xor \T02l_s, \T02l_s, \T02h_s + vxor.vv \T04_v, \T04_v, \S23_v + slli \T02h_s, \S02l_s, 62-32 + xor \T02h_s, \T02h_s, \S02h_s + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + slli \S02l_s, \T03h_s, 43-32 + vxor.vv \S03_v, \S03_v, \T01_v + srli \T03h_s, \T03h_s, 64-43 + srli \S02h_s, \T03l_s, 64-43 + xor \S02l_s, \S02l_s, \S02h_s + slli \S02h_s, \T03l_s, 43-32 + xor \S02h_s, \S02h_s, \T03h_s + slli \T03l_s, \T02l_s, 20 + srli \T02l_s, \T02l_s, 32-20 + srli \T03h_s, \T02h_s, 32-20 + xor \T03l_s, \T03l_s, \T03h_s + slli \T03h_s, \T02h_s, 20 + vxor.vv \S08_v, \S08_v, \T01_v + xor \T03h_s, \T03h_s, \T02l_s + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + slli \T03h_s, \T02l_s, 61-32 + srli \T02l_s, \T02l_s, 64-61 + slli \T03l_s, \T02h_s, 61-32 + xor \T02l_s, \T02l_s, \T03l_s + vxor.vv \S13_v, \S13_v, \T01_v + srli \T02h_s, \T02h_s, 64-61 + xor \T02h_s, \T02h_s, \T03h_s + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + slli \T03l_s, \S14h_s, 39-32 + srli \S14h_s, \S14h_s, 64-39 + srli \T03h_s, \S14l_s, 64-39 + xor \T03l_s, \T03l_s, \T03h_s + slli \T03h_s, \S14l_s, 39-32 + xor \T03h_s, \T03h_s, \S14h_s + vxor.vv \S18_v, \S18_v, \T01_v + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + slli \S14l_s, \T02l_s, 18 + srli \T02l_s, \T02l_s, 32-18 + srli \S14h_s, \T02h_s, 32-18 + xor \S14l_s, \S14l_s, \S14h_s + slli \S14h_s, \T02h_s, 18 + vxor.vv \S23_v, \S23_v, \T01_v + xor \S14h_s, \S14h_s, \T02l_s + slli \T02l_s, \S23h_s, 56-32 + srli \S23h_s, \S23h_s, 64-56 + srli \T02h_s, \S23l_s, 64-56 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S23l_s, 56-32 + xor \T02h_s, \T02h_s, \S23h_s + lw \T03l_s, 15*8(a0) + li \T04_s, 64-1 + lw \T03h_s, 15*8+4(a0) + vsll.vi \T01_v, \T00_v, 1 + sw \T02l_s, 20*8(a0) + sw \T02h_s, 20*8+4(a0) + slli \S23l_s, \T03h_s, 41-32 + srli \T03h_s, \T03h_s, 64-41 + srli \S23h_s, \T03l_s, 64-41 + xor \S23l_s, \S23l_s, \S23h_s + slli \S23h_s, \T03l_s, 41-32 + xor \S23h_s, \S23h_s, \T03h_s + slli \T02l_s, \S04l_s, 27 + vsrl.vx \T00_v, \T00_v, \T04_s + srli \S04l_s, \S04l_s, 32-27 + srli \T02h_s, \S04h_s, 32-27 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S04h_s, 27 + xor \T02h_s, \T02h_s, \S04l_s + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + slli \S04l_s, \T03l_s, 14 + vxor.vv \T00_v, \T00_v, \T01_v + srli \T03l_s, \T03l_s, 32-14 + srli \S04h_s, \T03h_s, 32-14 + xor \S04l_s, \S04l_s, \S04h_s + slli \S04h_s, \T03h_s, 14 + xor \S04h_s, \S04h_s, \T03l_s + slli \T02l_s, \S17l_s, 15 + srli \S17l_s, \S17l_s, 32-15 + srli \T02h_s, \S17h_s, 32-15 + xor \T02l_s, \T02l_s, \T02h_s + vxor.vv \T00_v, \T00_v, \T04_v + slli \T02h_s, \S17h_s, 15 + xor \T02h_s, \T02h_s, \S17l_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + sw \T02h_s, 24*8+4(a0) + lw \T02h_s, 7*8(a0) + lw \T02l_s, 7*8+4(a0) + slli \S17l_s, \T03l_s, 10 + srli \T03l_s, \T03l_s, 32-10 + vxor.vv \S04_v, \S04_v, \T00_v + srli \S17h_s, \T03h_s, 32-10 + xor \S17l_s, \S17l_s, \S17h_s + slli \S17h_s, \T03h_s, 10 + xor \S17h_s, \S17h_s, \T03l_s + srli \T03h_s, \T02h_s, 32-6 + slli \T02h_s, \T02h_s, 6 + srli \T03l_s, \T02l_s, 32-6 + slli \T02l_s, \T02l_s, 6 + xor \T02h_s, \T02h_s, \T03l_s + vxor.vv \S09_v, \S09_v, \T00_v + xor \T02l_s, \T02l_s, \T03h_s + lw \T03l_s, 19*8(a0) + lw \T03h_s, 19*8+4(a0) + sw \T02h_s, 11*8(a0) + sw \T02l_s, 11*8+4(a0) + srli \T02h_s, \T03l_s, 32-8 + slli \T03l_s, \T03l_s, 8 + srli \T02l_s, \T03h_s, 32-8 + slli \T03h_s, \T03h_s, 8 + xor \T03l_s, \T03l_s, \T02l_s + vxor.vv \S14_v, \S14_v, \T00_v + xor \T03h_s, \T03h_s, \T02h_s + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + lw \T01l_s, 13*8(a0) + lw \T01h_s, 13*8+4(a0) + vxor.vv \S19_v, \S19_v, \T00_v + lw \T00l_s, 12*8(a0) + lw \T00h_s, 12*8+4(a0) + and \T03h_s, \T01h_s, \S08h_s + and \T03l_s, \T01l_s, \S08l_s + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + vxor.vv \S24_v, \S24_v, \T00_v + not \T03h_s, \T02h_s + not \T03l_s, \T02l_s + or \T03h_s, \T03h_s, \S08h_s + or \T03l_s, \T03l_s, \S08l_s + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + sw \T03l_s, 7*8(a0) + li \T04_s, 64-1 + sw \T03h_s, 7*8+4(a0) + vsll.vi \T01_v, \T04_v, 1 + or \T03h_s, \T02h_s, \S05h_s + or \T03l_s, \T02l_s, \S05l_s + xor \S08h_s, \S08h_s, \T03h_s + xor \S08l_s, \S08l_s, \T03l_s + and \T03h_s, \S05h_s, \T00h_s + and \T03l_s, \S05l_s, \T00l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + sw \T02l_s, 9*8(a0) + or \T03l_s, \T00l_s, \T01l_s + vsrl.vx \T04_v, \T04_v, \T04_s + sw \T02h_s, 9*8+4(a0) + or \T03h_s, \T00h_s, \T01h_s + lw \T01l_s, 19*8(a0) + xor \S05h_s, \S05h_s, \T03h_s + lw \T01h_s, 19*8+4(a0) + xor \S05l_s, \S05l_s, \T03l_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + lw \T00l_s, 18*8(a0) + vxor.vv \T04_v, \T04_v, \T01_v + lw \T00h_s, 18*8+4(a0) + not \T03h_s, \T01h_s + not \T03l_s, \T01l_s + and \T03h_s, \T03h_s, \S14h_s + and \T03l_s, \T03l_s, \S14l_s + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + not \T04_s, \T01h_s + vxor.vv \T04_v, \T04_v, \T03_v + or \T03h_s, \S14h_s, \S10h_s + xor \T03h_s, \T03h_s, \T04_s + not \T04_s, \T01l_s + or \T03l_s, \S14l_s, \S10l_s + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + and \T03h_s, \S10h_s, \T02h_s + and \T03l_s, \S10l_s, \T02l_s + vxor.vv \S02_v, \S02_v, \T04_v + xor \S14h_s, \S14h_s, \T03h_s + xor \S14l_s, \S14l_s, \T03l_s + or \T03h_s, \T02h_s, \T00h_s + or \T03l_s, \T02l_s, \T00l_s + xor \S10h_s, \S10h_s, \T03h_s + xor \S10l_s, \S10l_s, \T03l_s + and \T03h_s, \T00h_s, \T01h_s + and \T03l_s, \T00l_s, \T01l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + vxor.vv \S07_v, \S07_v, \T04_v + lw \T01l_s, 20*8(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T00l_s, 24*8(a0) + lw \T00h_s, 24*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + not \T04_s, \T00h_s + vxor.vv \S12_v, \S12_v, \T04_v + and \T03h_s, \T01h_s, \T02h_s + xor \T03h_s, \T03h_s, \T04_s + not \T04_s, \T00l_s + and \T03l_s, \T01l_s, \T02l_s + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + or \T03h_s, \T02h_s, \S16h_s + or \T03l_s, \T02l_s, \S16l_s + xor \T03h_s, \T01h_s, \T03h_s + vxor.vv \S17_v, \S17_v, \T04_v + xor \T03l_s, \T01l_s, \T03l_s + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + and \T03h_s, \S16h_s, \S17h_s + and \T03l_s, \S16l_s, \S17l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + vxor.vv \S22_v, \S22_v, \T04_v + or \T03h_s, \S17h_s, \T00h_s + or \T03l_s, \S17l_s, \T00l_s + xor \S16h_s, \S16h_s, \T03h_s + xor \S16l_s, \S16l_s, \T03l_s + lw \T02l_s, 22*8(a0) + not \T03h_s, \T00h_s + lw \T02h_s, 22*8+4(a0) + not \T03l_s, \T00l_s + li \T04_s, 64-1 + lw \T00l_s, 0*8(a0) + vsll.vi \T01_v, \T03_v, 1 + or \T03h_s, \T03h_s, \T01h_s + lw \T00h_s, 0*8+4(a0) + or \T03l_s, \T03l_s, \T01l_s + lw \T01l_s, 1*8(a0) + xor \S17h_s, \S17h_s, \T03h_s + lw \T01h_s, 1*8+4(a0) + xor \S17l_s, \S17l_s, \T03l_s + and \T03h_s, \T01h_s, \S21h_s + and \T03l_s, \T01l_s, \S21l_s + vsrl.vx \T03_v, \T03_v, \T04_s + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + not \T03h_s, \S21h_s + not \T03l_s, \S21l_s + and \T03h_s, \T03h_s, \T02h_s + and \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + vxor.vv \T03_v, \T03_v, \T01_v + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + not \T04_s, \S21h_s + or \T03h_s, \T02h_s, \S23h_s + xor \S21h_s, \T03h_s, \T04_s + not \T04_s, \S21l_s + or \T03l_s, \T02l_s, \S23l_s + xor \S21l_s, \T03l_s, \T04_s + and \T03h_s, \S23h_s, \T00h_s + vxor.vv \T03_v, \T03_v, \T02_v + and \T03l_s, \S23l_s, \T00l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + sw \T02l_s, 22*8(a0) + or \T03l_s, \T00l_s, \T01l_s + sw \T02h_s, 22*8+4(a0) + or \T03h_s, \T00h_s, \T01h_s + lw \T00l_s, 18*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + lw \T00h_s, 19*4(sp) + vxor.vv \S05_v, \S05_v, \T03_v + xor \S23l_s, \S23l_s, \T03l_s + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + or \T03h_s, \T01h_s, \S02h_s + or \T03l_s, \T01l_s, \S02l_s + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + lw \T04_s, 17*4(sp) + lw \T02l_s, 0(\T04_s) + vxor.vv \S10_v, \S10_v, \T03_v + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 16 + sw \T04_s, 17*4(sp) + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + not \T03h_s, \S02h_s + vxor.vv \S15_v, \S15_v, \T03_v + not \T03l_s, \S02l_s + or \T03h_s, \T03h_s, \T02h_s + or \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + sw \T03l_s, 1*8(a0) + sw \T03h_s, 1*8+4(a0) + and \T03h_s, \T02h_s, \S04h_s + and \T03l_s, \T02l_s, \S04l_s + vxor.vv \S20_v, \S20_v, \T03_v + xor \S02h_s, \S02h_s, \T03h_s + xor \S02l_s, \S02l_s, \T03l_s + or \T03h_s, \S04h_s, \T00h_s + or \T03l_s, \S04l_s, \T00l_s + xor \T03h_s, \T02h_s, \T03h_s + xor \T03l_s, \T02l_s, \T03l_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + and \T03h_s, \T00h_s, \T01h_s + and \T03l_s, \T00l_s, \T01l_s + vxor.vv \T00_v, \S00_v, \T03_v + xor \S04h_s, \S04h_s, \T03h_s + xor \S04l_s, \S04l_s, \T03l_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00h_s, \S05h_s, \S10h_s + xor \T00l_s, \S05l_s, \S10l_s + lw \T02l_s, 15*8(a0) + li \T04_s, 44 + lw \T02h_s, 15*8+4(a0) + vsll.vx \T02_v, \S06_v, \T04_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + vsrl.vi \T01_v, \S06_v, 64-44 + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \T01h_s, \S08h_s, \S23h_s + xor \T01l_s, \S08l_s, \S23l_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + lw \T03l_s, 18*8(a0) + vxor.vv \T01_v, \T01_v, \T02_v + lw \T03h_s, 18*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + srli \T03h_s, \T00l_s, 31 + li \T04_s, 62 + slli \T00l_s, \T00l_s, 1 + vsll.vx \T03_v, \S02_v, \T04_s + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00h_s, \T00h_s, \T01h_s + xor \T00l_s, \T00l_s, \T01l_s + lw \T03l_s, 9*8(a0) + lw \T03h_s, 9*8+4(a0) + xor \T01h_s, \S04h_s, \S14h_s + vsrl.vi \S00_v, \S02_v, 64-62 + xor \T01l_s, \S04l_s, \S14l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S04l_s, \S04l_s, \T00l_s + xor \S14h_s, \S14h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + li \T04_s, 43 + xor \T02h_s, \T02h_s, \T00h_s + vsll.vx \T02_v, \S12_v, \T04_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 19*8(a0) + sw \T02h_s, 19*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + sw \T01l_s, 26*4(sp) + vsrl.vi \S02_v, \S12_v, 64-43 + sw \T01h_s, 27*4(sp) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00h_s, \S16h_s, \S21h_s + xor \T00l_s, \S16l_s, \S21l_s + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \S02_v, \S02_v, \T02_v + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + li \T04_s, 64-25 + srli \T03h_s, \T00l_s, 32-1 + vsll.vi \T03_v, \S13_v, 25 + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 32-1 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00h_s, \T00h_s, \T01h_s + xor \T00l_s, \T00l_s, \T01l_s + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + vsrl.vx \S12_v, \S13_v, \T04_s + xor \S05h_s, \S05h_s, \T00h_s + xor \S05l_s, \S05l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \S10h_s, \S10h_s, \T00h_s + xor \S10l_s, \S10l_s, \T00l_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T03h_s, \T03h_s, \T00h_s + li \T04_s, 64-8 + xor \T03l_s, \T03l_s, \T00l_s + vsll.vi \T02_v, \S19_v, 8 + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + lw \T02l_s, 24*4(sp) + lw \T02h_s, 25*4(sp) + lw \T00l_s, 20*4(sp) + lw \T00h_s, 21*4(sp) + srli \T03h_s, \T02l_s, 32-1 + slli \T02l_s, \T02l_s, 1 + vsrl.vx \S13_v, \S19_v, \T04_s + srli \T03l_s, \T02h_s, 32-1 + slli \T02h_s, \T02h_s, 1 + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T00h_s, \S02h_s, \S17h_s + vxor.vv \S13_v, \S13_v, \T02_v + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + li \T04_s, 56 + lw \T03h_s, 12*8+4(a0) + vsll.vx \T03_v, \S23_v, \T04_s + xor \S02h_s, \S02h_s, \T02h_s + xor \S02l_s, \S02l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + vsrl.vi \S19_v, \S23_v, 64-56 + lw \T03h_s, 22*8+4(a0) + xor \S17h_s, \S17h_s, \T02h_s + xor \S17l_s, \S17l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + sw \T00l_s, 22*4(sp) + vxor.vv \S19_v, \S19_v, \T03_v + sw \T00h_s, 23*4(sp) + srli \T03h_s, \T01l_s, 32-1 + slli \T01l_s, \T01l_s, 1 + srli \T03l_s, \T01h_s, 32-1 + slli \T01h_s, \T01h_s, 1 + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + li \T04_s, 41 + xor \T01h_s, \T01h_s, \T00h_s + vsll.vx \T02_v, \S15_v, \T04_s + xor \T01l_s, \T01l_s, \T00l_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08h_s, \S08h_s, \T01h_s + xor \S08l_s, \S08l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + lw \T02l_s, 13*8(a0) + vsrl.vi \S23_v, \S15_v, 64-41 + lw \T02h_s, 13*8+4(a0) + xor \S23h_s, \S23h_s, \T01h_s + xor \S23l_s, \S23l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + xor \T02l_s, \T02l_s, \T01l_s + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + vxor.vv \S23_v, \S23_v, \T02_v + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + li \T04_s, 64-1 + srli \T03h_s, \T00l_s, 32-1 + vsll.vi \T03_v, \S01_v, 1 + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 32-1 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00h_s, \T00h_s, \T01h_s + xor \T00l_s, \T00l_s, \T01l_s + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + vsrl.vx \S15_v, \S01_v, \T04_s + xor \S16h_s, \S16h_s, \T00h_s + xor \S16l_s, \S16l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + lw \T03l_s, 6*8(a0) + lw \T03h_s, 6*8+4(a0) + xor \S21h_s, \S21h_s, \T00h_s + xor \S21l_s, \S21l_s, \T00l_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + xor \T02h_s, \T02h_s, \T00h_s + li \T04_s, 55 + xor \T02l_s, \T02l_s, \T00l_s + vsll.vx \T02_v, \S08_v, \T04_s + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + lw \T01l_s, 6*8(a0) + lw \T01h_s, 6*8+4(a0) + slli \T03l_s, \S21l_s, 2 + srli \S21l_s, \S21l_s, 32-2 + srli \T03h_s, \S21h_s, 32-2 + xor \T03l_s, \T03l_s, \T03h_s + vsrl.vi \S01_v, \S08_v, 64-55 + slli \T03h_s, \S21h_s, 2 + xor \T03h_s, \T03h_s, \S21l_s + slli \T02h_s, \T01l_s, 44-32 + srli \T01l_s, \T01l_s, 64-44 + slli \T02l_s, \T01h_s, 44-32 + xor \T01l_s, \T01l_s, \T02l_s + srli \T01h_s, \T01h_s, 64-44 + xor \T01h_s, \T01h_s, \T02h_s + sw \T03l_s, 0*8(a0) + vxor.vv \S01_v, \S01_v, \T02_v + sw \T03h_s, 0*8+4(a0) + slli \S21h_s, \S08l_s, 55-32 + srli \S08l_s, \S08l_s, 64-55 + srli \S21l_s, \S08h_s, 64-55 + xor \S21h_s, \S21h_s, \S21l_s + slli \S21l_s, \S08h_s, 55-32 + xor \S21l_s, \S21l_s, \S08l_s + slli \S08h_s, \S16l_s, 45-32 + li \T04_s, 45 + srli \S16l_s, \S16l_s, 64-45 + vsll.vx \T03_v, \S16_v, \T04_s + srli \S08l_s, \S16h_s, 64-45 + xor \S08h_s, \S08h_s, \S08l_s + slli \S08l_s, \S16h_s, 45-32 + xor \S08l_s, \S08l_s, \S16l_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + slli \S16h_s, \S05l_s, 36-32 + srli \S05l_s, \S05l_s, 64-36 + srli \S16l_s, \S05h_s, 64-36 + vsrl.vi \S08_v, \S16_v, 64-45 + xor \S16h_s, \S16h_s, \S16l_s + slli \S16l_s, \S05h_s, 36-32 + xor \S16l_s, \S16l_s, \S05l_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + slli \S05l_s, \T02l_s, 28 + srli \T02l_s, \T02l_s, 32-28 + srli \S05h_s, \T02h_s, 32-28 + xor \S05l_s, \S05l_s, \S05h_s + slli \S05h_s, \T02h_s, 28 + vxor.vv \S08_v, \S08_v, \T03_v + xor \S05h_s, \S05h_s, \T02l_s + slli \T02l_s, \T03l_s, 21 + srli \T03l_s, \T03l_s, 32-21 + srli \T02h_s, \T03h_s, 32-21 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \T03h_s, 21 + xor \T02h_s, \T02h_s, \T03l_s + li \T04_s, 64-6 + lw \T03l_s, 13*8(a0) + vsll.vi \T02_v, \S07_v, 6 + lw \T03h_s, 13*8+4(a0) + sw \T02l_s, 3*8(a0) + sw \T02h_s, 3*8+4(a0) + srli \T02h_s, \T03l_s, 32-25 + slli \T03l_s, \T03l_s, 25 + srli \T02l_s, \T03h_s, 32-25 + slli \T03h_s, \T03h_s, 25 + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T03l_s, 18*8(a0) + vsrl.vx \S16_v, \S07_v, \T04_s + sw \T03h_s, 18*8+4(a0) + slli \T02l_s, \S10l_s, 3 + srli \S10l_s, \S10l_s, 32-3 + srli \T02h_s, \S10h_s, 32-3 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S10h_s, 3 + xor \T02h_s, \T02h_s, \S10l_s + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + vxor.vv \S16_v, \S16_v, \T02_v + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + slli \S10l_s, \T03l_s, 1 + srli \T03l_s, \T03l_s, 32-1 + srli \S10h_s, \T03h_s, 32-1 + xor \S10l_s, \S10l_s, \S10h_s + slli \S10h_s, \T03h_s, 1 + xor \S10h_s, \S10h_s, \T03l_s + li \T04_s, 64-3 + slli \T02l_s, \S02h_s, 62-32 + vsll.vi \T03_v, \S10_v, 3 + srli \S02h_s, \S02h_s, 64-62 + srli \T02h_s, \S02l_s, 64-62 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S02l_s, 62-32 + xor \T02h_s, \T02h_s, \S02h_s + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + vsrl.vx \S07_v, \S10_v, \T04_s + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + slli \S02l_s, \T03h_s, 43-32 + srli \T03h_s, \T03h_s, 64-43 + srli \S02h_s, \T03l_s, 64-43 + xor \S02l_s, \S02l_s, \S02h_s + slli \S02h_s, \T03l_s, 43-32 + xor \S02h_s, \S02h_s, \T03h_s + slli \T03l_s, \T02l_s, 20 + srli \T02l_s, \T02l_s, 32-20 + vxor.vv \S07_v, \S07_v, \T03_v + srli \T03h_s, \T02h_s, 32-20 + xor \T03l_s, \T03l_s, \T03h_s + slli \T03h_s, \T02h_s, 20 + xor \T03h_s, \T03h_s, \T02l_s + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + sw \T03l_s, 12*8(a0) + li \T04_s, 64-28 + sw \T03h_s, 12*8+4(a0) + vsll.vi \T02_v, \S03_v, 28 + slli \T03h_s, \T02l_s, 61-32 + srli \T02l_s, \T02l_s, 64-61 + slli \T03l_s, \T02h_s, 61-32 + xor \T02l_s, \T02l_s, \T03l_s + srli \T02h_s, \T02h_s, 64-61 + xor \T02h_s, \T02h_s, \T03h_s + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + slli \T03l_s, \S14h_s, 39-32 + srli \S14h_s, \S14h_s, 64-39 + vsrl.vx \S10_v, \S03_v, \T04_s + srli \T03h_s, \S14l_s, 64-39 + xor \T03l_s, \T03l_s, \T03h_s + slli \T03h_s, \S14l_s, 39-32 + xor \T03h_s, \T03h_s, \S14h_s + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + slli \S14l_s, \T02l_s, 18 + vxor.vv \S10_v, \S10_v, \T02_v + srli \T02l_s, \T02l_s, 32-18 + srli \S14h_s, \T02h_s, 32-18 + xor \S14l_s, \S14l_s, \S14h_s + slli \S14h_s, \T02h_s, 18 + xor \S14h_s, \S14h_s, \T02l_s + slli \T02l_s, \S23h_s, 56-32 + srli \S23h_s, \S23h_s, 64-56 + srli \T02h_s, \S23l_s, 64-56 + li \T04_s, 64-21 + xor \T02l_s, \T02l_s, \T02h_s + vsll.vi \T03_v, \S18_v, 21 + slli \T02h_s, \S23l_s, 56-32 + xor \T02h_s, \T02h_s, \S23h_s + lw \T03l_s, 15*8(a0) + lw \T03h_s, 15*8+4(a0) + sw \T02l_s, 20*8(a0) + sw \T02h_s, 20*8+4(a0) + slli \S23l_s, \T03h_s, 41-32 + srli \T03h_s, \T03h_s, 64-41 + srli \S23h_s, \T03l_s, 64-41 + vsrl.vx \S03_v, \S18_v, \T04_s + xor \S23l_s, \S23l_s, \S23h_s + slli \S23h_s, \T03l_s, 41-32 + xor \S23h_s, \S23h_s, \T03h_s + slli \T02l_s, \S04l_s, 27 + srli \S04l_s, \S04l_s, 32-27 + srli \T02h_s, \S04h_s, 32-27 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S04h_s, 27 + xor \T02h_s, \T02h_s, \S04l_s + lw \T03l_s, 24*8(a0) + vxor.vv \S03_v, \S03_v, \T03_v + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + slli \S04l_s, \T03l_s, 14 + srli \T03l_s, \T03l_s, 32-14 + srli \S04h_s, \T03h_s, 32-14 + xor \S04l_s, \S04l_s, \S04h_s + li \T04_s, 64-15 + slli \S04h_s, \T03h_s, 14 + vsll.vi \T02_v, \S17_v, 15 + xor \S04h_s, \S04h_s, \T03l_s + slli \T02l_s, \S17l_s, 15 + srli \S17l_s, \S17l_s, 32-15 + srli \T02h_s, \S17h_s, 32-15 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S17h_s, 15 + xor \T02h_s, \T02h_s, \S17l_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + vsrl.vx \S18_v, \S17_v, \T04_s + sw \T02h_s, 24*8+4(a0) + lw \T02h_s, 7*8(a0) + lw \T02l_s, 7*8+4(a0) + slli \S17l_s, \T03l_s, 10 + srli \T03l_s, \T03l_s, 32-10 + srli \S17h_s, \T03h_s, 32-10 + xor \S17l_s, \S17l_s, \S17h_s + slli \S17h_s, \T03h_s, 10 + xor \S17h_s, \S17h_s, \T03l_s + vxor.vv \S18_v, \S18_v, \T02_v + srli \T03h_s, \T02h_s, 32-6 + slli \T02h_s, \T02h_s, 6 + srli \T03l_s, \T02l_s, 32-6 + slli \T02l_s, \T02l_s, 6 + xor \T02h_s, \T02h_s, \T03l_s + xor \T02l_s, \T02l_s, \T03h_s + lw \T03l_s, 19*8(a0) + lw \T03h_s, 19*8+4(a0) + li \T04_s, 64-10 + sw \T02h_s, 11*8(a0) + vsll.vi \T03_v, \S11_v, 10 + sw \T02l_s, 11*8+4(a0) + srli \T02h_s, \T03l_s, 32-8 + slli \T03l_s, \T03l_s, 8 + srli \T02l_s, \T03h_s, 32-8 + slli \T03h_s, \T03h_s, 8 + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + vsrl.vx \S17_v, \S11_v, \T04_s + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + lw \T01l_s, 13*8(a0) + lw \T01h_s, 13*8+4(a0) + lw \T00l_s, 12*8(a0) + lw \T00h_s, 12*8+4(a0) + and \T03h_s, \T01h_s, \S08h_s + and \T03l_s, \T01l_s, \S08l_s + vxor.vv \S17_v, \S17_v, \T03_v + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + not \T03h_s, \T02h_s + li \T04_s, 64-20 + not \T03l_s, \T02l_s + vsll.vi \T02_v, \S09_v, 20 + or \T03h_s, \T03h_s, \S08h_s + or \T03l_s, \T03l_s, \S08l_s + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + or \T03h_s, \T02h_s, \S05h_s + or \T03l_s, \T02l_s, \S05l_s + xor \S08h_s, \S08h_s, \T03h_s + xor \S08l_s, \S08l_s, \T03l_s + vsrl.vx \S11_v, \S09_v, \T04_s + and \T03h_s, \S05h_s, \T00h_s + and \T03l_s, \S05l_s, \T00l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + sw \T02l_s, 9*8(a0) + or \T03l_s, \T00l_s, \T01l_s + sw \T02h_s, 9*8+4(a0) + or \T03h_s, \T00h_s, \T01h_s + lw \T01l_s, 19*8(a0) + vxor.vv \S11_v, \S11_v, \T02_v + xor \S05h_s, \S05h_s, \T03h_s + lw \T01h_s, 19*8+4(a0) + xor \S05l_s, \S05l_s, \T03l_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + lw \T00l_s, 18*8(a0) + lw \T00h_s, 18*8+4(a0) + not \T03h_s, \T01h_s + li \T04_s, 61 + not \T03l_s, \T01l_s + vsll.vx \T03_v, \S22_v, \T04_s + and \T03h_s, \T03h_s, \S14h_s + and \T03l_s, \T03l_s, \S14l_s + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + not \T04_s, \T01h_s + or \T03h_s, \S14h_s, \S10h_s + xor \T03h_s, \T03h_s, \T04_s + vsrl.vi \S09_v, \S22_v, 64-61 + not \T04_s, \T01l_s + or \T03l_s, \S14l_s, \S10l_s + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + and \T03h_s, \S10h_s, \T02h_s + and \T03l_s, \S10l_s, \T02l_s + xor \S14h_s, \S14h_s, \T03h_s + xor \S14l_s, \S14l_s, \T03l_s + or \T03h_s, \T02h_s, \T00h_s + vxor.vv \S09_v, \S09_v, \T03_v + or \T03l_s, \T02l_s, \T00l_s + xor \S10h_s, \S10h_s, \T03h_s + xor \S10l_s, \S10l_s, \T03l_s + and \T03h_s, \T00h_s, \T01h_s + and \T03l_s, \T00l_s, \T01l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + li \T04_s, 39 + lw \T01l_s, 20*8(a0) + vsll.vx \T02_v, \S14_v, \T04_s + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T00l_s, 24*8(a0) + lw \T00h_s, 24*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + not \T04_s, \T00h_s + and \T03h_s, \T01h_s, \T02h_s + xor \T03h_s, \T03h_s, \T04_s + vsrl.vi \S22_v, \S14_v, 64-39 + not \T04_s, \T00l_s + and \T03l_s, \T01l_s, \T02l_s + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + or \T03h_s, \T02h_s, \S16h_s + or \T03l_s, \T02l_s, \S16l_s + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + vxor.vv \S22_v, \S22_v, \T02_v + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + and \T03h_s, \S16h_s, \S17h_s + and \T03l_s, \S16l_s, \S17l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + li \T04_s, 64-18 + or \T03h_s, \S17h_s, \T00h_s + vsll.vi \T03_v, \S20_v, 18 + or \T03l_s, \S17l_s, \T00l_s + xor \S16h_s, \S16h_s, \T03h_s + xor \S16l_s, \S16l_s, \T03l_s + lw \T02l_s, 22*8(a0) + not \T03h_s, \T00h_s + lw \T02h_s, 22*8+4(a0) + not \T03l_s, \T00l_s + lw \T00l_s, 0*8(a0) + or \T03h_s, \T03h_s, \T01h_s + vsrl.vx \S14_v, \S20_v, \T04_s + lw \T00h_s, 0*8+4(a0) + or \T03l_s, \T03l_s, \T01l_s + lw \T01l_s, 1*8(a0) + xor \S17h_s, \S17h_s, \T03h_s + lw \T01h_s, 1*8+4(a0) + xor \S17l_s, \S17l_s, \T03l_s + and \T03h_s, \T01h_s, \S21h_s + and \T03l_s, \T01l_s, \S21l_s + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + vxor.vv \S14_v, \S14_v, \T03_v + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + not \T03h_s, \S21h_s + not \T03l_s, \S21l_s + and \T03h_s, \T03h_s, \T02h_s + and \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + vsll.vi \T02_v, \S04_v, 27 + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + not \T04_s, \S21h_s + or \T03h_s, \T02h_s, \S23h_s + xor \S21h_s, \T03h_s, \T04_s + not \T04_s, \S21l_s + or \T03l_s, \T02l_s, \S23l_s + xor \S21l_s, \T03l_s, \T04_s + and \T03h_s, \S23h_s, \T00h_s + li \T04_s, 64-27 + and \T03l_s, \S23l_s, \T00l_s + vsrl.vx \S20_v, \S04_v, \T04_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + sw \T02l_s, 22*8(a0) + or \T03l_s, \T00l_s, \T01l_s + sw \T02h_s, 22*8+4(a0) + or \T03h_s, \T00h_s, \T01h_s + lw \T00l_s, 18*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + lw \T00h_s, 19*4(sp) + vxor.vv \S20_v, \S20_v, \T02_v + xor \S23l_s, \S23l_s, \T03l_s + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + or \T03h_s, \T01h_s, \S02h_s + or \T03l_s, \T01l_s, \S02l_s + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + lw \T04_s, 17*4(sp) + lw \T02l_s, 0(\T04_s) + vsll.vi \T03_v, \S24_v, 14 + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 16 + sw \T04_s, 17*4(sp) + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + li \T04_s, 64-14 + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + vsrl.vx \S04_v, \S24_v, \T04_s + not \T03h_s, \S02h_s + not \T03l_s, \S02l_s + or \T03h_s, \T03h_s, \T02h_s + or \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + sw \T03l_s, 1*8(a0) + sw \T03h_s, 1*8+4(a0) + and \T03h_s, \T02h_s, \S04h_s + and \T03l_s, \T02l_s, \S04l_s + vxor.vv \S04_v, \S04_v, \T03_v + xor \S02h_s, \S02h_s, \T03h_s + xor \S02l_s, \S02l_s, \T03l_s + or \T03h_s, \S04h_s, \T00h_s + or \T03l_s, \S04l_s, \T00l_s + xor \T03h_s, \T02h_s, \T03h_s + xor \T03l_s, \T02l_s, \T03l_s + sw \T03l_s, 3*8(a0) + li \T04_s, 64-2 + sw \T03h_s, 3*8+4(a0) + vsll.vi \T02_v, \S21_v, 2 + and \T03h_s, \T00h_s, \T01h_s + and \T03l_s, \T00l_s, \T01l_s + xor \S04h_s, \S04h_s, \T03h_s + xor \S04l_s, \S04l_s, \T03l_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00h_s, \S05h_s, \S10h_s + xor \T00l_s, \S05l_s, \S10l_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vsrl.vx \S24_v, \S21_v, \T04_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 18*4(sp) + vxor.vv \S24_v, \S24_v, \T02_v + sw \T00h_s, 19*4(sp) + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \T01h_s, \S08h_s, \S23h_s + xor \T01l_s, \S08l_s, \S23l_s + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + li \T04_s, 36 + xor \T01l_s, \T01l_s, \T03l_s + vsll.vx \T03_v, \S05_v, \T04_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + srli \T03h_s, \T00l_s, 31 + vsrl.vi \S21_v, \S05_v, 64-36 + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 31 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00h_s, \T00h_s, \T01h_s + xor \T00l_s, \T00l_s, \T01l_s + lw \T03l_s, 9*8(a0) + lw \T03h_s, 9*8+4(a0) + xor \T01h_s, \S04h_s, \S14h_s + vxor.vv \S21_v, \S21_v, \T03_v + xor \T01l_s, \S04l_s, \S14l_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S04l_s, \S04l_s, \T00l_s + xor \S14h_s, \S14h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + lw \T02l_s, 19*8(a0) + lw \T02h_s, 19*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + vor.vv \T02_v, \S11_v, \S07_v + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T02l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vxor.vv \S05_v, \S10_v, \T02_v + sw \T02l_s, 19*8(a0) + sw \T02h_s, 19*8+4(a0) + xor \T01h_s, \T01h_s, \T03h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + sw \T01l_s, 26*4(sp) + vand.vv \T03_v, \S07_v, \S08_v + sw \T01h_s, 27*4(sp) + lw \T03l_s, 1*8(a0) + lw \T03h_s, 1*8+4(a0) + xor \T00h_s, \S16h_s, \S21h_s + xor \T00l_s, \S16l_s, \S21l_s + lw \T02l_s, 6*8(a0) + lw \T02h_s, 6*8+4(a0) + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + lw \T03l_s, 11*8(a0) + vxor.vv \S06_v, \S11_v, \T03_v + lw \T03h_s, 11*8+4(a0) + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + srli \T03h_s, \T00l_s, 32-1 + slli \T00l_s, \T00l_s, 1 + vnot.v \T02_v, \S09_v + srli \T03l_s, \T00h_s, 32-1 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00h_s, \T00h_s, \T01h_s + xor \T00l_s, \T00l_s, \T01l_s + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + xor \S05h_s, \S05h_s, \T00h_s + xor \S05l_s, \S05l_s, \T00l_s + vor.vv \T02_v, \T02_v, \S08_v + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + xor \S10h_s, \S10h_s, \T00h_s + xor \S10l_s, \S10l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vxor.vv \S07_v, \S07_v, \T02_v + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + sw \T03l_s, 20*8(a0) + vor.vv \T03_v, \S09_v, \S10_v + sw \T03h_s, 20*8+4(a0) + lw \T02l_s, 24*4(sp) + lw \T02h_s, 25*4(sp) + lw \T00l_s, 20*4(sp) + lw \T00h_s, 21*4(sp) + srli \T03h_s, \T02l_s, 32-1 + slli \T02l_s, \T02l_s, 1 + srli \T03l_s, \T02h_s, 32-1 + slli \T02h_s, \T02h_s, 1 + vxor.vv \S08_v, \S08_v, \T03_v + xor \T02l_s, \T02l_s, \T03l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + lw \T03l_s, 7*8(a0) + lw \T03h_s, 7*8+4(a0) + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \S02l_s, \S17l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T00l_s, \T00l_s, \T03l_s + vand.vv \T02_v, \S10_v, \S11_v + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + xor \S02h_s, \S02h_s, \T02h_s + xor \S02l_s, \S02l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \S09_v, \S09_v, \T02_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + lw \T03h_s, 22*8+4(a0) + xor \S17h_s, \S17h_s, \T02h_s + xor \S17l_s, \S17l_s, \T02l_s + xor \T00h_s, \T00h_s, \T03h_s + vor.vv \T03_v, \S16_v, \S12_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + sw \T00l_s, 22*4(sp) + sw \T00h_s, 23*4(sp) + srli \T03h_s, \T01l_s, 32-1 + slli \T01l_s, \T01l_s, 1 + vxor.vv \S10_v, \S15_v, \T03_v + srli \T03l_s, \T01h_s, 32-1 + slli \T01h_s, \T01h_s, 1 + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + xor \T01h_s, \T01h_s, \T00h_s + xor \T01l_s, \T01l_s, \T00l_s + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08h_s, \S08h_s, \T01h_s + xor \S08l_s, \S08l_s, \T01l_s + vand.vv \T02_v, \S12_v, \S13_v + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + xor \S23h_s, \S23h_s, \T01h_s + xor \S23l_s, \S23l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + vxor.vv \S11_v, \S16_v, \T02_v + xor \T02l_s, \T02l_s, \T01l_s + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T03h_s, \T03h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + sw \T03l_s, 18*8(a0) + vnot.v \T03_v, \S13_v + sw \T03h_s, 18*8+4(a0) + lw \T01l_s, 18*4(sp) + lw \T01h_s, 19*4(sp) + srli \T03h_s, \T00l_s, 32-1 + slli \T00l_s, \T00l_s, 1 + srli \T03l_s, \T00h_s, 32-1 + slli \T00h_s, \T00h_s, 1 + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vand.vv \T03_v, \T03_v, \S14_v + xor \T00h_s, \T00h_s, \T01h_s + xor \T00l_s, \T00l_s, \T01l_s + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + xor \S16h_s, \S16h_s, \T00h_s + xor \S16l_s, \S16l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + vxor.vv \S12_v, \S12_v, \T03_v + lw \T03l_s, 6*8(a0) + lw \T03h_s, 6*8+4(a0) + xor \S21h_s, \S21h_s, \T00h_s + xor \S21l_s, \S21l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + xor \T03l_s, \T03l_s, \T00l_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + sw \T03l_s, 6*8(a0) + vnot.v \T03_v, \S13_v + sw \T03h_s, 6*8+4(a0) + xor \T02h_s, \T02h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T00l_s, 0*8(a0) + lw \T00h_s, 0*8+4(a0) + lw \T01l_s, 6*8(a0) + lw \T01h_s, 6*8+4(a0) + slli \T03l_s, \S21l_s, 2 + vor.vv \T02_v, \S14_v, \S15_v + srli \S21l_s, \S21l_s, 32-2 + srli \T03h_s, \S21h_s, 32-2 + xor \T03l_s, \T03l_s, \T03h_s + slli \T03h_s, \S21h_s, 2 + xor \T03h_s, \T03h_s, \S21l_s + slli \T02h_s, \T01l_s, 44-32 + srli \T01l_s, \T01l_s, 64-44 + slli \T02l_s, \T01h_s, 44-32 + xor \T01l_s, \T01l_s, \T02l_s + vxor.vv \S13_v, \T03_v, \T02_v + srli \T01h_s, \T01h_s, 64-44 + xor \T01h_s, \T01h_s, \T02h_s + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + slli \S21h_s, \S08l_s, 55-32 + srli \S08l_s, \S08l_s, 64-55 + srli \S21l_s, \S08h_s, 64-55 + xor \S21h_s, \S21h_s, \S21l_s + slli \S21l_s, \S08h_s, 55-32 + xor \S21l_s, \S21l_s, \S08l_s + vand.vv \T03_v, \S15_v, \S16_v + slli \S08h_s, \S16l_s, 45-32 + srli \S16l_s, \S16l_s, 64-45 + srli \S08l_s, \S16h_s, 64-45 + xor \S08h_s, \S08h_s, \S08l_s + slli \S08l_s, \S16h_s, 45-32 + xor \S08l_s, \S08l_s, \S16l_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + slli \S16h_s, \S05l_s, 36-32 + vxor.vv \S14_v, \S14_v, \T03_v + srli \S05l_s, \S05l_s, 64-36 + srli \S16l_s, \S05h_s, 64-36 + xor \S16h_s, \S16h_s, \S16l_s + slli \S16l_s, \S05h_s, 36-32 + xor \S16l_s, \S16l_s, \S05l_s + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + slli \S05l_s, \T02l_s, 28 + srli \T02l_s, \T02l_s, 32-28 + srli \S05h_s, \T02h_s, 32-28 + vand.vv \T02_v, \S21_v, \S17_v + xor \S05l_s, \S05l_s, \S05h_s + slli \S05h_s, \T02h_s, 28 + xor \S05h_s, \S05h_s, \T02l_s + slli \T02l_s, \T03l_s, 21 + srli \T03l_s, \T03l_s, 32-21 + srli \T02h_s, \T03h_s, 32-21 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \T03h_s, 21 + xor \T02h_s, \T02h_s, \T03l_s + vxor.vv \S15_v, \S20_v, \T02_v + lw \T03l_s, 13*8(a0) + lw \T03h_s, 13*8+4(a0) + sw \T02l_s, 3*8(a0) + sw \T02h_s, 3*8+4(a0) + srli \T02h_s, \T03l_s, 32-25 + slli \T03l_s, \T03l_s, 25 + srli \T02l_s, \T03h_s, 32-25 + slli \T03h_s, \T03h_s, 25 + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vor.vv \T03_v, \S17_v, \S18_v + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + slli \T02l_s, \S10l_s, 3 + srli \S10l_s, \S10l_s, 32-3 + srli \T02h_s, \S10h_s, 32-3 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S10h_s, 3 + xor \T02h_s, \T02h_s, \S10l_s + lw \T03l_s, 1*8(a0) + vxor.vv \S16_v, \S21_v, \T03_v + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + slli \S10l_s, \T03l_s, 1 + srli \T03l_s, \T03l_s, 32-1 + srli \S10h_s, \T03h_s, 32-1 + xor \S10l_s, \S10l_s, \S10h_s + slli \S10h_s, \T03h_s, 1 + xor \S10h_s, \S10h_s, \T03l_s + slli \T02l_s, \S02h_s, 62-32 + vnot.v \T02_v, \S18_v + srli \S02h_s, \S02h_s, 64-62 + srli \T02h_s, \S02l_s, 64-62 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S02l_s, 62-32 + xor \T02h_s, \T02h_s, \S02h_s + lw \T03l_s, 12*8(a0) + lw \T03h_s, 12*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + vor.vv \T02_v, \T02_v, \S19_v + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + slli \S02l_s, \T03h_s, 43-32 + srli \T03h_s, \T03h_s, 64-43 + srli \S02h_s, \T03l_s, 64-43 + xor \S02l_s, \S02l_s, \S02h_s + slli \S02h_s, \T03l_s, 43-32 + xor \S02h_s, \S02h_s, \T03h_s + slli \T03l_s, \T02l_s, 20 + srli \T02l_s, \T02l_s, 32-20 + vxor.vv \S17_v, \S17_v, \T02_v + srli \T03h_s, \T02h_s, 32-20 + xor \T03l_s, \T03l_s, \T03h_s + slli \T03h_s, \T02h_s, 20 + xor \T03h_s, \T03h_s, \T02l_s + lw \T02l_s, 22*8(a0) + lw \T02h_s, 22*8+4(a0) + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + slli \T03h_s, \T02l_s, 61-32 + vnot.v \T02_v, \S18_v + srli \T02l_s, \T02l_s, 64-61 + slli \T03l_s, \T02h_s, 61-32 + xor \T02l_s, \T02l_s, \T03l_s + srli \T02h_s, \T02h_s, 64-61 + xor \T02h_s, \T02h_s, \T03h_s + sw \T02l_s, 9*8(a0) + sw \T02h_s, 9*8+4(a0) + slli \T03l_s, \S14h_s, 39-32 + srli \S14h_s, \S14h_s, 64-39 + srli \T03h_s, \S14l_s, 64-39 + vand.vv \T03_v, \S19_v, \S20_v + xor \T03l_s, \T03l_s, \T03h_s + slli \T03h_s, \S14l_s, 39-32 + xor \T03h_s, \T03h_s, \S14h_s + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + slli \S14l_s, \T02l_s, 18 + srli \T02l_s, \T02l_s, 32-18 + vxor.vv \S18_v, \T02_v, \T03_v + srli \S14h_s, \T02h_s, 32-18 + xor \S14l_s, \S14l_s, \S14h_s + slli \S14h_s, \T02h_s, 18 + xor \S14h_s, \S14h_s, \T02l_s + slli \T02l_s, \S23h_s, 56-32 + srli \S23h_s, \S23h_s, 64-56 + srli \T02h_s, \S23l_s, 64-56 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S23l_s, 56-32 + xor \T02h_s, \T02h_s, \S23h_s + vor.vv \T02_v, \S20_v, \S21_v + lw \T03l_s, 15*8(a0) + lw \T03h_s, 15*8+4(a0) + sw \T02l_s, 20*8(a0) + sw \T02h_s, 20*8+4(a0) + slli \S23l_s, \T03h_s, 41-32 + srli \T03h_s, \T03h_s, 64-41 + srli \S23h_s, \T03l_s, 64-41 + xor \S23l_s, \S23l_s, \S23h_s + slli \S23h_s, \T03l_s, 41-32 + vxor.vv \S19_v, \S19_v, \T02_v + xor \S23h_s, \S23h_s, \T03h_s + slli \T02l_s, \S04l_s, 27 + srli \S04l_s, \S04l_s, 32-27 + srli \T02h_s, \S04h_s, 32-27 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S04h_s, 27 + xor \T02h_s, \T02h_s, \S04l_s + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + vnot.v \T03_v, \S01_v + sw \T02h_s, 15*8+4(a0) + slli \S04l_s, \T03l_s, 14 + srli \T03l_s, \T03l_s, 32-14 + srli \S04h_s, \T03h_s, 32-14 + xor \S04l_s, \S04l_s, \S04h_s + slli \S04h_s, \T03h_s, 14 + xor \S04h_s, \S04h_s, \T03l_s + slli \T02l_s, \S17l_s, 15 + srli \S17l_s, \S17l_s, 32-15 + vand.vv \T03_v, \T03_v, \S22_v + srli \T02h_s, \S17h_s, 32-15 + xor \T02l_s, \T02l_s, \T02h_s + slli \T02h_s, \S17h_s, 15 + xor \T02h_s, \T02h_s, \S17l_s + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + sw \T02l_s, 24*8(a0) + sw \T02h_s, 24*8+4(a0) + lw \T02h_s, 7*8(a0) + lw \T02l_s, 7*8+4(a0) + vxor.vv \S20_v, \S00_v, \T03_v + slli \S17l_s, \T03l_s, 10 + srli \T03l_s, \T03l_s, 32-10 + srli \S17h_s, \T03h_s, 32-10 + xor \S17l_s, \S17l_s, \S17h_s + slli \S17h_s, \T03h_s, 10 + xor \S17h_s, \S17h_s, \T03l_s + srli \T03h_s, \T02h_s, 32-6 + slli \T02h_s, \T02h_s, 6 + srli \T03l_s, \T02l_s, 32-6 + vnot.v \T03_v, \S01_v + slli \T02l_s, \T02l_s, 6 + xor \T02h_s, \T02h_s, \T03l_s + xor \T02l_s, \T02l_s, \T03h_s + lw \T03l_s, 19*8(a0) + lw \T03h_s, 19*8+4(a0) + sw \T02h_s, 11*8(a0) + sw \T02l_s, 11*8+4(a0) + srli \T02h_s, \T03l_s, 32-8 + slli \T03l_s, \T03l_s, 8 + srli \T02l_s, \T03h_s, 32-8 + vor.vv \T02_v, \S22_v, \S23_v + slli \T03h_s, \T03h_s, 8 + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + vxor.vv \S21_v, \T03_v, \T02_v + lw \T01l_s, 13*8(a0) + lw \T01h_s, 13*8+4(a0) + lw \T00l_s, 12*8(a0) + lw \T00h_s, 12*8+4(a0) + and \T03h_s, \T01h_s, \S08h_s + and \T03l_s, \T01l_s, \S08l_s + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + vand.vv \T03_v, \S23_v, \S24_v + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + not \T03h_s, \T02h_s + not \T03l_s, \T02l_s + or \T03h_s, \T03h_s, \S08h_s + or \T03l_s, \T03l_s, \S08l_s + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + sw \T03l_s, 7*8(a0) + vxor.vv \S22_v, \S22_v, \T03_v + sw \T03h_s, 7*8+4(a0) + or \T03h_s, \T02h_s, \S05h_s + or \T03l_s, \T02l_s, \S05l_s + xor \S08h_s, \S08h_s, \T03h_s + xor \S08l_s, \S08l_s, \T03l_s + and \T03h_s, \S05h_s, \T00h_s + and \T03l_s, \S05l_s, \T00l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + sw \T02l_s, 9*8(a0) + vor.vv \T02_v, \S24_v, \S00_v + or \T03l_s, \T00l_s, \T01l_s + sw \T02h_s, 9*8+4(a0) + or \T03h_s, \T00h_s, \T01h_s + lw \T01l_s, 19*8(a0) + xor \S05h_s, \S05h_s, \T03h_s + lw \T01h_s, 19*8+4(a0) + xor \S05l_s, \S05l_s, \T03l_s + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + vxor.vv \S23_v, \S23_v, \T02_v + lw \T00l_s, 18*8(a0) + lw \T00h_s, 18*8+4(a0) + not \T03h_s, \T01h_s + not \T03l_s, \T01l_s + and \T03h_s, \T03h_s, \S14h_s + and \T03l_s, \T03l_s, \S14l_s + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + sw \T03l_s, 12*8(a0) + sw \T03h_s, 12*8+4(a0) + vand.vv \T03_v, \S00_v, \S01_v + not \T04_s, \T01h_s + or \T03h_s, \S14h_s, \S10h_s + xor \T03h_s, \T03h_s, \T04_s + not \T04_s, \T01l_s + or \T03l_s, \S14l_s, \S10l_s + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 13*8(a0) + sw \T03h_s, 13*8+4(a0) + and \T03h_s, \S10h_s, \T02h_s + vxor.vv \S24_v, \S24_v, \T03_v + and \T03l_s, \S10l_s, \T02l_s + xor \S14h_s, \S14h_s, \T03h_s + xor \S14l_s, \S14l_s, \T03l_s + or \T03h_s, \T02h_s, \T00h_s + or \T03l_s, \T02l_s, \T00l_s + xor \S10h_s, \S10h_s, \T03h_s + xor \S10l_s, \S10l_s, \T03l_s + and \T03h_s, \T00h_s, \T01h_s + and \T03l_s, \T00l_s, \T01l_s + xor \T02h_s, \T02h_s, \T03h_s + vor.vv \T02_v, \T01_v, \S02_v + xor \T02l_s, \T02l_s, \T03l_s + lw \T01l_s, 20*8(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + sw \T02h_s, 11*8+4(a0) + lw \T00l_s, 24*8(a0) + lw \T00h_s, 24*8+4(a0) + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vxor.vv \S00_v, \T00_v, \T02_v + not \T04_s, \T00h_s + and \T03h_s, \T01h_s, \T02h_s + xor \T03h_s, \T03h_s, \T04_s + not \T04_s, \T00l_s + and \T03l_s, \T01l_s, \T02l_s + xor \T03l_s, \T03l_s, \T04_s + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + or \T03h_s, \T02h_s, \S16h_s + or \T03l_s, \T02l_s, \S16l_s + vnot.v \T03_v, \S02_v + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + and \T03h_s, \S16h_s, \S17h_s + and \T03l_s, \S16l_s, \S17l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + sw \T02l_s, 15*8(a0) + vor.vv \T03_v, \T03_v, \S03_v + sw \T02h_s, 15*8+4(a0) + or \T03h_s, \S17h_s, \T00h_s + or \T03l_s, \S17l_s, \T00l_s + xor \S16h_s, \S16h_s, \T03h_s + xor \S16l_s, \S16l_s, \T03l_s + lw \T02l_s, 22*8(a0) + not \T03h_s, \T00h_s + lw \T02h_s, 22*8+4(a0) + not \T03l_s, \T00l_s + lw \T00l_s, 0*8(a0) + vxor.vv \S01_v, \T01_v, \T03_v + or \T03h_s, \T03h_s, \T01h_s + lw \T00h_s, 0*8+4(a0) + or \T03l_s, \T03l_s, \T01l_s + lw \T01l_s, 1*8(a0) + xor \S17h_s, \S17h_s, \T03h_s + lw \T01h_s, 1*8+4(a0) + xor \S17l_s, \S17l_s, \T03l_s + and \T03h_s, \T01h_s, \S21h_s + and \T03l_s, \T01l_s, \S21l_s + vand.vv \T02_v, \S03_v, \S04_v + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + sw \T03l_s, 24*8(a0) + sw \T03h_s, 24*8+4(a0) + not \T03h_s, \S21h_s + not \T03l_s, \S21l_s + and \T03h_s, \T03h_s, \T02h_s + and \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + vxor.vv \S02_v, \S02_v, \T02_v + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + not \T04_s, \S21h_s + or \T03h_s, \T02h_s, \S23h_s + xor \S21h_s, \T03h_s, \T04_s + not \T04_s, \S21l_s + or \T03l_s, \T02l_s, \S23l_s + xor \S21l_s, \T03l_s, \T04_s + and \T03h_s, \S23h_s, \T00h_s + vor.vv \T03_v, \S04_v, \T00_v + and \T03l_s, \S23l_s, \T00l_s + xor \T02h_s, \T02h_s, \T03h_s + xor \T02l_s, \T02l_s, \T03l_s + sw \T02l_s, 22*8(a0) + or \T03l_s, \T00l_s, \T01l_s + sw \T02h_s, 22*8+4(a0) + or \T03h_s, \T00h_s, \T01h_s + lw \T00l_s, 18*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + lw \T00h_s, 19*4(sp) + vxor.vv \S03_v, \S03_v, \T03_v + xor \S23l_s, \S23l_s, \T03l_s + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + or \T03h_s, \T01h_s, \S02h_s + or \T03l_s, \T01l_s, \S02l_s + xor \T03h_s, \T00h_s, \T03h_s + xor \T03l_s, \T00l_s, \T03l_s + lw \T04_s, 17*4(sp) + lw \T02l_s, 0(\T04_s) + vand.vv \T02_v, \T00_v, \T01_v + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 16 + sw \T04_s, 17*4(sp) + xor \T03h_s, \T03h_s, \T02h_s + xor \T03l_s, \T03l_s, \T02l_s + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + not \T03h_s, \S02h_s + vxor.vv \S04_v, \S04_v, \T02_v + not \T03l_s, \S02l_s + or \T03h_s, \T03h_s, \T02h_s + or \T03l_s, \T03l_s, \T02l_s + lw \T04_s, 29*4(sp) + xor \T03h_s, \T01h_s, \T03h_s + xor \T03l_s, \T01l_s, \T03l_s + sw \T03l_s, 1*8(a0) + sw \T03h_s, 1*8+4(a0) + and \T03h_s, \T02h_s, \S04h_s + and \T03l_s, \T02l_s, \S04l_s + vle64.v \T00_v, 0(\T04_s) + xor \S02h_s, \S02h_s, \T03h_s + xor \S02l_s, \S02l_s, \T03l_s + or \T03h_s, \S04h_s, \T00h_s + or \T03l_s, \S04l_s, \T00l_s + xor \T03h_s, \T02h_s, \T03h_s + xor \T03l_s, \T02l_s, \T03l_s + vxor.vv \S00_v, \S00_v, \T00_v + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + and \T03h_s, \T00h_s, \T01h_s + and \T03l_s, \T00l_s, \T01l_s + xor \S04h_s, \S04h_s, \T03h_s + addi \T04_s, \T04_s, 16 + xor \S04l_s, \S04l_s, \T03l_s + sw \T04_s, 29*4(sp) +.endm + +# stack: +# 0*4-14*4 for saving registers +# 15*4 for saving a0 +# 16*4 for loop control +# 17*4 for table index of scalar impl +# 18*4,19*4 for C0 +# 20*4,21*4 for C1 +# 22*4,23*4 for C2 +# 24*4,25*4 for C3 +# 26*4,27*4 for C4 +# 28*4 for temporary usage +# 29*4 for table index of vector impl +# 30*4 for outer loop control variable j +.globl KeccakF1600_StatePermute_RV32V_5x +.align 2 +KeccakF1600_StatePermute_RV32V_5x: + addi sp, sp, -4*31 + SaveRegs + sw a0, 15*4(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sw s11, 30*4(sp) + # prepare table index + la tp, constants_keccak + sw tp, 17*4(sp) + bnez s11, init_1th_loop +init_0th_loop: + sw tp, 29*4(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + li tp, 8 +inner_loop: + sw tp, 16*4(sp) + ARound \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp + lw tp, 16*4(sp) + addi tp, tp, -1 + bnez tp, inner_loop + + lw a0, 15*4(sp) + lw s11, 30*4(sp) + addi gp, s11, -2 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*16 + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,ra, gp, tp + addi s11, s11, 1 + li ra, 3 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 4*31 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv32v.s b/examples/naive/riscv/keccak/fips202_rv32v.s new file mode 100644 index 000000000..3f28d77e7 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32v.s @@ -0,0 +1,401 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008008 +.quad 0x8000000080008008 + +.text + +.macro LoadStates + # lane complement: 1,2,8,12,17,20 + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, -24*16 +.endm + +.macro StoreStates + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) +.endm + +.macro XOR5_x2 \ + out_0_v, S0_00_v, S0_01_v, S0_02_v, S0_03_v, S0_04_v, \ + out_1_v, S1_00_v, S1_01_v, S1_02_v, S1_03_v, S1_04_v + vxor.vv \out_0_v, \S0_00_v, \S0_01_v + vxor.vv \out_1_v, \S1_00_v, \S1_01_v + vxor.vv \out_0_v, \out_0_v, \S0_02_v + vxor.vv \out_1_v, \out_1_v, \S1_02_v + vxor.vv \out_0_v, \out_0_v, \S0_03_v + vxor.vv \out_1_v, \out_1_v, \S1_03_v + vxor.vv \out_0_v, \out_0_v, \S0_04_v + vxor.vv \out_1_v, \out_1_v, \S1_04_v +.endm + +.macro XOR5_x3 \ + out_0_v, S0_00_v, S0_01_v, S0_02_v, S0_03_v, S0_04_v, \ + out_1_v, S1_00_v, S1_01_v, S1_02_v, S1_03_v, S1_04_v, \ + out_2_v, S2_00_v, S2_01_v, S2_02_v, S2_03_v, S2_04_v + vxor.vv \out_0_v, \S0_00_v, \S0_01_v + vxor.vv \out_1_v, \S1_00_v, \S1_01_v + vxor.vv \out_2_v, \S2_00_v, \S2_01_v + vxor.vv \out_0_v, \out_0_v, \S0_02_v + vxor.vv \out_1_v, \out_1_v, \S1_02_v + vxor.vv \out_2_v, \out_2_v, \S2_02_v + vxor.vv \out_0_v, \out_0_v, \S0_03_v + vxor.vv \out_1_v, \out_1_v, \S1_03_v + vxor.vv \out_2_v, \out_2_v, \S2_03_v + vxor.vv \out_0_v, \out_0_v, \S0_04_v + vxor.vv \out_1_v, \out_1_v, \S1_04_v + vxor.vv \out_2_v, \out_2_v, \S2_04_v +.endm + +.macro ROLn_li out_0_v, in_0_v, tmp_0_v, n, tmp_0_s +.if \n < 32 + li \tmp_0_s, 64-\n + vsll.vi \tmp_0_v, \in_0_v, \n + vsrl.vx \out_0_v, \in_0_v, \tmp_0_s + vxor.vv \out_0_v, \out_0_v, \tmp_0_v +.else + li \tmp_0_s, \n + vsll.vx \tmp_0_v, \in_0_v, \tmp_0_s + vsrl.vi \out_0_v, \in_0_v, 64-\n + vxor.vv \out_0_v, \out_0_v, \tmp_0_v +.endif +.endm + +# tmp_0_s is ready for using; if n<32: tmp_0_s=64-n; else: tmp_0_s=n +.macro ROLn out_0_v, in_0_v, tmp_0_v, n, tmp_0_s +.if \n < 32 + vsll.vi \tmp_0_v, \in_0_v, \n + vsrl.vx \out_0_v, \in_0_v, \tmp_0_s + vxor.vv \out_0_v, \out_0_v, \tmp_0_v +.else + vsll.vx \tmp_0_v, \in_0_v, \tmp_0_s + vsrl.vi \out_0_v, \in_0_v, 64-\n + vxor.vv \out_0_v, \out_0_v, \tmp_0_v +.endif +.endm + +# out = in0 ^ ROL(in1, 1); tmp_0_s=64-1 is ready for using +.macro ROL1_XOR out_0_v, in_0_0_v, in_0_1_v, tmp_0_v, tmp_0_s + vsll.vi \tmp_0_v, \in_0_1_v, 1 + vsrl.vx \out_0_v, \in_0_1_v, \tmp_0_s + vxor.vv \out_0_v, \out_0_v, \tmp_0_v + vxor.vv \out_0_v, \out_0_v, \in_0_0_v +.endm + +.macro ROL1_XOR_x2 \ + out_0_v, in_0_0_v, in_0_1_v, tmp_0_v, \ + out_1_v, in_1_0_v, in_1_1_v, tmp_1_v, \ + tmp_0_s + vsll.vi \tmp_0_v, \in_0_1_v, 1 + vsll.vi \tmp_1_v, \in_1_1_v, 1 + vsrl.vx \out_0_v, \in_0_1_v, \tmp_0_s + vsrl.vx \out_1_v, \in_1_1_v, \tmp_0_s + vxor.vv \out_0_v, \out_0_v, \tmp_0_v + vxor.vv \out_1_v, \out_1_v, \tmp_1_v + vxor.vv \out_0_v, \out_0_v, \in_0_0_v + vxor.vv \out_1_v, \out_1_v, \in_1_0_v +.endm + +.macro EachXOR S0_00_v, S0_01_v, S0_02_v, S0_03_v, S0_04_v, D_v + vxor.vv \S0_00_v, \S0_00_v, \D_v + vxor.vv \S0_01_v, \S0_01_v, \D_v + vxor.vv \S0_02_v, \S0_02_v, \D_v + vxor.vv \S0_03_v, \S0_03_v, \D_v + vxor.vv \S0_04_v, \S0_04_v, \D_v +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + T05_v, T06_v, T00_s, T01_s + # theta - start + # T00,T01,T02=C1,C4,C3 + XOR5_x3 \ + \T00_v, \S01_v, \S06_v, \S11_v, \S16_v, \S21_v, \ + \T01_v, \S04_v, \S09_v, \S14_v, \S19_v, \S24_v, \ + \T02_v, \S03_v, \S08_v, \S13_v, \S18_v, \S23_v + # T03,T04=D0,D2 + li \T00_s, 64-1 + ROL1_XOR_x2 \ + \T03_v, \T01_v, \T00_v, \T05_v, \ + \T04_v, \T00_v, \T02_v, \T06_v, \T00_s + # T01,T02,T05,T06=C4,C3,C0,C2; T03,T04=D0,D2; T00: empty + XOR5_x2 \ + \T05_v, \S00_v, \S05_v, \S10_v, \S15_v, \S20_v, \ + \T06_v, \S02_v, \S07_v, \S12_v, \S17_v, \S22_v + EachXOR \S00_v, \S05_v, \S10_v, \S15_v, \S20_v, \T03_v + vxor.vv \S02_v, \S02_v, \T04_v + vxor.vv \S07_v, \S07_v, \T04_v + vxor.vv \S12_v, \S12_v, \T04_v + vsll.vi \T03_v, \T01_v, 1 + vsrl.vx \T00_v, \T01_v, \T00_s + vxor.vv \S17_v, \S17_v, \T04_v + vxor.vv \S22_v, \S22_v, \T04_v + vxor.vv \T00_v, \T00_v, \T03_v + vxor.vv \T00_v, \T00_v, \T06_v + # T02,T05,T06=C3,C0,C2; T00:D3; T01,T03,T04: empty + EachXOR \S03_v, \S08_v, \S13_v, \S18_v, \S23_v, \T00_v + # T01,T04=D1,D4 + ROL1_XOR_x2 \ + \T01_v, \T05_v, \T06_v, \T00_v \ + \T04_v, \T02_v, \T05_v, \T03_v, \T00_s + EachXOR \S01_v, \S06_v, \S11_v, \S16_v, \S21_v, \T01_v + EachXOR \S04_v, \S09_v, \S14_v, \S19_v, \S24_v, \T04_v + vmv.v.v \T00_v, \S00_v + # theta - end + # Rho & Pi & Chi - start + li \T00_s, 44 + vsrl.vi \T01_v, \S06_v, 20 + vsll.vx \T02_v, \S06_v, \T00_s + li \T00_s, 62 + vsrl.vi \S00_v, \S02_v, 2 + vsll.vx \T03_v, \S02_v, \T00_s + vxor.vv \T01_v, \T01_v, \T02_v + vxor.vv \S00_v, \S00_v, \T03_v + li \T00_s, 43 + vsrl.vi \S02_v, \S12_v, 21 + vsll.vx \T02_v, \S12_v, \T00_s + li \T00_s, 39 + vsll.vi \T03_v, \S13_v, 25 + vsrl.vx \S12_v, \S13_v, \T00_s + vxor.vv \S02_v, \S02_v, \T02_v + vxor.vv \S12_v, \S12_v, \T03_v + li \T00_s, 56 + vsll.vi \T02_v, \S19_v, 8 + vsrl.vx \S13_v, \S19_v, \T00_s + li \T00_s, 56 + vsrl.vi \S19_v, \S23_v, 8 + vsll.vx \T03_v, \S23_v, \T00_s + vxor.vv \S13_v, \S13_v, \T02_v + vxor.vv \S19_v, \S19_v, \T03_v + li \T00_s, 41 + vsrl.vi \S23_v, \S15_v, 23 + vsll.vx \T02_v, \S15_v, \T00_s + li \T00_s, 63 + vsll.vi \T03_v, \S01_v, 1 + vsrl.vx \S15_v, \S01_v, \T00_s + vxor.vv \S23_v, \S23_v, \T02_v + vxor.vv \S15_v, \S15_v, \T03_v + li \T00_s, 55 + vsrl.vi \S01_v, \S08_v, 9 + vsll.vx \T02_v, \S08_v, \T00_s + li \T00_s, 45 + vsrl.vi \S08_v, \S16_v, 19 + vsll.vx \T03_v, \S16_v, \T00_s + vxor.vv \S01_v, \S01_v, \T02_v + vxor.vv \S08_v, \S08_v, \T03_v + li \T00_s, 58 + vsll.vi \T02_v, \S07_v, 6 + vsrl.vx \S16_v, \S07_v, \T00_s + li \T00_s, 61 + vsll.vi \T03_v, \S10_v, 3 + vsrl.vx \S07_v, \S10_v, \T00_s + vxor.vv \S16_v, \S16_v, \T02_v + vxor.vv \S07_v, \S07_v, \T03_v + li \T00_s, 36 + vsll.vi \T02_v, \S03_v, 28 + vsrl.vx \S10_v, \S03_v, \T00_s + li \T00_s, 43 + vsll.vi \T03_v, \S18_v, 21 + vsrl.vx \S03_v, \S18_v, \T00_s + vxor.vv \S10_v, \S10_v, \T02_v + vxor.vv \S03_v, \S03_v, \T03_v + li \T00_s, 49 + vsll.vi \T02_v, \S17_v, 15 + vsrl.vx \S18_v, \S17_v, \T00_s + li \T00_s, 54 + vsll.vi \T03_v, \S11_v, 10 + vsrl.vx \S17_v, \S11_v, \T00_s + vxor.vv \S18_v, \S18_v, \T02_v + vxor.vv \S17_v, \S17_v, \T03_v + li \T00_s, 44 + vsll.vi \T02_v, \S09_v, 20 + vsrl.vx \S11_v, \S09_v, \T00_s + li \T00_s, 61 + vsrl.vi \S09_v, \S22_v, 3 + vsll.vx \T03_v, \S22_v, \T00_s + vxor.vv \S11_v, \S11_v, \T02_v + vxor.vv \S09_v, \S09_v, \T03_v + li \T00_s, 39 + vsrl.vi \S22_v, \S14_v, 25 + vsll.vx \T02_v, \S14_v, \T00_s + li \T00_s, 46 + vsll.vi \T03_v, \S20_v, 18 + vsrl.vx \S14_v, \S20_v, \T00_s + vxor.vv \S22_v, \S22_v, \T02_v + vxor.vv \S14_v, \S14_v, \T03_v + li \T00_s, 37 + vsll.vi \T02_v, \S04_v, 27 + vsrl.vx \S20_v, \S04_v, \T00_s + li \T00_s, 50 + vsll.vi \T03_v, \S24_v, 14 + vsrl.vx \S04_v, \S24_v, \T00_s + vxor.vv \S20_v, \S20_v, \T02_v + vxor.vv \S04_v, \S04_v, \T03_v + li \T00_s, 62 + vsll.vi \T02_v, \S21_v, 2 + vsrl.vx \S24_v, \S21_v, \T00_s + li \T00_s, 36 + vsrl.vi \S21_v, \S05_v, 28 + vsll.vx \T03_v, \S05_v, \T00_s + vxor.vv \S24_v, \S24_v, \T02_v + vxor.vv \S21_v, \S21_v, \T03_v + vor.vv \T02_v, \S11_v, \S07_v + vand.vv \T03_v, \S07_v, \S08_v + vnot.v \T04_v, \S09_v + vor.vv \T05_v, \S09_v, \S10_v + vxor.vv \S05_v, \S10_v, \T02_v + vor.vv \T04_v, \T04_v, \S08_v + vxor.vv \S06_v, \S11_v, \T03_v + vxor.vv \S07_v, \S07_v, \T04_v + vxor.vv \S08_v, \S08_v, \T05_v + vand.vv \T02_v, \S10_v, \S11_v + vor.vv \T03_v, \S16_v, \S12_v + vnot.v \T05_v, \S13_v + vand.vv \T04_v, \S12_v, \S13_v + vxor.vv \S09_v, \S09_v, \T02_v + vand.vv \T05_v, \T05_v, \S14_v + vxor.vv \S10_v, \S15_v, \T03_v + vxor.vv \S11_v, \S16_v, \T04_v + vxor.vv \S12_v, \S12_v, \T05_v + vnot.v \T03_v, \S13_v + vand.vv \T04_v, \S15_v, \S16_v + vand.vv \T05_v, \S21_v, \S17_v + vor.vv \T02_v, \S14_v, \S15_v + vxor.vv \S14_v, \S14_v, \T04_v + vxor.vv \S15_v, \S20_v, \T05_v + vxor.vv \S13_v, \T03_v, \T02_v + vnot.v \T03_v, \S18_v + vnot.v \T05_v, \S18_v + vor.vv \T02_v, \S17_v, \S18_v + vor.vv \T03_v, \T03_v, \S19_v + vand.vv \T04_v, \S19_v, \S20_v + vxor.vv \S16_v, \S21_v, \T02_v + vxor.vv \S17_v, \S17_v, \T03_v + vxor.vv \S18_v, \T05_v, \T04_v + vnot.v \T03_v, \S01_v + vnot.v \T05_v, \S01_v + vor.vv \T02_v, \S20_v, \S21_v + vand.vv \T03_v, \T03_v, \S22_v + vor.vv \T04_v, \S22_v, \S23_v + vxor.vv \S19_v, \S19_v, \T02_v + vxor.vv \S20_v, \S00_v, \T03_v + vxor.vv \S21_v, \T05_v, \T04_v + vand.vv \T02_v, \S23_v, \S24_v + vor.vv \T03_v, \S24_v, \S00_v + vand.vv \T04_v, \S00_v, \S01_v + vor.vv \T05_v, \T01_v, \S02_v + vxor.vv \S22_v, \S22_v, \T02_v + vxor.vv \S23_v, \S23_v, \T03_v + vxor.vv \S24_v, \S24_v, \T04_v + vxor.vv \S00_v, \T00_v, \T05_v + vnot.v \T02_v, \S02_v + vor.vv \T04_v, \S04_v, \T00_v + vand.vv \T03_v, \S03_v, \S04_v + vand.vv \T05_v, \T00_v, \T01_v + vle64.v \T00_v, 0(\T01_s) + vor.vv \T02_v, \T02_v, \S03_v + vxor.vv \S02_v, \S02_v, \T03_v + vxor.vv \S03_v, \S03_v, \T04_v + vxor.vv \S01_v, \T01_v, \T02_v + vxor.vv \S04_v, \S04_v, \T05_v + vxor.vv \S00_v, \S00_v, \T00_v + addi \T01_s, \T01_s, 16 +.endm + +.globl KeccakF1600_StatePermute_RV32V_2x +.align 2 +KeccakF1600_StatePermute_RV32V_2x: + vsetivli a2, 2, e64, m1, tu, mu + + LoadStates + + # a2: loop control variable i + # a3: table index + li a2, 24 + la a3, constants_keccak + +loop: + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + v30, v31, a4, a3 + addi a2, a2, -1 + bnez a2, loop + + StoreStates + + ret diff --git a/examples/naive/riscv/keccak/fips202_rv32v_unroll.s b/examples/naive/riscv/keccak/fips202_rv32v_unroll.s new file mode 100644 index 000000000..6d672eb88 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv32v_unroll.s @@ -0,0 +1,476 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +#ifdef V0p7 +.macro LoadStates + # lane complement: 1,2,8,12,17,20 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, -24*16 +.endm +#else +.macro LoadStates + # lane complement: 1,2,8,12,17,20 + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, -24*16 +.endm +#endif + +#ifdef V0p7 +.macro StoreStates + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) +.endm +#else +.macro StoreStates + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) +.endm +#endif + +.macro ARoundInPlace S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + Ts0, Ts1 + vxor.vv \T00_v, \S00_v, \S05_v + vxor.vv \T00_v, \T00_v, \S10_v + vxor.vv \T00_v, \T00_v, \S15_v + vxor.vv \T00_v, \T00_v, \S20_v + vxor.vv \T01_v, \S02_v, \S07_v + vxor.vv \T01_v, \T01_v, \S12_v + vxor.vv \T01_v, \T01_v, \S17_v + vxor.vv \T01_v, \T01_v, \S22_v + li \Ts0, 64-1 + vsll.vi \T03_v, \T01_v, 1 + vsrl.vx \T02_v, \T01_v, \Ts0 + vxor.vv \T02_v, \T02_v, \T03_v + vxor.vv \T02_v, \T02_v, \T00_v + vxor.vv \T03_v, \S01_v, \S06_v + vxor.vv \T03_v, \T03_v, \S11_v + vxor.vv \T03_v, \T03_v, \S16_v + vxor.vv \T03_v, \T03_v, \S21_v + vxor.vv \S01_v, \S01_v, \T02_v + vxor.vv \S06_v, \S06_v, \T02_v + vxor.vv \S11_v, \S11_v, \T02_v + vxor.vv \S16_v, \S16_v, \T02_v + vxor.vv \S21_v, \S21_v, \T02_v + vxor.vv \T02_v, \S04_v, \S09_v + vxor.vv \T02_v, \T02_v, \S14_v + vxor.vv \T02_v, \T02_v, \S19_v + vxor.vv \T02_v, \T02_v, \S24_v + vsll.vi \T04_v, \T02_v, 1 + vxor.vv \T01_v, \T01_v, \T04_v + li \Ts0, 63 + vsrl.vx \T04_v, \T02_v, \Ts0 + vxor.vv \T01_v, \T01_v, \T04_v + vxor.vv \T04_v, \S03_v, \S08_v + vxor.vv \T04_v, \T04_v, \S13_v + vxor.vv \T04_v, \T04_v, \S18_v + vxor.vv \T04_v, \T04_v, \S23_v + vxor.vv \S03_v, \S03_v, \T01_v + vxor.vv \S08_v, \S08_v, \T01_v + vxor.vv \S13_v, \S13_v, \T01_v + vxor.vv \S18_v, \S18_v, \T01_v + vxor.vv \S23_v, \S23_v, \T01_v + li \Ts0, 64-1 + vsll.vi \T01_v, \T00_v, 1 + vsrl.vx \T00_v, \T00_v, \Ts0 + vxor.vv \T00_v, \T00_v, \T01_v + vxor.vv \T00_v, \T00_v, \T04_v + vxor.vv \S04_v, \S04_v, \T00_v + vxor.vv \S09_v, \S09_v, \T00_v + vxor.vv \S14_v, \S14_v, \T00_v + vxor.vv \S19_v, \S19_v, \T00_v + vxor.vv \S24_v, \S24_v, \T00_v + li \Ts0, 64-1 + vsll.vi \T01_v, \T04_v, 1 + vsrl.vx \T04_v, \T04_v, \Ts0 + vxor.vv \T04_v, \T04_v, \T01_v + vxor.vv \T04_v, \T04_v, \T03_v + vxor.vv \S02_v, \S02_v, \T04_v + vxor.vv \S07_v, \S07_v, \T04_v + vxor.vv \S12_v, \S12_v, \T04_v + vxor.vv \S17_v, \S17_v, \T04_v + vxor.vv \S22_v, \S22_v, \T04_v + li \Ts0, 64-1 + vsll.vi \T01_v, \T03_v, 1 + vsrl.vx \T03_v, \T03_v, \Ts0 + vxor.vv \T03_v, \T03_v, \T01_v + vxor.vv \T03_v, \T03_v, \T02_v + vxor.vv \S05_v, \S05_v, \T03_v + vxor.vv \S10_v, \S10_v, \T03_v + vxor.vv \S15_v, \S15_v, \T03_v + vxor.vv \S20_v, \S20_v, \T03_v + vxor.vv \T00_v, \S00_v, \T03_v + li \Ts0, 44 + vsll.vx \T02_v, \S06_v, \Ts0 + vsrl.vi \T01_v, \S06_v, 64-44 + vxor.vv \T01_v, \T01_v, \T02_v + li \Ts0, 62 + vsll.vx \T03_v, \S02_v, \Ts0 + vsrl.vi \S00_v, \S02_v, 64-62 + vxor.vv \S00_v, \S00_v, \T03_v + li \Ts0, 43 + vsll.vx \T02_v, \S12_v, \Ts0 + vsrl.vi \S02_v, \S12_v, 64-43 + vxor.vv \S02_v, \S02_v, \T02_v + li \Ts0, 64-25 + vsll.vi \T03_v, \S13_v, 25 + vsrl.vx \S12_v, \S13_v, \Ts0 + vxor.vv \S12_v, \S12_v, \T03_v + li \Ts0, 64-8 + vsll.vi \T02_v, \S19_v, 8 + vsrl.vx \S13_v, \S19_v, \Ts0 + vxor.vv \S13_v, \S13_v, \T02_v + li \Ts0, 56 + vsll.vx \T03_v, \S23_v, \Ts0 + vsrl.vi \S19_v, \S23_v, 64-56 + vxor.vv \S19_v, \S19_v, \T03_v + li \Ts0, 41 + vsll.vx \T02_v, \S15_v, \Ts0 + vsrl.vi \S23_v, \S15_v, 64-41 + vxor.vv \S23_v, \S23_v, \T02_v + li \Ts0, 64-1 + vsll.vi \T03_v, \S01_v, 1 + vsrl.vx \S15_v, \S01_v, \Ts0 + vxor.vv \S15_v, \S15_v, \T03_v + li \Ts0, 55 + vsll.vx \T02_v, \S08_v, \Ts0 + vsrl.vi \S01_v, \S08_v, 64-55 + vxor.vv \S01_v, \S01_v, \T02_v + li \Ts0, 45 + vsll.vx \T03_v, \S16_v, \Ts0 + vsrl.vi \S08_v, \S16_v, 64-45 + vxor.vv \S08_v, \S08_v, \T03_v + li \Ts0, 64-6 + vsll.vi \T02_v, \S07_v, 6 + vsrl.vx \S16_v, \S07_v, \Ts0 + vxor.vv \S16_v, \S16_v, \T02_v + li \Ts0, 64-3 + vsll.vi \T03_v, \S10_v, 3 + vsrl.vx \S07_v, \S10_v, \Ts0 + vxor.vv \S07_v, \S07_v, \T03_v + li \Ts0, 64-28 + vsll.vi \T02_v, \S03_v, 28 + vsrl.vx \S10_v, \S03_v, \Ts0 + vxor.vv \S10_v, \S10_v, \T02_v + li \Ts0, 64-21 + vsll.vi \T03_v, \S18_v, 21 + vsrl.vx \S03_v, \S18_v, \Ts0 + vxor.vv \S03_v, \S03_v, \T03_v + li \Ts0, 64-15 + vsll.vi \T02_v, \S17_v, 15 + vsrl.vx \S18_v, \S17_v, \Ts0 + vxor.vv \S18_v, \S18_v, \T02_v + li \Ts0, 64-10 + vsll.vi \T03_v, \S11_v, 10 + vsrl.vx \S17_v, \S11_v, \Ts0 + vxor.vv \S17_v, \S17_v, \T03_v + li \Ts0, 64-20 + vsll.vi \T02_v, \S09_v, 20 + vsrl.vx \S11_v, \S09_v, \Ts0 + vxor.vv \S11_v, \S11_v, \T02_v + li \Ts0, 61 + vsll.vx \T03_v, \S22_v, \Ts0 + vsrl.vi \S09_v, \S22_v, 64-61 + vxor.vv \S09_v, \S09_v, \T03_v + li \Ts0, 39 + vsll.vx \T02_v, \S14_v, \Ts0 + vsrl.vi \S22_v, \S14_v, 64-39 + vxor.vv \S22_v, \S22_v, \T02_v + li \Ts0, 64-18 + vsll.vi \T03_v, \S20_v, 18 + vsrl.vx \S14_v, \S20_v, \Ts0 + vxor.vv \S14_v, \S14_v, \T03_v + li \Ts0, 64-27 + vsll.vi \T02_v, \S04_v, 27 + vsrl.vx \S20_v, \S04_v, \Ts0 + vxor.vv \S20_v, \S20_v, \T02_v + li \Ts0, 64-14 + vsll.vi \T03_v, \S24_v, 14 + vsrl.vx \S04_v, \S24_v, \Ts0 + vxor.vv \S04_v, \S04_v, \T03_v + li \Ts0, 64-2 + vsll.vi \T02_v, \S21_v, 2 + vsrl.vx \S24_v, \S21_v, \Ts0 + vxor.vv \S24_v, \S24_v, \T02_v + li \Ts0, 36 + vsll.vx \T03_v, \S05_v, \Ts0 + vsrl.vi \S21_v, \S05_v, 64-36 + vxor.vv \S21_v, \S21_v, \T03_v + vor.vv \T02_v, \S11_v, \S07_v + vxor.vv \S05_v, \S10_v, \T02_v + vand.vv \T03_v, \S07_v, \S08_v + vxor.vv \S06_v, \S11_v, \T03_v + vnot.v \T02_v, \S09_v + vor.vv \T02_v, \T02_v, \S08_v + vxor.vv \S07_v, \S07_v, \T02_v + vor.vv \T03_v, \S09_v, \S10_v + vxor.vv \S08_v, \S08_v, \T03_v + vand.vv \T02_v, \S10_v, \S11_v + vxor.vv \S09_v, \S09_v, \T02_v + vor.vv \T03_v, \S16_v, \S12_v + vxor.vv \S10_v, \S15_v, \T03_v + vand.vv \T02_v, \S12_v, \S13_v + vxor.vv \S11_v, \S16_v, \T02_v + vnot.v \T03_v, \S13_v + vand.vv \T03_v, \T03_v, \S14_v + vxor.vv \S12_v, \S12_v, \T03_v + vnot.v \T03_v, \S13_v + vor.vv \T02_v, \S14_v, \S15_v + vxor.vv \S13_v, \T03_v, \T02_v + vand.vv \T03_v, \S15_v, \S16_v + vxor.vv \S14_v, \S14_v, \T03_v + vand.vv \T02_v, \S21_v, \S17_v + vxor.vv \S15_v, \S20_v, \T02_v + vor.vv \T03_v, \S17_v, \S18_v + vxor.vv \S16_v, \S21_v, \T03_v + vnot.v \T02_v, \S18_v + vor.vv \T02_v, \T02_v, \S19_v + vxor.vv \S17_v, \S17_v, \T02_v + vnot.v \T02_v, \S18_v + vand.vv \T03_v, \S19_v, \S20_v + vxor.vv \S18_v, \T02_v, \T03_v + vor.vv \T02_v, \S20_v, \S21_v + vxor.vv \S19_v, \S19_v, \T02_v + vnot.v \T03_v, \S01_v + vand.vv \T03_v, \T03_v, \S22_v + vxor.vv \S20_v, \S00_v, \T03_v + vnot.v \T03_v, \S01_v + vor.vv \T02_v, \S22_v, \S23_v + vxor.vv \S21_v, \T03_v, \T02_v + vand.vv \T03_v, \S23_v, \S24_v + vxor.vv \S22_v, \S22_v, \T03_v + vor.vv \T02_v, \S24_v, \S00_v + vxor.vv \S23_v, \S23_v, \T02_v + vand.vv \T03_v, \S00_v, \S01_v + vxor.vv \S24_v, \S24_v, \T03_v + vor.vv \T02_v, \T01_v, \S02_v + vxor.vv \S00_v, \T00_v, \T02_v + vnot.v \T03_v, \S02_v + vor.vv \T03_v, \T03_v, \S03_v + vxor.vv \S01_v, \T01_v, \T03_v + vand.vv \T02_v, \S03_v, \S04_v + vxor.vv \S02_v, \S02_v, \T02_v + vor.vv \T03_v, \S04_v, \T00_v + vxor.vv \S03_v, \S03_v, \T03_v + vand.vv \T02_v, \T00_v, \T01_v + vxor.vv \S04_v, \S04_v, \T02_v + vle64.v \T00_v, 0(\Ts1) + vxor.vv \S00_v, \S00_v, \T00_v + addi \Ts1, \Ts1, 16 +.endm + +.globl KeccakF1600_StatePermute_RV64V_2x +.align 2 +KeccakF1600_StatePermute_RV64V_2x: + + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + # LoadStates + # lane complement: 1,2,8,12,17,20 + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, -24*16 + + # a2: loop control variable i + # a3: table index + li a2, 24 + la a3, constants_keccak + +loop: + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a4, a3 + addi a2, a2, -1 + bnez a2, loop + + # StoreStates + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64im.s b/examples/naive/riscv/keccak/fips202_rv64im.s new file mode 100644 index 000000000..ff41ce3ee --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64im.s @@ -0,0 +1,405 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + not \S20, \S20 + ld \S24, 24*8(a0) +.endm + +.macro StoreStates S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + not \S20, \S20 + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00, S01, S02, S03, S04, S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24, T00, T01, T02, T03, T04 + # theta - start + # C0 = S00 ^ S05 ^ S10 ^ S15 ^ S20 + # C2 = S02 ^ S07 ^ S12 ^ S17 ^ S22 + # D1 = C0 ^ ROL(C2, 1) + xor \T01, \S02, \S07 + xor \T00, \S00, \S05 + xor \T01, \T01, \S12 + xor \T00, \T00, \S10 + xor \T01, \T01, \S17 + xor \T00, \T00, \S15 + xor \T01, \T01, \S22 + xor \T00, \T00, \S20 + slli \T03, \T01, 1 + srli \T02, \T01, 64-1 + xor \T04, \S04, \S09 + xor \T02, \T02, \T03 + xor \T03, \S01, \S06 + xor \T02, \T02, \T00 + // T00=C0 T01=C2 T02=D1 + # C1 = S01 ^ S06 ^ S11 ^ S16 ^ S21 + # S06 ^= D1; S16 ^= D1; S01 ^= D1; S11 ^= D1; S21 ^= D1 + # C4 = S04 ^ S09 ^ S14 ^ S19 ^ S24 + xor \T03, \T03, \S11 + xor \T04, \T04, \S14 + xor \S01, \S01, \T02 + xor \T03, \T03, \S16 + sd \S01, 8*18(sp) + xor \S06, \S06, \T02 + xor \T04, \T04, \S19 + xor \S11, \S11, \T02 + xor \S16, \S16, \T02 + xor \T04, \T04, \S24 + slli \S01, \T04, 1 + xor \T03, \T03, \S21 + xor \T01, \T01, \S01 + srli \S01, \T04, 63 + xor \S21, \S21, \T02 + xor \T01, \T01, \S01 + xor \T02, \S03, \S08 + xor \S03, \S03, \T01 + xor \S08, \S08, \T01 + xor \T02, \T02, \S13 + xor \S13, \S13, \T01 + xor \T02, \T02, \S18 + slli \S01, \T00, 1 + srli \T00, \T00, 63 + xor \S18, \S18, \T01 + xor \T02, \T02, \S23 + xor \T00, \T00, \S01 + xor \S23, \S23, \T01 + // T00=C0 T03=C1 T04=C4 T02=C3 + xor \T00, \T00, \T02 + // T00=D4 T03=C1 T04=C4 T02=C3 + slli \T01, \T02, 1 + srli \T02, \T02, 63 + xor \S04, \S04, \T00 + xor \S09, \S09, \T00 + ld \S01, 8*18(sp) + xor \T02, \T02, \T01 + xor \S14, \S14, \T00 + xor \S19, \S19, \T00 + xor \T02, \T02, \T03 + xor \S24, \S24, \T00 + // T03=C1 T04=C4 T02=D2 + slli \T01, \T03, 1 + srli \T03, \T03, 63 + xor \S02, \S02, \T02 + xor \S07, \S07, \T02 + xor \T03, \T03, \T01 + xor \S12, \S12, \T02 + xor \S17, \S17, \T02 + xor \T03, \T03, \T04 + xor \S22, \S22, \T02 + xor \S05, \S05, \T03 + xor \S10, \S10, \T03 + xor \S15, \S15, \T03 + xor \S20, \S20, \T03 + xor \T00, \S00, \T03 + # theta - end + # Rho & Pi & Chi - start + slli \T04, \S06, 44 + srli \T01, \S06, 20 + slli \T03, \S02, 62 + xor \T01, \T01, \T04 + srli \S00, \S02, 2 + slli \T02, \S12, 43 + xor \S00, \S00, \T03 + srli \S02, \S12, 21 + slli \T04, \S13, 25 + xor \S02, \S02, \T02 + srli \S12, \S13, 39 + slli \T03, \S19, 8 + xor \S12, \S12, \T04 + srli \S13, \S19, 56 + slli \T02, \S23, 56 + xor \S13, \S13, \T03 + srli \S19, \S23, 8 + slli \T04, \S15, 41 + xor \S19, \S19, \T02 + srli \S23, \S15, 23 + slli \T03, \S01, 1 + xor \S23, \S23, \T04 + srli \S15, \S01, 63 + slli \T02, \S08, 55 + xor \S15, \S15, \T03 + srli \S01, \S08, 9 + slli \T04, \S16, 45 + xor \S01, \S01, \T02 + srli \S08, \S16, 19 + slli \T03, \S07, 6 + xor \S08, \S08, \T04 + srli \S16, \S07, 58 + slli \T02, \S10, 3 + xor \S16, \S16, \T03 + srli \S07, \S10, 61 + slli \T04, \S03, 28 + xor \S07, \S07, \T02 + srli \S10, \S03, 36 + slli \T03, \S18, 21 + xor \S10, \S10, \T04 + srli \S03, \S18, 43 + slli \T02, \S17, 15 + xor \S03, \S03, \T03 + srli \S18, \S17, 49 + slli \T04, \S11, 10 + xor \S18, \S18, \T02 + srli \S17, \S11, 54 + slli \T03, \S09, 20 + xor \S17, \S17, \T04 + srli \S11, \S09, 44 + slli \T02, \S22, 61 + xor \S11, \S11, \T03 + srli \S09, \S22, 3 + slli \T04, \S14, 39 + xor \S09, \S09, \T02 + srli \S22, \S14, 25 + slli \T03, \S20, 18 + xor \S22, \S22, \T04 + srli \S14, \S20, 46 + slli \T02, \S04, 27 + xor \S14, \S14, \T03 + srli \S20, \S04, 37 + slli \T04, \S24, 14 + xor \S20, \S20, \T02 + srli \S04, \S24, 50 + slli \T03, \S21, 2 + xor \S04, \S04, \T04 + srli \S24, \S21, 62 + slli \T02, \S05, 36 + xor \S24, \S24, \T03 + srli \S21, \S05, 28 + or \T04, \S11, \S07 + xor \S21, \S21, \T02 + xor \S05, \S10, \T04 + and \T03, \S07, \S08 + not \T02, \S09 + xor \S06, \S11, \T03 + or \T02, \T02, \S08 + or \T04, \S09, \S10 + xor \S07, \S07, \T02 + xor \S08, \S08, \T04 + and \T03, \S10, \S11 + or \T04, \S16, \S12 + xor \S09, \S09, \T03 + xor \S10, \S15, \T04 + and \T03, \S12, \S13 + not \T02, \S13 + xor \S11, \S16, \T03 + and \T02, \T02, \S14 + not \T03, \S13 + xor \S12, \S12, \T02 + or \T04, \S14, \S15 + and \T02, \S15, \S16 + xor \S13, \T03, \T04 + xor \S14, \S14, \T02 + and \T04, \S21, \S17 + or \T03, \S17, \S18 + not \T02, \S18 + xor \S15, \S20, \T04 + or \T02, \T02, \S19 + xor \S16, \S21, \T03 + xor \S17, \S17, \T02 + not \T03, \S18 + and \T04, \S19, \S20 + or \T02, \S20, \S21 + xor \S18, \T03, \T04 + xor \S19, \S19, \T02 + not \T04, \S01 + not \T02, \S01 + and \T04, \T04, \S22 + or \T03, \S22, \S23 + xor \S20, \S00, \T04 + xor \S21, \T02, \T03 + and \T04, \S23, \S24 + or \T03, \S24, \S00 + xor \S22, \S22, \T04 + xor \S23, \S23, \T03 + and \T02, \S00, \S01 + or \T04, \T01, \S02 + not \T03, \S02 + xor \S24, \S24, \T02 + or \T03, \T03, \S03 + xor \S00, \T00, \T04 + xor \S01, \T01, \T03 + and \T02, \S03, \S04 + or \T04, \S04, \T00 + xor \S02, \S02, \T02 + ld \T02, 17*8(sp) + and \T03, \T00, \T01 + xor \S03, \S03, \T04 + ld \T01, 0(\T02) + # loop control + ld \T04, 16*8(sp) + addi \T02, \T02, 8 + xor \S04, \S04, \T03 + sd \T02, 17*8(sp) + addi \T04, \T04, -1 + xor \S00, \S00, \T01 + # Rho & Pi & Chi - end +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index +.globl KeccakF1600_StatePermute_RV64ASM +.align 2 +KeccakF1600_StatePermute_RV64ASM: + addi sp, sp, -8*19 + SaveRegs + sd a0, 15*8(sp) + + la a1, constants_keccak + sd a1, 17*8(sp) + + LoadStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + + li a0, 24 + +loop: + sd a0, 16*8(sp) + ARoundInPlace \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + bnez a0, loop + + ld a0, 15*8(sp) + StoreStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + RestoreRegs + addi sp, sp, 8*19 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64im_unroll.s b/examples/naive/riscv/keccak/fips202_rv64im_unroll.s new file mode 100644 index 000000000..681421ba1 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64im_unroll.s @@ -0,0 +1,392 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates S00_s, S01_s, S02_s, S03_s, S04_s, \ + S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, \ + S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s + # lane complement: 1,2,8,12,17,20 + ld \S00_s, 0*8(a0) + ld \S01_s, 1*8(a0) + ld \S02_s, 2*8(a0) + ld \S03_s, 3*8(a0) + ld \S04_s, 4*8(a0) + ld \S05_s, 5*8(a0) + ld \S06_s, 6*8(a0) + ld \S07_s, 7*8(a0) + ld \S08_s, 8*8(a0) + ld \S09_s, 9*8(a0) + ld \S10_s, 10*8(a0) + ld \S11_s, 11*8(a0) + ld \S12_s, 12*8(a0) + ld \S13_s, 13*8(a0) + ld \S14_s, 14*8(a0) + ld \S15_s, 15*8(a0) + ld \S16_s, 16*8(a0) + ld \S17_s, 17*8(a0) + not \S01_s, \S01_s + not \S02_s, \S02_s + not \S08_s, \S08_s + not \S12_s, \S12_s + not \S17_s, \S17_s + ld \S18_s, 18*8(a0) + ld \S19_s, 19*8(a0) + ld \S20_s, 20*8(a0) + ld \S21_s, 21*8(a0) + ld \S22_s, 22*8(a0) + ld \S23_s, 23*8(a0) + not \S20_s, \S20_s + ld \S24_s, 24*8(a0) +.endm + +.macro StoreStates S00_s, S01_s, S02_s, S03_s, S04_s, \ + S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, \ + S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s + # lane complement: 1,2,8,12,17,20 + not \S01_s, \S01_s + not \S02_s, \S02_s + not \S08_s, \S08_s + not \S12_s, \S12_s + not \S17_s, \S17_s + not \S20_s, \S20_s + sd \S00_s, 0*8(a0) + sd \S01_s, 1*8(a0) + sd \S02_s, 2*8(a0) + sd \S03_s, 3*8(a0) + sd \S04_s, 4*8(a0) + sd \S05_s, 5*8(a0) + sd \S06_s, 6*8(a0) + sd \S07_s, 7*8(a0) + sd \S08_s, 8*8(a0) + sd \S09_s, 9*8(a0) + sd \S10_s, 10*8(a0) + sd \S11_s, 11*8(a0) + sd \S12_s, 12*8(a0) + sd \S13_s, 13*8(a0) + sd \S14_s, 14*8(a0) + sd \S15_s, 15*8(a0) + sd \S16_s, 16*8(a0) + sd \S17_s, 17*8(a0) + sd \S18_s, 18*8(a0) + sd \S19_s, 19*8(a0) + sd \S20_s, 20*8(a0) + sd \S21_s, 21*8(a0) + sd \S22_s, 22*8(a0) + sd \S23_s, 23*8(a0) + sd \S24_s, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T01_s, \S02_s, \S07_s + xor \T00_s, \S00_s, \S05_s + xor \T01_s, \T01_s, \S12_s + xor \T00_s, \T00_s, \S10_s + xor \T01_s, \T01_s, \S17_s + xor \T00_s, \T00_s, \S15_s + xor \T01_s, \T01_s, \S22_s + xor \T00_s, \T00_s, \S20_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T04_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \T03_s + xor \T03_s, \S01_s, \S06_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \T03_s, \S11_s + xor \T04_s, \T04_s, \S14_s + xor \S01_s, \S01_s, \T02_s + xor \T03_s, \T03_s, \S16_s + sd \S01_s, 8*18(sp) + xor \S06_s, \S06_s, \T02_s + xor \T04_s, \T04_s, \S19_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \T04_s, \T04_s, \S24_s + slli \S01_s, \T04_s, 1 + xor \T03_s, \T03_s, \S21_s + xor \T01_s, \T01_s, \S01_s + srli \S01_s, \T04_s, 63 + xor \S21_s, \S21_s, \T02_s + xor \T01_s, \T01_s, \S01_s + xor \T02_s, \S03_s, \S08_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \T02_s, \T02_s, \S13_s + xor \S13_s, \S13_s, \T01_s + xor \T02_s, \T02_s, \S18_s + slli \S01_s, \T00_s, 1 + srli \T00_s, \T00_s, 63 + xor \S18_s, \S18_s, \T01_s + xor \T02_s, \T02_s, \S23_s + xor \T00_s, \T00_s, \S01_s + xor \S23_s, \S23_s, \T01_s + xor \T00_s, \T00_s, \T02_s + slli \T01_s, \T02_s, 1 + srli \T02_s, \T02_s, 63 + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + ld \S01_s, 8*18(sp) + xor \T02_s, \T02_s, \T01_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \T02_s, \T02_s, \T03_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 63 + xor \S02_s, \S02_s, \T02_s + xor \S07_s, \S07_s, \T02_s + xor \T03_s, \T03_s, \T01_s + xor \S12_s, \S12_s, \T02_s + xor \S17_s, \S17_s, \T02_s + xor \T03_s, \T03_s, \T04_s + xor \S22_s, \S22_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T04_s, \S06_s, 44 + srli \T01_s, \S06_s, 20 + slli \T03_s, \S02_s, 62 + xor \T01_s, \T01_s, \T04_s + srli \S00_s, \S02_s, 2 + slli \T02_s, \S12_s, 43 + xor \S00_s, \S00_s, \T03_s + srli \S02_s, \S12_s, 21 + slli \T04_s, \S13_s, 25 + xor \S02_s, \S02_s, \T02_s + srli \S12_s, \S13_s, 39 + slli \T03_s, \S19_s, 8 + xor \S12_s, \S12_s, \T04_s + srli \S13_s, \S19_s, 56 + slli \T02_s, \S23_s, 56 + xor \S13_s, \S13_s, \T03_s + srli \S19_s, \S23_s, 8 + slli \T04_s, \S15_s, 41 + xor \S19_s, \S19_s, \T02_s + srli \S23_s, \S15_s, 23 + slli \T03_s, \S01_s, 1 + xor \S23_s, \S23_s, \T04_s + srli \S15_s, \S01_s, 63 + slli \T02_s, \S08_s, 55 + xor \S15_s, \S15_s, \T03_s + srli \S01_s, \S08_s, 9 + slli \T04_s, \S16_s, 45 + xor \S01_s, \S01_s, \T02_s + srli \S08_s, \S16_s, 19 + slli \T03_s, \S07_s, 6 + xor \S08_s, \S08_s, \T04_s + srli \S16_s, \S07_s, 58 + slli \T02_s, \S10_s, 3 + xor \S16_s, \S16_s, \T03_s + srli \S07_s, \S10_s, 61 + slli \T04_s, \S03_s, 28 + xor \S07_s, \S07_s, \T02_s + srli \S10_s, \S03_s, 36 + slli \T03_s, \S18_s, 21 + xor \S10_s, \S10_s, \T04_s + srli \S03_s, \S18_s, 43 + slli \T02_s, \S17_s, 15 + xor \S03_s, \S03_s, \T03_s + srli \S18_s, \S17_s, 49 + slli \T04_s, \S11_s, 10 + xor \S18_s, \S18_s, \T02_s + srli \S17_s, \S11_s, 54 + slli \T03_s, \S09_s, 20 + xor \S17_s, \S17_s, \T04_s + srli \S11_s, \S09_s, 44 + slli \T02_s, \S22_s, 61 + xor \S11_s, \S11_s, \T03_s + srli \S09_s, \S22_s, 3 + slli \T04_s, \S14_s, 39 + xor \S09_s, \S09_s, \T02_s + srli \S22_s, \S14_s, 25 + slli \T03_s, \S20_s, 18 + xor \S22_s, \S22_s, \T04_s + srli \S14_s, \S20_s, 46 + slli \T02_s, \S04_s, 27 + xor \S14_s, \S14_s, \T03_s + srli \S20_s, \S04_s, 37 + slli \T04_s, \S24_s, 14 + xor \S20_s, \S20_s, \T02_s + srli \S04_s, \S24_s, 50 + slli \T03_s, \S21_s, 2 + xor \S04_s, \S04_s, \T04_s + srli \S24_s, \S21_s, 62 + slli \T02_s, \S05_s, 36 + xor \S24_s, \S24_s, \T03_s + srli \S21_s, \S05_s, 28 + or \T04_s, \S11_s, \S07_s + xor \S21_s, \S21_s, \T02_s + xor \S05_s, \S10_s, \T04_s + and \T03_s, \S07_s, \S08_s + not \T02_s, \S09_s + xor \S06_s, \S11_s, \T03_s + or \T02_s, \T02_s, \S08_s + or \T04_s, \S09_s, \S10_s + xor \S07_s, \S07_s, \T02_s + xor \S08_s, \S08_s, \T04_s + and \T03_s, \S10_s, \S11_s + or \T04_s, \S16_s, \S12_s + xor \S09_s, \S09_s, \T03_s + xor \S10_s, \S15_s, \T04_s + and \T03_s, \S12_s, \S13_s + not \T02_s, \S13_s + xor \S11_s, \S16_s, \T03_s + and \T02_s, \T02_s, \S14_s + not \T03_s, \S13_s + xor \S12_s, \S12_s, \T02_s + or \T04_s, \S14_s, \S15_s + and \T02_s, \S15_s, \S16_s + xor \S13_s, \T03_s, \T04_s + xor \S14_s, \S14_s, \T02_s + and \T04_s, \S21_s, \S17_s + or \T03_s, \S17_s, \S18_s + not \T02_s, \S18_s + xor \S15_s, \S20_s, \T04_s + or \T02_s, \T02_s, \S19_s + xor \S16_s, \S21_s, \T03_s + xor \S17_s, \S17_s, \T02_s + not \T03_s, \S18_s + and \T04_s, \S19_s, \S20_s + or \T02_s, \S20_s, \S21_s + xor \S18_s, \T03_s, \T04_s + xor \S19_s, \S19_s, \T02_s + not \T04_s, \S01_s + not \T02_s, \S01_s + and \T04_s, \T04_s, \S22_s + or \T03_s, \S22_s, \S23_s + xor \S20_s, \S00_s, \T04_s + xor \S21_s, \T02_s, \T03_s + and \T04_s, \S23_s, \S24_s + or \T03_s, \S24_s, \S00_s + xor \S22_s, \S22_s, \T04_s + xor \S23_s, \S23_s, \T03_s + and \T02_s, \S00_s, \S01_s + or \T04_s, \T01_s, \S02_s + not \T03_s, \S02_s + xor \S24_s, \S24_s, \T02_s + or \T03_s, \T03_s, \S03_s + xor \S00_s, \T00_s, \T04_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + or \T04_s, \S04_s, \T00_s + xor \S02_s, \S02_s, \T02_s + ld \T02_s, 17*8(sp) + and \T03_s, \T00_s, \T01_s + xor \S03_s, \S03_s, \T04_s + ld \T01_s, 0(\T02_s) + ld \T04_s, 16*8(sp) + addi \T02_s, \T02_s, 8 + xor \S04_s, \S04_s, \T03_s + sd \T02_s, 17*8(sp) + addi \T04_s, \T04_s, -1 + xor \S00_s, \S00_s, \T01_s +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index +.globl KeccakF1600_StatePermute_RV64ASM +.align 2 +KeccakF1600_StatePermute_RV64ASM: + addi sp, sp, -8*18 + SaveRegs + sd a0, 15*8(sp) + + la a1, constants_keccak + sd a1, 17*8(sp) + + LoadStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + + li a0, 24 + +loop: + sd a0, 16*8(sp) + ARoundInPlace \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + # ld a0, 16*8(sp) + # addi a0, a0, -1 + bnez a0, loop + + ld a0, 15*8(sp) + StoreStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + RestoreRegs + addi sp, sp, 8*18 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imb.s b/examples/naive/riscv/keccak/fips202_rv64imb.s new file mode 100644 index 000000000..3fbd9bf3c --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imb.s @@ -0,0 +1,309 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + ld \S24, 24*8(a0) +.endm + +.macro StoreStates S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T01_s, \S02_s, \S07_s + xor \T00_s, \S00_s, \S05_s + xor \T01_s, \T01_s, \S12_s + xor \T00_s, \T00_s, \S10_s + xor \T01_s, \T01_s, \S17_s + xor \T00_s, \T00_s, \S15_s + xor \T01_s, \T01_s, \S22_s + xor \T00_s, \T00_s, \S20_s + rori \T02_s, \T01_s, 63 + xor \T04_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T04_s, \T04_s, \S14_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \T03_s, \T03_s, \S11_s + xor \T04_s, \T04_s, \S19_s + xor \S11_s, \S11_s, \T02_s + xor \T03_s, \T03_s, \S16_s + xor \S16_s, \S16_s, \T02_s + xor \T03_s, \T03_s, \S21_s + xor \S21_s, \S21_s, \T02_s + xor \T04_s, \T04_s, \S24_s + rori \T02_s, \T04_s, 63 + rori \T00_s, \T00_s, 63 + xor \T01_s, \T01_s, \T02_s + xor \T02_s, \S03_s, \S08_s + xor \S03_s, \S03_s, \T01_s + xor \T02_s, \T02_s, \S13_s + xor \S08_s, \S08_s, \T01_s + xor \T02_s, \T02_s, \S18_s + xor \S13_s, \S13_s, \T01_s + xor \T02_s, \T02_s, \S23_s + xor \T00_s, \T00_s, \T02_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + xor \S04_s, \S04_s, \T00_s + rori \T02_s, \T02_s, 63 + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \T02_s, \T02_s, \T03_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T03_s, \T03_s, 63 + xor \S02_s, \S02_s, \T02_s + xor \S07_s, \S07_s, \T02_s + xor \S12_s, \S12_s, \T02_s + xor \T03_s, \T03_s, \T04_s + xor \S17_s, \S17_s, \T02_s + xor \S22_s, \S22_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + andn \T03_s, \S08_s, \S07_s + xor \S05_s, \T02_s, \S10_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + andn \T03_s, \S10_s, \S09_s + xor \S07_s, \T02_s, \S07_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + andn \T03_s, \S12_s, \S16_s + xor \S09_s, \T02_s, \S09_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + andn \T03_s, \S14_s, \S13_s + xor \S11_s, \T02_s, \S16_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + andn \T03_s, \S16_s, \S15_s + xor \S13_s, \T02_s, \S13_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + andn \T03_s, \S18_s, \S17_s + xor \S15_s, \T02_s, \S20_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + andn \T03_s, \S20_s, \S19_s + xor \S17_s, \T02_s, \S17_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + andn \T03_s, \S22_s, \S01_s + xor \S19_s, \T02_s, \S19_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + andn \T03_s, \S24_s, \S23_s + xor \S21_s, \T02_s, \S01_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + andn \T03_s, \S01_s, \S00_s + xor \S23_s, \T02_s, \S23_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + andn \T03_s, \S03_s, \S02_s + ld \T04_s, 17*8(sp) + xor \S00_s, \T02_s, \T00_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + andn \T03_s, \T00_s, \S04_s + xor \S02_s, \T02_s, \S02_s + andn \T02_s, \T01_s, \T00_s + ld \T01_s, 0(\T04_s) + addi \T04_s, \T04_s, 8 + xor \S03_s, \T03_s, \S03_s + sd \T04_s, 17*8(sp) + # loop control + ld \T04_s, 16*8(sp) + xor \S04_s, \T02_s, \S04_s + xor \S00_s, \S00_s, \T01_s + addi \T04_s, \T04_s, -1 +.endm + +.globl KeccakF1600_StatePermute_RV64ASM +.align 2 +KeccakF1600_StatePermute_RV64ASM: + addi sp, sp, -8*18 + SaveRegs + sd a0, 15*8(sp) + + la a1, constants_keccak + sd a1, 17*8(sp) + + LoadStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + # 16*8(sp): loop control variable i + # 17*8(sp): table index + li a0, 24 + +rounds1_loop_start: + sd a0, 16*8(sp) + ARoundInPlace \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + # ld a0, 16*8(sp) + # addi a0, a0, -1 + bnez a0, rounds1_loop_start + + ld a0, 15*8(sp) + StoreStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + RestoreRegs + addi sp, sp, 8*18 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imb_unroll.s b/examples/naive/riscv/keccak/fips202_rv64imb_unroll.s new file mode 100644 index 000000000..334dd3558 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imb_unroll.s @@ -0,0 +1,304 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates S00_s, S01_s, S02_s, S03_s, S04_s, \ + S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, \ + S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s + ld \S00_s, 0*8(a0) + ld \S01_s, 1*8(a0) + ld \S02_s, 2*8(a0) + ld \S03_s, 3*8(a0) + ld \S04_s, 4*8(a0) + ld \S05_s, 5*8(a0) + ld \S06_s, 6*8(a0) + ld \S07_s, 7*8(a0) + ld \S08_s, 8*8(a0) + ld \S09_s, 9*8(a0) + ld \S10_s, 10*8(a0) + ld \S11_s, 11*8(a0) + ld \S12_s, 12*8(a0) + ld \S13_s, 13*8(a0) + ld \S14_s, 14*8(a0) + ld \S15_s, 15*8(a0) + ld \S16_s, 16*8(a0) + ld \S17_s, 17*8(a0) + ld \S18_s, 18*8(a0) + ld \S19_s, 19*8(a0) + ld \S20_s, 20*8(a0) + ld \S21_s, 21*8(a0) + ld \S22_s, 22*8(a0) + ld \S23_s, 23*8(a0) + ld \S24_s, 24*8(a0) +.endm + +.macro StoreStates S00_s, S01_s, S02_s, S03_s, S04_s, \ + S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, \ + S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s + sd \S00_s, 0*8(a0) + sd \S01_s, 1*8(a0) + sd \S02_s, 2*8(a0) + sd \S03_s, 3*8(a0) + sd \S04_s, 4*8(a0) + sd \S05_s, 5*8(a0) + sd \S06_s, 6*8(a0) + sd \S07_s, 7*8(a0) + sd \S08_s, 8*8(a0) + sd \S09_s, 9*8(a0) + sd \S10_s, 10*8(a0) + sd \S11_s, 11*8(a0) + sd \S12_s, 12*8(a0) + sd \S13_s, 13*8(a0) + sd \S14_s, 14*8(a0) + sd \S15_s, 15*8(a0) + sd \S16_s, 16*8(a0) + sd \S17_s, 17*8(a0) + sd \S18_s, 18*8(a0) + sd \S19_s, 19*8(a0) + sd \S20_s, 20*8(a0) + sd \S21_s, 21*8(a0) + sd \S22_s, 22*8(a0) + sd \S23_s, 23*8(a0) + sd \S24_s, 24*8(a0) +.endm + +.macro ARoundInPlace S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +.globl KeccakF1600_StatePermute_RV64ASM +.align 2 +KeccakF1600_StatePermute_RV64ASM: + addi sp, sp, -8*18 + SaveRegs + sd a0, 15*8(sp) + + la a1, constants_keccak + sd a1, 17*8(sp) + + LoadStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + # 16*8(sp): loop control variable i + # 17*8(sp): table index + li a0, 24 + +rounds1_loop_start: + sd a0, 16*8(sp) + ARoundInPlace a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, rounds1_loop_start + + ld a0, 15*8(sp) + StoreStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + RestoreRegs + addi sp, sp, 8*18 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x10.s b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x10.s new file mode 100644 index 000000000..bcfdcc8b4 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x10.s @@ -0,0 +1,1562 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + vxor.vv \T00_v, \T00_v, \S15_v + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + vxor.vv \T00_v, \T00_v, \S20_v + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + vxor.vv \T01_v, \T01_v, \S12_v + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + vxor.vv \T01_v, \T01_v, \S17_v + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + vxor.vv \T01_v, \T01_v, \S22_v + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + li \T04_s, 64-1 + xor \S15_s, \S15_s, \T03_s + vsll.vi \T03_v, \T01_v, 1 + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + vsrl.vx \T02_v, \T01_v, \T04_s + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + vxor.vv \T02_v, \T02_v, \T03_v + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + vxor.vv \T02_v, \T02_v, \T00_v + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + vxor.vv \T03_v, \S01_v, \S06_v + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + vxor.vv \T03_v, \T03_v, \S11_v + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + vxor.vv \T03_v, \T03_v, \S16_v + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + vxor.vv \T03_v, \T03_v, \S21_v + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + vxor.vv \S01_v, \S01_v, \T02_v + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + vxor.vv \S06_v, \S06_v, \T02_v + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + vxor.vv \S11_v, \S11_v, \T02_v + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + vxor.vv \S16_v, \S16_v, \T02_v + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + vxor.vv \S21_v, \S21_v, \T02_v + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + vxor.vv \T02_v, \S04_v, \S09_v + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + vxor.vv \T02_v, \T02_v, \S14_v + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + vxor.vv \T02_v, \T02_v, \S19_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vxor.vv \T02_v, \T02_v, \S24_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vsll.vi \T04_v, \T02_v, 1 + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + sd \S01_s, 19*8(sp) + xor \T04_s, \T04_s, \S13_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + li \S01_s, 63 + xor \S13_s, \S13_s, \T01_s + vsrl.vx \T04_v, \T02_v, \S01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + vxor.vv \T04_v, \S03_v, \S08_v + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + vxor.vv \T04_v, \T04_v, \S13_v + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + ld \S01_s, 19*8(sp) + rori \T01_s, \S06_s, 64-44 + vxor.vv \T04_v, \T04_v, \S18_v + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + vxor.vv \T04_v, \T04_v, \S23_v + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + vxor.vv \S03_v, \S03_v, \T01_v + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + vxor.vv \S08_v, \S08_v, \T01_v + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + vxor.vv \S13_v, \S13_v, \T01_v + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + vxor.vv \S18_v, \S18_v, \T01_v + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + vxor.vv \S23_v, \S23_v, \T01_v + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + li \T04_s, 64-1 + xor \S13_s, \T02_s, \S13_s + vsll.vi \T01_v, \T00_v, 1 + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + vsrl.vx \T00_v, \T00_v, \T04_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + vxor.vv \T00_v, \T00_v, \T01_v + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + vxor.vv \T00_v, \T00_v, \T04_v + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + vxor.vv \S04_v, \S04_v, \T00_v + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + vxor.vv \S09_v, \S09_v, \T00_v + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + vxor.vv \S14_v, \S14_v, \T00_v + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + vxor.vv \S19_v, \S19_v, \T00_v + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vxor.vv \S24_v, \S24_v, \T00_v + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + li \T04_s, 64-1 + xor \S06_s, \S06_s, \T02_s + vsll.vi \T01_v, \T04_v, 1 + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vsrl.vx \T04_v, \T04_v, \T04_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vxor.vv \T04_v, \T04_v, \T01_v + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vxor.vv \T04_v, \T04_v, \T03_v + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + vxor.vv \S02_v, \S02_v, \T04_v + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + vxor.vv \S07_v, \S07_v, \T04_v + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + vxor.vv \S12_v, \S12_v, \T04_v + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + vxor.vv \S17_v, \S17_v, \T04_v + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + vxor.vv \S22_v, \S22_v, \T04_v + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + li \T04_s, 64-1 + rori \S03_s, \S18_s, 64-21 + vsll.vi \T01_v, \T03_v, 1 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + vsrl.vx \T03_v, \T03_v, \T04_s + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + vxor.vv \T03_v, \T03_v, \T01_v + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + vxor.vv \T03_v, \T03_v, \T02_v + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + vxor.vv \S05_v, \S05_v, \T03_v + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + vxor.vv \S10_v, \S10_v, \T03_v + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + vxor.vv \S15_v, \S15_v, \T03_v + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + vxor.vv \S20_v, \S20_v, \T03_v + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vxor.vv \T00_v, \S00_v, \T03_v + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + li \T04_s, 44 + andn \T03_s, \S03_s, \S02_s + vsll.vx \T02_v, \S06_v, \T04_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + vsrl.vi \T01_v, \S06_v, 64-44 + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + vxor.vv \T01_v, \T01_v, \T02_v + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + li \T04_s, 62 + xor \T01_s, \S02_s, \S07_s + vsll.vx \T03_v, \S02_v, \T04_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vsrl.vi \S00_v, \S02_v, 64-62 + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + li \T04_s, 43 + xor \T02_s, \T02_s, \S19_s + vsll.vx \T02_v, \S12_v, \T04_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vsrl.vi \S02_v, \S12_v, 64-43 + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + sd \S01_s, 19*8(sp) + xor \S23_s, \S23_s, \T01_s + vxor.vv \S02_v, \S02_v, \T02_v + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + li \S01_s, 64-25 + xor \S14_s, \S14_s, \T00_s + vsll.vi \T03_v, \S13_v, 25 + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + vsrl.vx \S12_v, \S13_v, \S01_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + li \T04_s, 64-8 + rori \T01_s, \S06_s, 64-44 + vsll.vi \T02_v, \S19_v, 8 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + ld \S01_s, 19*8(sp) + rori \S23_s, \S15_s, 64-41 + vsrl.vx \S13_v, \S19_v, \T04_s + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + vxor.vv \S13_v, \S13_v, \T02_v + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + li \T04_s, 56 + rori \S09_s, \S22_s, 64-61 + vsll.vx \T03_v, \S23_v, \T04_s + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + vsrl.vi \S19_v, \S23_v, 64-56 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + vxor.vv \S19_v, \S19_v, \T03_v + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + li \T04_s, 41 + andn \T03_s, \S12_s, \S16_s + vsll.vx \T02_v, \S15_v, \T04_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + vsrl.vi \S23_v, \S15_v, 64-41 + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + li \T04_s, 64-1 + xor \S18_s, \T03_s, \S18_s + vsll.vi \T03_v, \S01_v, 1 + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + vsrl.vx \S15_v, \S01_v, \T04_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + vxor.vv \S15_v, \S15_v, \T03_v + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + li \T04_s, 55 + andn \T02_s, \S04_s, \S03_s + vsll.vx \T02_v, \S08_v, \T04_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + vsrl.vi \S01_v, \S08_v, 64-55 + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + li \T04_s, 45 + xor \T01_s, \T01_s, \S17_s + vsll.vx \T03_v, \S16_v, \T04_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vsrl.vi \S08_v, \S16_v, 64-45 + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + sd \S01_s, 19*8(sp) + xor \S21_s, \S21_s, \T02_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + li \S01_s, 64-6 + xor \T02_s, \T02_s, \S24_s + vsll.vi \T02_v, \S07_v, 6 + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vsrl.vx \S16_v, \S07_v, \S01_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + li \S01_s, 64-3 + xor \S04_s, \S04_s, \T00_s + vsll.vi \T03_v, \S10_v, 3 + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + vsrl.vx \S07_v, \S10_v, \S01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \S07_v, \S07_v, \T03_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + li \S01_s, 64-28 + xor \S05_s, \S05_s, \T03_s + vsll.vi \T02_v, \S03_v, 28 + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + vsrl.vx \S10_v, \S03_v, \S01_s + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + ld \S01_s, 19*8(sp) + rori \S19_s, \S23_s, 64-56 + vxor.vv \S10_v, \S10_v, \T02_v + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + li \T04_s, 64-21 + rori \S08_s, \S16_s, 64-45 + vsll.vi \T03_v, \S18_v, 21 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + vsrl.vx \S03_v, \S18_v, \T04_s + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + vxor.vv \S03_v, \S03_v, \T03_v + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + li \T04_s, 64-15 + rori \S21_s, \S05_s, 64-36 + vsll.vi \T02_v, \S17_v, 15 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + vsrl.vx \S18_v, \S17_v, \T04_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + vxor.vv \S18_v, \S18_v, \T02_v + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + li \T04_s, 64-10 + xor \S11_s, \T02_s, \S16_s + vsll.vi \T03_v, \S11_v, 10 + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + vsrl.vx \S17_v, \S11_v, \T04_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + vxor.vv \S17_v, \S17_v, \T03_v + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + li \T04_s, 64-20 + xor \S18_s, \T03_s, \S18_s + vsll.vi \T02_v, \S09_v, 20 + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + vsrl.vx \S11_v, \S09_v, \T04_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vxor.vv \S11_v, \S11_v, \T02_v + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + li \T04_s, 61 + xor \S00_s, \T02_s, \T00_s + vsll.vx \T03_v, \S22_v, \T04_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + vsrl.vi \S09_v, \S22_v, 64-61 + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + vxor.vv \S09_v, \S09_v, \T03_v + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + li \T04_s, 39 + xor \T00_s, \S00_s, \S05_s + vsll.vx \T02_v, \S14_v, \T04_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vsrl.vi \S22_v, \S14_v, 64-39 + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vxor.vv \S22_v, \S22_v, \T02_v + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + li \T04_s, 64-18 + xor \S01_s, \S01_s, \T02_s + vsll.vi \T03_v, \S20_v, 18 + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + sd \S01_s, 19*8(sp) + xor \T02_s, \S04_s, \S09_s + vsrl.vx \S14_v, \S20_v, \T04_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vxor.vv \S14_v, \S14_v, \T03_v + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + li \S01_s, 64-27 + xor \T04_s, \T04_s, \S23_s + vsll.vi \T02_v, \S04_v, 27 + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vsrl.vx \S20_v, \S04_v, \S01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vxor.vv \S20_v, \S20_v, \T02_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + li \S01_s, 64-14 + xor \T04_s, \T04_s, \T03_s + vsll.vi \T03_v, \S24_v, 14 + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + vsrl.vx \S04_v, \S24_v, \S01_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vxor.vv \S04_v, \S04_v, \T03_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + ld \S01_s, 19*8(sp) + rori \T01_s, \S06_s, 64-44 + li \T04_s, 64-2 + rori \S00_s, \S02_s, 64-62 + vsll.vi \T02_v, \S21_v, 2 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + vsrl.vx \S24_v, \S21_v, \T04_s + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + vxor.vv \S24_v, \S24_v, \T02_v + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + li \T04_s, 36 + rori \S17_s, \S11_s, 64-10 + vsll.vx \T03_v, \S05_v, \T04_s + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + vsrl.vi \S21_v, \S05_v, 64-36 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + vxor.vv \S21_v, \S21_v, \T03_v + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + vor.vv \T02_v, \S11_v, \S07_v + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + vxor.vv \S05_v, \S10_v, \T02_v + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + vand.vv \T03_v, \S07_v, \S08_v + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + vxor.vv \S06_v, \S11_v, \T03_v + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + vnot.v \T02_v, \S09_v + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + vor.vv \T02_v, \T02_v, \S08_v + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + vxor.vv \S07_v, \S07_v, \T02_v + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + vor.vv \T03_v, \S09_v, \S10_v + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + vand.vv \T02_v, \S10_v, \S11_v + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vxor.vv \S09_v, \S09_v, \T02_v + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + vor.vv \T03_v, \S16_v, \S12_v + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \S10_v, \S15_v, \T03_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vand.vv \T02_v, \S12_v, \S13_v + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vxor.vv \S11_v, \S16_v, \T02_v + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vnot.v \T03_v, \S13_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vand.vv \T03_v, \T03_v, \S14_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + vnot.v \T03_v, \S13_v + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vor.vv \T02_v, \S14_v, \S15_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + vxor.vv \S13_v, \T03_v, \T02_v + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + vand.vv \T03_v, \S15_v, \S16_v + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + vxor.vv \S14_v, \S14_v, \T03_v + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + vand.vv \T02_v, \S21_v, \S17_v + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + vxor.vv \S15_v, \S20_v, \T02_v + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + vor.vv \T03_v, \S17_v, \S18_v + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + vxor.vv \S16_v, \S21_v, \T03_v + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + vnot.v \T02_v, \S18_v + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + vor.vv \T02_v, \T02_v, \S19_v + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + vxor.vv \S17_v, \S17_v, \T02_v + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + vnot.v \T02_v, \S18_v + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + vand.vv \T03_v, \S19_v, \S20_v + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + vxor.vv \S18_v, \T02_v, \T03_v + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vor.vv \T02_v, \S20_v, \S21_v + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + vxor.vv \S19_v, \S19_v, \T02_v + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + vnot.v \T03_v, \S01_v + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + vand.vv \T03_v, \T03_v, \S22_v + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + vxor.vv \S20_v, \S00_v, \T03_v + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vnot.v \T03_v, \S01_v + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vor.vv \T02_v, \S22_v, \S23_v + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + vxor.vv \S21_v, \T03_v, \T02_v + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vand.vv \T03_v, \S23_v, \S24_v + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vxor.vv \S22_v, \S22_v, \T03_v + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + vor.vv \T02_v, \S24_v, \S00_v + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + vand.vv \T03_v, \S00_v, \S01_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + vxor.vv \S24_v, \S24_v, \T03_v + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vor.vv \T02_v, \T01_v, \S02_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + vxor.vv \S00_v, \T00_v, \T02_v + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + vnot.v \T03_v, \S02_v + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + vor.vv \T03_v, \T03_v, \S03_v + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + vxor.vv \S01_v, \T01_v, \T03_v + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + vand.vv \T02_v, \S03_v, \S04_v + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + vxor.vv \S02_v, \S02_v, \T02_v + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + vor.vv \T03_v, \S04_v, \T00_v + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + vxor.vv \S03_v, \S03_v, \T03_v + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + vand.vv \T02_v, \T00_v, \T01_v + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + vxor.vv \S04_v, \S04_v, \T02_v + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T02_s, \S20_s, \S19_s + xor \S18_s, \T02_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + ld \T04_s, 18*8(sp) + andn \T02_s, \S22_s, \S01_s + xor \S20_s, \T02_s, \S00_s + ld \T03_s, 0(\T04_s) + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T02_s, \S24_s, \S23_s + vxor.vx \S00_v, \S00_v, \T03_s + xor \S22_s, \T02_s, \S22_s + andn \T02_s, \S00_s, \S24_s + addi \T04_s, \T04_s, 8 + xor \S23_s, \T02_s, \S23_s + andn \T02_s, \S01_s, \S00_s + sd \T04_s, 18*8(sp) + xor \S24_s, \T02_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T02_s, \S03_s, \S02_s + xor \S01_s, \T02_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T02_s, \T00_s, \S04_s + xor \S03_s, \T02_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_10x +.align 2 +KeccakF1600_StatePermute_RV64V_10x: + addi sp, sp, -8*21 + SaveRegs + sd a0, 15*8(sp) + # set VPU + vsetivli a1, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 3 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + ld a0, 15*8(sp) + ld s11, 20*8(sp) + addi gp, s11, -7 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*(16) + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 8 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret \ No newline at end of file diff --git a/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x14.s b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x14.s new file mode 100644 index 000000000..0c3f03b87 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x14.s @@ -0,0 +1,2092 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + vxor.vv \T00_v, \S00_v, \S05_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vxor.vv \T00_v, \T00_v, \S15_v + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + vxor.vv \T00_v, \T00_v, \S20_v + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vxor.vv \T01_v, \S02_v, \S07_v + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + vxor.vv \T01_v, \T01_v, \S12_v + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + vxor.vv \T01_v, \T01_v, \S17_v + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + vxor.vv \T01_v, \T01_v, \S22_v + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + li \T04_s, 64-1 + rori \S09_s, \S22_s, 64-61 + vsll.vi \T03_v, \T01_v, 1 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + vsrl.vx \T02_v, \T01_v, \T04_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + vxor.vv \T02_v, \T02_v, \T03_v + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + vxor.vv \T02_v, \T02_v, \T00_v + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + vxor.vv \T03_v, \S01_v, \S06_v + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + vxor.vv \T03_v, \T03_v, \S11_v + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + vxor.vv \T03_v, \T03_v, \S16_v + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + vxor.vv \T03_v, \T03_v, \S21_v + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vxor.vv \S06_v, \S06_v, \T02_v + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \S21_v, \S21_v, \T02_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + vxor.vv \T02_v, \S04_v, \S09_v + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vxor.vv \T02_v, \T02_v, \S14_v + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + vxor.vv \T02_v, \T02_v, \S19_v + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + vxor.vv \T02_v, \T02_v, \S24_v + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + vsll.vi \T04_v, \T02_v, 1 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + vxor.vv \T01_v, \T01_v, \T04_v + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + li \T04_s, 63 + andn \T03_s, \S14_s, \S13_s + vsrl.vx \T04_v, \T02_v, \T04_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + vxor.vv \T04_v, \S03_v, \S08_v + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + vxor.vv \T04_v, \T04_v, \S13_v + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + vxor.vv \T04_v, \T04_v, \S18_v + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vxor.vv \T04_v, \T04_v, \S23_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + vxor.vv \S03_v, \S03_v, \T01_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vxor.vv \S08_v, \S08_v, \T01_v + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + vxor.vv \S13_v, \S13_v, \T01_v + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vxor.vv \S18_v, \S18_v, \T01_v + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + vxor.vv \S23_v, \S23_v, \T01_v + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + li \T04_s, 64-1 + rori \T03_s, \T03_s, 64-1 + vsll.vi \T01_v, \T00_v, 1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + vsrl.vx \T00_v, \T00_v, \T04_s + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + vxor.vv \T00_v, \T00_v, \T01_v + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + vxor.vv \T00_v, \T00_v, \T04_v + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + vxor.vv \S04_v, \S04_v, \T00_v + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + vxor.vv \S09_v, \S09_v, \T00_v + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + vxor.vv \S14_v, \S14_v, \T00_v + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + vxor.vv \S19_v, \S19_v, \T00_v + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + vxor.vv \S24_v, \S24_v, \T00_v + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + li \T04_s, 64-1 + andn \T03_s, \S03_s, \S02_s + vsll.vi \T01_v, \T04_v, 1 + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + vsrl.vx \T04_v, \T04_v, \T04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vxor.vv \T04_v, \T04_v, \T01_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vxor.vv \T04_v, \T04_v, \T03_v + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vxor.vv \S02_v, \S02_v, \T04_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vxor.vv \S07_v, \S07_v, \T04_v + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + vxor.vv \S12_v, \S12_v, \T04_v + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + vxor.vv \S17_v, \S17_v, \T04_v + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vxor.vv \S22_v, \S22_v, \T04_v + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + li \T04_s, 64-1 + rori \S19_s, \S23_s, 64-56 + vsll.vi \T01_v, \T03_v, 1 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + vsrl.vx \T03_v, \T03_v, \T04_s + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + vxor.vv \T03_v, \T03_v, \T01_v + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + vxor.vv \T03_v, \T03_v, \T02_v + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + vxor.vv \S05_v, \S05_v, \T03_v + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + vxor.vv \S10_v, \S10_v, \T03_v + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + vxor.vv \S20_v, \S20_v, \T03_v + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + vxor.vv \T00_v, \S00_v, \T03_v + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + li \T01_s, 44 + sd \T04_s, 17*8(sp) + vsll.vx \T02_v, \S06_v, \T01_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vsrl.vi \T01_v, \S06_v, 64-44 + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vxor.vv \T01_v, \T01_v, \T02_v + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + li \T04_s, 62 + xor \T02_s, \T02_s, \S24_s + vsll.vx \T03_v, \S02_v, \T04_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vsrl.vi \S00_v, \S02_v, 64-62 + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + li \T01_s, 43 + xor \S17_s, \S17_s, \T04_s + vsll.vx \T02_v, \S12_v, \T01_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vsrl.vi \S02_v, \S12_v, 64-43 + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + vxor.vv \S02_v, \S02_v, \T02_v + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + li \T04_s, 64-25 + rori \S18_s, \S17_s, 64-15 + vsll.vi \T03_v, \S13_v, 25 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + vsrl.vx \S12_v, \S13_v, \T04_s + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + vxor.vv \S12_v, \S12_v, \T03_v + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + li \T04_s, 64-8 + andn \T03_s, \S14_s, \S13_s + vsll.vi \T02_v, \S19_v, 8 + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + vsrl.vx \S13_v, \S19_v, \T04_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + vxor.vv \S13_v, \S13_v, \T02_v + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + li \T04_s, 56 + andn \T03_s, \S01_s, \S00_s + vsll.vx \T03_v, \S23_v, \T04_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + vsrl.vi \S19_v, \S23_v, 64-56 + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + vxor.vv \S19_v, \S19_v, \T03_v + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + li \T04_s, 41 + xor \T01_s, \T01_s, \S17_s + vsll.vx \T02_v, \S15_v, \T04_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vsrl.vi \S23_v, \S15_v, 64-41 + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + vxor.vv \S23_v, \S23_v, \T02_v + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + sd \S00_s, 19*8(sp) + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + li \S00_s, 64-1 + xor \S08_s, \S08_s, \T01_s + vsll.vi \T03_v, \S01_v, 1 + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vsrl.vx \S15_v, \S01_v, \S00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + ld \S00_s, 19*8(sp) + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + li \T04_s, 55 + xor \S20_s, \S20_s, \T03_s + vsll.vx \T02_v, \S08_v, \T04_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + vsrl.vi \S01_v, \S08_v, 64-55 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + vxor.vv \S01_v, \S01_v, \T02_v + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + li \T04_s, 45 + rori \S24_s, \S21_s, 64-2 + vsll.vx \T03_v, \S16_v, \T04_s + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + vsrl.vi \S08_v, \S16_v, 64-45 + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + li \T04_s, 64-6 + andn \T03_s, \S18_s, \S17_s + vsll.vi \T02_v, \S07_v, 6 + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + vsrl.vx \S16_v, \S07_v, \T04_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + vsll.vi \T03_v, \S10_v, 3 + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + li \T00_s, 64-3 + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + vsrl.vx \S07_v, \S10_v, \T00_s + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vxor.vv \S07_v, \S07_v, \T03_v + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + li \T04_s, 64-28 + xor \S01_s, \S01_s, \T02_s + vsll.vi \T02_v, \S03_v, 28 + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vsrl.vx \S10_v, \S03_v, \T04_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vxor.vv \S10_v, \S10_v, \T02_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + li \T01_s, 64-21 + xor \S09_s, \S09_s, \T00_s + vsll.vi \T03_v, \S18_v, 21 + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vsrl.vx \S03_v, \S18_v, \T01_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vxor.vv \S03_v, \S03_v, \T03_v + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + li \T04_s, 64-15 + rori \S23_s, \S15_s, 64-41 + vsll.vi \T02_v, \S17_v, 15 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + vsrl.vx \S18_v, \S17_v, \T04_s + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + vxor.vv \S18_v, \S18_v, \T02_v + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + li \T04_s, 64-10 + andn \T03_s, \S10_s, \S09_s + vsll.vi \T03_v, \S11_v, 10 + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + vsrl.vx \S17_v, \S11_v, \T04_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + vxor.vv \S17_v, \S17_v, \T03_v + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + li \T04_s, 64-20 + xor \S19_s, \T02_s, \S19_s + vsll.vi \T02_v, \S09_v, 20 + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vsrl.vx \S11_v, \S09_v, \T04_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + li \T02_s, 61 + addi \T04_s, \T04_s, 8 + vsll.vx \T03_v, \S22_v, \T02_s + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + vsrl.vi \S09_v, \S22_v, 64-61 + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vxor.vv \S09_v, \S09_v, \T03_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + li \T04_s, 39 + xor \T02_s, \T02_s, \S19_s + vsll.vx \T02_v, \S14_v, \T04_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vsrl.vi \S22_v, \S14_v, 64-39 + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vxor.vv \S22_v, \S22_v, \T02_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + li \T00_s, 64-18 + xor \S12_s, \S12_s, \T04_s + vsll.vi \T03_v, \S20_v, 18 + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vsrl.vx \S14_v, \S20_v, \T00_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + vxor.vv \S14_v, \S14_v, \T03_v + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + li \T04_s, 64-27 + rori \S18_s, \S17_s, 64-15 + vsll.vi \T02_v, \S04_v, 27 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + vsrl.vx \S20_v, \S04_v, \T04_s + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + vxor.vv \S20_v, \S20_v, \T02_v + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + li \T04_s, 64-14 + xor \S11_s, \T02_s, \S16_s + vsll.vi \T03_v, \S24_v, 14 + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + vsrl.vx \S04_v, \S24_v, \T04_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + vxor.vv \S04_v, \S04_v, \T03_v + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + li \T04_s, 64-2 + xor \S23_s, \T02_s, \S23_s + vsll.vi \T02_v, \S21_v, 2 + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + vsrl.vx \S24_v, \S21_v, \T04_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + vxor.vv \S24_v, \S24_v, \T02_v + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + li \T04_s, 36 + xor \T01_s, \T01_s, \S12_s + vsll.vx \T03_v, \S05_v, \T04_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vsrl.vi \S21_v, \S05_v, 64-36 + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vxor.vv \S21_v, \S21_v, \T03_v + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vor.vv \T02_v, \S11_v, \S07_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vxor.vv \S05_v, \S10_v, \T02_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vand.vv \T03_v, \S07_v, \S08_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + vxor.vv \S06_v, \S11_v, \T03_v + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + vnot.v \T02_v, \S09_v + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + vor.vv \T02_v, \T02_v, \S08_v + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + vxor.vv \S07_v, \S07_v, \T02_v + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + vor.vv \T03_v, \S09_v, \S10_v + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + vxor.vv \S08_v, \S08_v, \T03_v + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + vand.vv \T02_v, \S10_v, \S11_v + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + vxor.vv \S09_v, \S09_v, \T02_v + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + vor.vv \T03_v, \S16_v, \S12_v + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + vxor.vv \S10_v, \S15_v, \T03_v + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vand.vv \T02_v, \S12_v, \S13_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \S11_v, \S16_v, \T02_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + vnot.v \T03_v, \S13_v + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vand.vv \T03_v, \T03_v, \S14_v + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + vnot.v \T03_v, \S13_v + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vor.vv \T02_v, \S14_v, \S15_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + vxor.vv \S13_v, \T03_v, \T02_v + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + vand.vv \T03_v, \S15_v, \S16_v + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + vxor.vv \S14_v, \S14_v, \T03_v + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + vand.vv \T02_v, \S21_v, \S17_v + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + vxor.vv \S15_v, \S20_v, \T02_v + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + vor.vv \T03_v, \S17_v, \S18_v + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + vxor.vv \S16_v, \S21_v, \T03_v + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + vnot.v \T02_v, \S18_v + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + vor.vv \T02_v, \T02_v, \S19_v + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vxor.vv \S17_v, \S17_v, \T02_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + vnot.v \T02_v, \S18_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vand.vv \T03_v, \S19_v, \S20_v + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vxor.vv \S18_v, \T02_v, \T03_v + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vor.vv \T02_v, \S20_v, \S21_v + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + vxor.vv \S19_v, \S19_v, \T02_v + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + vnot.v \T03_v, \S01_v + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + vand.vv \T03_v, \T03_v, \S22_v + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + vxor.vv \S20_v, \S00_v, \T03_v + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + vnot.v \T03_v, \S01_v + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + vor.vv \T02_v, \S22_v, \S23_v + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + vxor.vv \S21_v, \T03_v, \T02_v + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + vand.vv \T03_v, \S23_v, \S24_v + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + vxor.vv \S22_v, \S22_v, \T03_v + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + vor.vv \T02_v, \S24_v, \S00_v + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + vand.vv \T03_v, \S00_v, \S01_v + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \S24_v, \S24_v, \T03_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vor.vv \T02_v, \T01_v, \S02_v + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vxor.vv \S00_v, \T00_v, \T02_v + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vnot.v \T03_v, \S02_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vor.vv \T03_v, \T03_v, \S03_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \S01_v, \T01_v, \T03_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vand.vv \T02_v, \S03_v, \S04_v + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + vxor.vv \S02_v, \S02_v, \T02_v + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + vor.vv \T03_v, \S04_v, \T00_v + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + vand.vv \T02_v, \T00_v, \T01_v + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + vxor.vv \S04_v, \S04_v, \T02_v + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T02_s, \S18_s, \S17_s + xor \S16_s, \T02_s, \S21_s + ld \T03_s, 18*8(sp) + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + ld \T04_s, 0(\T03_s) + andn \T02_s, \S20_s, \S19_s + xor \S18_s, \T02_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T02_s, \S22_s, \S01_s + xor \S20_s, \T02_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + vxor.vx \S00_v, \S00_v, \T04_s + andn \T02_s, \S24_s, \S23_s + xor \S22_s, \T02_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T02_s, \S01_s, \S00_s + xor \S24_s, \T02_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + addi \T03_s, \T03_s, 8 + andn \T02_s, \S03_s, \S02_s + sd \T03_s, 18*8(sp) + xor \S01_s, \T02_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T02_s, \T00_s, \S04_s + xor \S03_s, \T02_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T02_s, 0(\T04_s) + xor \S00_s, \S00_s, \T02_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_14x +.align 2 +KeccakF1600_StatePermute_RV64V_14x: + addi sp, sp, -8*21 + SaveRegs + sd a0, 15*8(sp) + # set VPU + vsetivli a1, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 2 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + ld a0, 15*8(sp) + ld s11, 20*8(sp) + addi gp, s11, -11 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*(16) + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 12 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret \ No newline at end of file diff --git a/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x3.s b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x3.s new file mode 100644 index 000000000..684a3f932 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x3.s @@ -0,0 +1,912 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates S00_s, S01_s, S02_s, S03_s, S04_s, \ + S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, \ + S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif + # load states for scalar impl + ld \S00_s, 0*8(a0) + ld \S01_s, 1*8(a0) + ld \S02_s, 2*8(a0) + ld \S03_s, 3*8(a0) + ld \S04_s, 4*8(a0) + ld \S05_s, 5*8(a0) + ld \S06_s, 6*8(a0) + ld \S07_s, 7*8(a0) + ld \S08_s, 8*8(a0) + ld \S09_s, 9*8(a0) + ld \S10_s, 10*8(a0) + ld \S11_s, 11*8(a0) + ld \S12_s, 12*8(a0) + ld \S13_s, 13*8(a0) + ld \S14_s, 14*8(a0) + ld \S15_s, 15*8(a0) + ld \S16_s, 16*8(a0) + ld \S17_s, 17*8(a0) + ld \S18_s, 18*8(a0) + ld \S19_s, 19*8(a0) + ld \S20_s, 20*8(a0) + ld \S21_s, 21*8(a0) + ld \S22_s, 22*8(a0) + ld \S23_s, 23*8(a0) + ld \S24_s, 24*8(a0) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + ld \S24, 24*8(a0) +.endm + +.macro StoreStates S00_s, S01_s, S02_s, S03_s, S04_s, \ + S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, \ + S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif + # store states for scalar impl + sd \S00_s, 0*8(a0) + sd \S01_s, 1*8(a0) + sd \S02_s, 2*8(a0) + sd \S03_s, 3*8(a0) + sd \S04_s, 4*8(a0) + sd \S05_s, 5*8(a0) + sd \S06_s, 6*8(a0) + sd \S07_s, 7*8(a0) + sd \S08_s, 8*8(a0) + sd \S09_s, 9*8(a0) + sd \S10_s, 10*8(a0) + sd \S11_s, 11*8(a0) + sd \S12_s, 12*8(a0) + sd \S13_s, 13*8(a0) + sd \S14_s, 14*8(a0) + sd \S15_s, 15*8(a0) + sd \S16_s, 16*8(a0) + sd \S17_s, 17*8(a0) + sd \S18_s, 18*8(a0) + sd \S19_s, 19*8(a0) + sd \S20_s, 20*8(a0) + sd \S21_s, 21*8(a0) + sd \S22_s, 22*8(a0) + sd \S23_s, 23*8(a0) + sd \S24_s, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T00_s, \T00_s, \S10_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \T00_s, \T00_s, \S15_s + vxor.vv \T00_v, \T00_v, \S15_v + xor \T00_s, \T00_s, \S20_s + vxor.vv \T00_v, \T00_v, \S20_v + xor \T01_s, \S02_s, \S07_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \T01_s, \T01_s, \S12_s + vxor.vv \T01_v, \T01_v, \S12_v + xor \T01_s, \T01_s, \S17_s + vxor.vv \T01_v, \T01_v, \S17_v + xor \T01_s, \T01_s, \S22_s + vxor.vv \T01_v, \T01_v, \S22_v + rori \T02_s, \T01_s, 64-1 + li \T04_s, 64-1 + xor \T02_s, \T02_s, \T00_s + vsll.vi \T03_v, \T01_v, 1 + xor \T03_s, \S01_s, \S06_s + vsrl.vx \T02_v, \T01_v, \T04_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \T02_v, \T02_v, \T03_v + xor \T03_s, \T03_s, \S16_s + vxor.vv \T02_v, \T02_v, \T00_v + xor \T03_s, \T03_s, \S21_s + vxor.vv \T03_v, \S01_v, \S06_v + xor \S01_s, \S01_s, \T02_s + vxor.vv \T03_v, \T03_v, \S11_v + xor \S06_s, \S06_s, \T02_s + vxor.vv \T03_v, \T03_v, \S16_v + sd \S01_s, 18*8(sp) + xor \S11_s, \S11_s, \T02_s + vxor.vv \T03_v, \T03_v, \S21_v + xor \S16_s, \S16_s, \T02_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S21_s, \S21_s, \T02_s + vxor.vv \S06_v, \S06_v, \T02_v + xor \T02_s, \S04_s, \S09_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \T02_s, \T02_s, \S14_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \T02_s, \T02_s, \S19_s + vxor.vv \S21_v, \S21_v, \T02_v + xor \T02_s, \T02_s, \S24_s + vxor.vv \T02_v, \S04_v, \S09_v + rori \T04_s, \T02_s, 63 + vxor.vv \T02_v, \T02_v, \S14_v + xor \T01_s, \T01_s, \T04_s + vxor.vv \T02_v, \T02_v, \S19_v + xor \T04_s, \S03_s, \S08_s + vxor.vv \T02_v, \T02_v, \S24_v + xor \T04_s, \T04_s, \S13_s + vsll.vi \T04_v, \T02_v, 1 + xor \T04_s, \T04_s, \S18_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \T04_s, \T04_s, \S23_s + li \S01_s, 63 + xor \S03_s, \S03_s, \T01_s + vsrl.vx \T04_v, \T02_v, \S01_s + xor \S08_s, \S08_s, \T01_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \S13_s, \S13_s, \T01_s + vxor.vv \T04_v, \S03_v, \S08_v + xor \S18_s, \S18_s, \T01_s + vxor.vv \T04_v, \T04_v, \S13_v + xor \S23_s, \S23_s, \T01_s + vxor.vv \T04_v, \T04_v, \S18_v + rori \T00_s, \T00_s, 64-1 + vxor.vv \T04_v, \T04_v, \S23_v + xor \T00_s, \T00_s, \T04_s + vxor.vv \S03_v, \S03_v, \T01_v + xor \S04_s, \S04_s, \T00_s + vxor.vv \S08_v, \S08_v, \T01_v + xor \S09_s, \S09_s, \T00_s + vxor.vv \S13_v, \S13_v, \T01_v + xor \S14_s, \S14_s, \T00_s + vxor.vv \S18_v, \S18_v, \T01_v + xor \S19_s, \S19_s, \T00_s + vxor.vv \S23_v, \S23_v, \T01_v + xor \S24_s, \S24_s, \T00_s + li \S01_s, 64-1 + rori \T04_s, \T04_s, 64-1 + vsll.vi \T01_v, \T00_v, 1 + xor \T04_s, \T04_s, \T03_s + vsrl.vx \T00_v, \T00_v, \S01_s + xor \S02_s, \S02_s, \T04_s + vxor.vv \T00_v, \T00_v, \T01_v + xor \S07_s, \S07_s, \T04_s + vxor.vv \T00_v, \T00_v, \T04_v + xor \S12_s, \S12_s, \T04_s + vxor.vv \S04_v, \S04_v, \T00_v + xor \S17_s, \S17_s, \T04_s + vxor.vv \S09_v, \S09_v, \T00_v + xor \S22_s, \S22_s, \T04_s + vxor.vv \S14_v, \S14_v, \T00_v + rori \T03_s, \T03_s, 64-1 + vxor.vv \S19_v, \S19_v, \T00_v + xor \T03_s, \T03_s, \T02_s + vxor.vv \S24_v, \S24_v, \T00_v + xor \S05_s, \S05_s, \T03_s + li \S01_s, 64-1 + xor \S10_s, \S10_s, \T03_s + vsll.vi \T01_v, \T04_v, 1 + xor \S15_s, \S15_s, \T03_s + vsrl.vx \T04_v, \T04_v, \S01_s + xor \S20_s, \S20_s, \T03_s + vxor.vv \T04_v, \T04_v, \T01_v + xor \T00_s, \S00_s, \T03_s + vxor.vv \T04_v, \T04_v, \T03_v + rori \T01_s, \S06_s, 64-44 + vxor.vv \S02_v, \S02_v, \T04_v + rori \S00_s, \S02_s, 64-62 + vxor.vv \S07_v, \S07_v, \T04_v + ld \S01_s, 18*8(sp) + rori \S02_s, \S12_s, 64-43 + vxor.vv \S12_v, \S12_v, \T04_v + rori \S12_s, \S13_s, 64-25 + vxor.vv \S17_v, \S17_v, \T04_v + rori \S13_s, \S19_s, 64-8 + vxor.vv \S22_v, \S22_v, \T04_v + rori \S19_s, \S23_s, 64-56 + li \T04_s, 64-1 + rori \S23_s, \S15_s, 64-41 + vsll.vi \T01_v, \T03_v, 1 + rori \S15_s, \S01_s, 64-1 + vsrl.vx \T03_v, \T03_v, \T04_s + rori \S01_s, \S08_s, 64-55 + vxor.vv \T03_v, \T03_v, \T01_v + rori \S08_s, \S16_s, 64-45 + vxor.vv \T03_v, \T03_v, \T02_v + rori \S16_s, \S07_s, 64-6 + vxor.vv \S05_v, \S05_v, \T03_v + rori \S07_s, \S10_s, 64-3 + vxor.vv \S10_v, \S10_v, \T03_v + rori \S10_s, \S03_s, 64-28 + vxor.vv \S15_v, \S15_v, \T03_v + vxor.vv \S20_v, \S20_v, \T03_v + rori \S03_s, \S18_s, 64-21 + vxor.vv \T00_v, \S00_v, \T03_v + li \T04_s, 44 + vsll.vx \T02_v, \S06_v, \T04_s + rori \S18_s, \S17_s, 64-15 + vsrl.vi \T01_v, \S06_v, 64-44 + vxor.vv \T01_v, \T01_v, \T02_v + rori \S17_s, \S11_s, 64-10 + li \T04_s, 62 + vsll.vx \T03_v, \S02_v, \T04_s + vsrl.vi \S00_v, \S02_v, 64-62 + rori \S11_s, \S09_s, 64-20 + vxor.vv \S00_v, \S00_v, \T03_v + li \T04_s, 43 + vsll.vx \T02_v, \S12_v, \T04_s + rori \S09_s, \S22_s, 64-61 + vsrl.vi \S02_v, \S12_v, 64-43 + vxor.vv \S02_v, \S02_v, \T02_v + rori \S22_s, \S14_s, 64-39 + li \T04_s, 64-25 + vsll.vi \T03_v, \S13_v, 25 + vsrl.vx \S12_v, \S13_v, \T04_s + rori \S14_s, \S20_s, 64-18 + vxor.vv \S12_v, \S12_v, \T03_v + li \T04_s, 64-8 + vsll.vi \T02_v, \S19_v, 8 + rori \S20_s, \S04_s, 64-27 + vsrl.vx \S13_v, \S19_v, \T04_s + vxor.vv \S13_v, \S13_v, \T02_v + rori \S04_s, \S24_s, 64-14 + li \T04_s, 56 + vsll.vx \T03_v, \S23_v, \T04_s + vsrl.vi \S19_v, \S23_v, 64-56 + rori \S24_s, \S21_s, 64-2 + vxor.vv \S19_v, \S19_v, \T03_v + li \T04_s, 41 + vsll.vx \T02_v, \S15_v, \T04_s + rori \S21_s, \S05_s, 64-36 + vsrl.vi \S23_v, \S15_v, 64-41 + vxor.vv \S23_v, \S23_v, \T02_v + andn \T02_s, \S07_s, \S11_s + li \T04_s, 64-1 + vsll.vi \T03_v, \S01_v, 1 + vsrl.vx \S15_v, \S01_v, \T04_s + xor \S05_s, \T02_s, \S10_s + vxor.vv \S15_v, \S15_v, \T03_v + li \T04_s, 55 + vsll.vx \T02_v, \S08_v, \T04_s + andn \T03_s, \S08_s, \S07_s + vsrl.vi \S01_v, \S08_v, 64-55 + vxor.vv \S01_v, \S01_v, \T02_v + xor \S06_s, \T03_s, \S11_s + li \T04_s, 45 + vsll.vx \T03_v, \S16_v, \T04_s + vsrl.vi \S08_v, \S16_v, 64-45 + andn \T02_s, \S09_s, \S08_s + vxor.vv \S08_v, \S08_v, \T03_v + li \T04_s, 64-6 + vsll.vi \T02_v, \S07_v, 6 + xor \S07_s, \T02_s, \S07_s + vsrl.vx \S16_v, \S07_v, \T04_s + vxor.vv \S16_v, \S16_v, \T02_v + andn \T03_s, \S10_s, \S09_s + li \T04_s, 64-3 + vsll.vi \T03_v, \S10_v, 3 + vsrl.vx \S07_v, \S10_v, \T04_s + xor \S08_s, \T03_s, \S08_s + vxor.vv \S07_v, \S07_v, \T03_v + li \T04_s, 64-28 + vsll.vi \T02_v, \S03_v, 28 + andn \T02_s, \S11_s, \S10_s + vsrl.vx \S10_v, \S03_v, \T04_s + vxor.vv \S10_v, \S10_v, \T02_v + xor \S09_s, \T02_s, \S09_s + li \T04_s, 64-21 + vsll.vi \T03_v, \S18_v, 21 + vsrl.vx \S03_v, \S18_v, \T04_s + andn \T03_s, \S12_s, \S16_s + vxor.vv \S03_v, \S03_v, \T03_v + li \T04_s, 64-15 + vsll.vi \T02_v, \S17_v, 15 + xor \S10_s, \T03_s, \S15_s + vsrl.vx \S18_v, \S17_v, \T04_s + vxor.vv \S18_v, \S18_v, \T02_v + andn \T02_s, \S13_s, \S12_s + li \T04_s, 64-10 + vsll.vi \T03_v, \S11_v, 10 + vsrl.vx \S17_v, \S11_v, \T04_s + xor \S11_s, \T02_s, \S16_s + vxor.vv \S17_v, \S17_v, \T03_v + li \T04_s, 64-20 + vsll.vi \T02_v, \S09_v, 20 + andn \T03_s, \S14_s, \S13_s + vsrl.vx \S11_v, \S09_v, \T04_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \S12_s, \T03_s, \S12_s + li \T04_s, 61 + vsll.vx \T03_v, \S22_v, \T04_s + vsrl.vi \S09_v, \S22_v, 64-61 + andn \T02_s, \S15_s, \S14_s + vxor.vv \S09_v, \S09_v, \T03_v + li \T04_s, 39 + vsll.vx \T02_v, \S14_v, \T04_s + xor \S13_s, \T02_s, \S13_s + vsrl.vi \S22_v, \S14_v, 64-39 + vxor.vv \S22_v, \S22_v, \T02_v + andn \T03_s, \S16_s, \S15_s + li \T04_s, 64-18 + vsll.vi \T03_v, \S20_v, 18 + vsrl.vx \S14_v, \S20_v, \T04_s + xor \S14_s, \T03_s, \S14_s + vxor.vv \S14_v, \S14_v, \T03_v + li \T04_s, 64-27 + vsll.vi \T02_v, \S04_v, 27 + andn \T02_s, \S17_s, \S21_s + vsrl.vx \S20_v, \S04_v, \T04_s + vxor.vv \S20_v, \S20_v, \T02_v + xor \S15_s, \T02_s, \S20_s + li \T04_s, 64-14 + vsll.vi \T03_v, \S24_v, 14 + vsrl.vx \S04_v, \S24_v, \T04_s + andn \T03_s, \S18_s, \S17_s + vxor.vv \S04_v, \S04_v, \T03_v + li \T04_s, 64-2 + vsll.vi \T02_v, \S21_v, 2 + xor \S16_s, \T03_s, \S21_s + vsrl.vx \S24_v, \S21_v, \T04_s + vxor.vv \S24_v, \S24_v, \T02_v + andn \T02_s, \S19_s, \S18_s + li \T04_s, 36 + vsll.vx \T03_v, \S05_v, \T04_s + vsrl.vi \S21_v, \S05_v, 64-36 + xor \S17_s, \T02_s, \S17_s + vxor.vv \S21_v, \S21_v, \T03_v + vor.vv \T02_v, \S11_v, \S07_v + andn \T03_s, \S20_s, \S19_s + vxor.vv \S05_v, \S10_v, \T02_v + vand.vv \T03_v, \S07_v, \S08_v + xor \S18_s, \T03_s, \S18_s + vxor.vv \S06_v, \S11_v, \T03_v + vnot.v \T02_v, \S09_v + andn \T02_s, \S21_s, \S20_s + vor.vv \T02_v, \T02_v, \S08_v + vxor.vv \S07_v, \S07_v, \T02_v + xor \S19_s, \T02_s, \S19_s + vor.vv \T03_v, \S09_v, \S10_v + vxor.vv \S08_v, \S08_v, \T03_v + andn \T03_s, \S22_s, \S01_s + vand.vv \T02_v, \S10_v, \S11_v + vxor.vv \S09_v, \S09_v, \T02_v + xor \S20_s, \T03_s, \S00_s + vor.vv \T03_v, \S16_v, \S12_v + vxor.vv \S10_v, \S15_v, \T03_v + andn \T02_s, \S23_s, \S22_s + vand.vv \T02_v, \S12_v, \S13_v + vxor.vv \S11_v, \S16_v, \T02_v + xor \S21_s, \T02_s, \S01_s + vnot.v \T03_v, \S13_v + vand.vv \T03_v, \T03_v, \S14_v + andn \T03_s, \S24_s, \S23_s + vxor.vv \S12_v, \S12_v, \T03_v + vnot.v \T03_v, \S13_v + xor \S22_s, \T03_s, \S22_s + vor.vv \T02_v, \S14_v, \S15_v + vxor.vv \S13_v, \T03_v, \T02_v + andn \T02_s, \S00_s, \S24_s + vand.vv \T03_v, \S15_v, \S16_v + vxor.vv \S14_v, \S14_v, \T03_v + xor \S23_s, \T02_s, \S23_s + vand.vv \T02_v, \S21_v, \S17_v + vxor.vv \S15_v, \S20_v, \T02_v + andn \T03_s, \S01_s, \S00_s + vor.vv \T03_v, \S17_v, \S18_v + vxor.vv \S16_v, \S21_v, \T03_v + xor \S24_s, \T03_s, \S24_s + vnot.v \T02_v, \S18_v + vor.vv \T02_v, \T02_v, \S19_v + andn \T02_s, \S02_s, \T01_s + vxor.vv \S17_v, \S17_v, \T02_v + vnot.v \T02_v, \S18_v + xor \S00_s, \T02_s, \T00_s + vand.vv \T03_v, \S19_v, \S20_v + vxor.vv \S18_v, \T02_v, \T03_v + andn \T03_s, \S03_s, \S02_s + vor.vv \T02_v, \S20_v, \S21_v + vxor.vv \S19_v, \S19_v, \T02_v + xor \S01_s, \T03_s, \T01_s + vnot.v \T03_v, \S01_v + vand.vv \T03_v, \T03_v, \S22_v + andn \T02_s, \S04_s, \S03_s + vxor.vv \S20_v, \S00_v, \T03_v + vnot.v \T03_v, \S01_v + xor \S02_s, \T02_s, \S02_s + vor.vv \T02_v, \S22_v, \S23_v + vxor.vv \S21_v, \T03_v, \T02_v + andn \T03_s, \T00_s, \S04_s + vand.vv \T03_v, \S23_v, \S24_v + vxor.vv \S22_v, \S22_v, \T03_v + xor \S03_s, \T03_s, \S03_s + vor.vv \T02_v, \S24_v, \S00_v + vxor.vv \S23_v, \S23_v, \T02_v + andn \T02_s, \T01_s, \T00_s + vand.vv \T03_v, \S00_v, \S01_v + vxor.vv \S24_v, \S24_v, \T03_v + xor \S04_s, \T02_s, \S04_s + vor.vv \T02_v, \T01_v, \S02_v + vxor.vv \S00_v, \T00_v, \T02_v + ld \T04_s, 17*8(sp) + vnot.v \T03_v, \S02_v + vor.vv \T03_v, \T03_v, \S03_v + ld \T03_s, 0(\T04_s) + vxor.vv \S01_v, \T01_v, \T03_v + vand.vv \T02_v, \S03_v, \S04_v + xor \S00_s, \S00_s, \T03_s + vxor.vv \S02_v, \S02_v, \T02_v + vor.vv \T03_v, \S04_v, \T00_v + addi \T04_s, \T04_s, 8 + vxor.vv \S03_v, \S03_v, \T03_v + vand.vv \T02_v, \T00_v, \T01_v + sd \T04_s, 17*8(sp) + vxor.vv \S04_v, \S04_v, \T02_v + vxor.vx \S00_v, \S00_v, \T03_s +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index +# 18*8(sp): temp +.globl KeccakF1600_StatePermute_RV64V_3x +.align 2 +KeccakF1600_StatePermute_RV64V_3x: + addi sp, sp, -8*19 + SaveRegs + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + la a1, constants_keccak + sd a1, 17*8(sp) + + LoadStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + + li a0, 24 + +loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, loop + + ld a0, 15*8(sp) + StoreStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + + RestoreRegs + addi sp, sp, 8*19 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x4.s b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x4.s new file mode 100644 index 000000000..2c80ac531 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x4.s @@ -0,0 +1,866 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \T00_v, \T00_v, \S15_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vxor.vv \T00_v, \T00_v, \S20_v + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \T01_v, \T01_v, \S12_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vxor.vv \T01_v, \T01_v, \S17_v + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vxor.vv \T01_v, \T01_v, \S22_v + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + li \T04_s, 64-1 + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + vsll.vi \T03_v, \T01_v, 1 + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vsrl.vx \T02_v, \T01_v, \T04_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + vxor.vv \T02_v, \T02_v, \T03_v + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + vxor.vv \T02_v, \T02_v, \T00_v + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vxor.vv \T03_v, \S01_v, \S06_v + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + vxor.vv \T03_v, \T03_v, \S11_v + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \T03_v, \T03_v, \S16_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vxor.vv \T03_v, \T03_v, \S21_v + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \S06_v, \S06_v, \T02_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + vxor.vv \S16_v, \S16_v, \T02_v + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + vxor.vv \S21_v, \S21_v, \T02_v + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + vxor.vv \T02_v, \S04_v, \S09_v + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + vxor.vv \T02_v, \T02_v, \S14_v + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + vxor.vv \T02_v, \T02_v, \S19_v + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + vxor.vv \T02_v, \T02_v, \S24_v + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vsll.vi \T04_v, \T02_v, 1 + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + vxor.vv \T01_v, \T01_v, \T04_v + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + li \T04_s, 63 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + vsrl.vx \T04_v, \T02_v, \T04_s + rori \S19_s, \S23_s, 64-56 + vxor.vv \T01_v, \T01_v, \T04_v + rori \S23_s, \S15_s, 64-41 + vxor.vv \T04_v, \S03_v, \S08_v + rori \S15_s, \S01_s, 64-1 + vxor.vv \T04_v, \T04_v, \S13_v + rori \S01_s, \S08_s, 64-55 + vxor.vv \T04_v, \T04_v, \S18_v + rori \S08_s, \S16_s, 64-45 + vxor.vv \T04_v, \T04_v, \S23_v + rori \S16_s, \S07_s, 64-6 + vxor.vv \S03_v, \S03_v, \T01_v + rori \S07_s, \S10_s, 64-3 + vxor.vv \S08_v, \S08_v, \T01_v + rori \S10_s, \S03_s, 64-28 + vxor.vv \S13_v, \S13_v, \T01_v + rori \S03_s, \S18_s, 64-21 + vxor.vv \S18_v, \S18_v, \T01_v + rori \S18_s, \S17_s, 64-15 + vxor.vv \S23_v, \S23_v, \T01_v + rori \S17_s, \S11_s, 64-10 + li \T04_s, 64-1 + rori \S11_s, \S09_s, 64-20 + vsll.vi \T01_v, \T00_v, 1 + rori \S09_s, \S22_s, 64-61 + vsrl.vx \T00_v, \T00_v, \T04_s + rori \S22_s, \S14_s, 64-39 + vxor.vv \T00_v, \T00_v, \T01_v + rori \S14_s, \S20_s, 64-18 + vxor.vv \T00_v, \T00_v, \T04_v + rori \S20_s, \S04_s, 64-27 + vxor.vv \S04_v, \S04_v, \T00_v + rori \S04_s, \S24_s, 64-14 + vxor.vv \S09_v, \S09_v, \T00_v + rori \S24_s, \S21_s, 64-2 + vxor.vv \S14_v, \S14_v, \T00_v + rori \S21_s, \S05_s, 64-36 + vxor.vv \S19_v, \S19_v, \T00_v + andn \T02_s, \S07_s, \S11_s + vxor.vv \S24_v, \S24_v, \T00_v + xor \S05_s, \T02_s, \S10_s + li \T04_s, 64-1 + andn \T03_s, \S08_s, \S07_s + vsll.vi \T01_v, \T04_v, 1 + xor \S06_s, \T03_s, \S11_s + vsrl.vx \T04_v, \T04_v, \T04_s + andn \T02_s, \S09_s, \S08_s + vxor.vv \T04_v, \T04_v, \T01_v + xor \S07_s, \T02_s, \S07_s + vxor.vv \T04_v, \T04_v, \T03_v + andn \T03_s, \S10_s, \S09_s + vxor.vv \S02_v, \S02_v, \T04_v + xor \S08_s, \T03_s, \S08_s + vxor.vv \S07_v, \S07_v, \T04_v + andn \T02_s, \S11_s, \S10_s + vxor.vv \S12_v, \S12_v, \T04_v + xor \S09_s, \T02_s, \S09_s + vxor.vv \S17_v, \S17_v, \T04_v + andn \T03_s, \S12_s, \S16_s + vxor.vv \S22_v, \S22_v, \T04_v + xor \S10_s, \T03_s, \S15_s + li \T04_s, 64-1 + andn \T02_s, \S13_s, \S12_s + vsll.vi \T01_v, \T03_v, 1 + xor \S11_s, \T02_s, \S16_s + vsrl.vx \T03_v, \T03_v, \T04_s + andn \T03_s, \S14_s, \S13_s + vxor.vv \T03_v, \T03_v, \T01_v + xor \S12_s, \T03_s, \S12_s + vxor.vv \T03_v, \T03_v, \T02_v + andn \T02_s, \S15_s, \S14_s + vxor.vv \S05_v, \S05_v, \T03_v + xor \S13_s, \T02_s, \S13_s + vxor.vv \S10_v, \S10_v, \T03_v + andn \T03_s, \S16_s, \S15_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \S14_s, \T03_s, \S14_s + vxor.vv \S20_v, \S20_v, \T03_v + andn \T02_s, \S17_s, \S21_s + vxor.vv \T00_v, \S00_v, \T03_v + xor \S15_s, \T02_s, \S20_s + li \T04_s, 44 + andn \T03_s, \S18_s, \S17_s + vsll.vx \T02_v, \S06_v, \T04_s + xor \S16_s, \T03_s, \S21_s + vsrl.vi \T01_v, \S06_v, 64-44 + andn \T02_s, \S19_s, \S18_s + vxor.vv \T01_v, \T01_v, \T02_v + xor \S17_s, \T02_s, \S17_s + li \T04_s, 62 + andn \T03_s, \S20_s, \S19_s + vsll.vx \T03_v, \S02_v, \T04_s + xor \S18_s, \T03_s, \S18_s + vsrl.vi \S00_v, \S02_v, 64-62 + andn \T02_s, \S21_s, \S20_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \S19_s, \T02_s, \S19_s + li \T04_s, 43 + andn \T03_s, \S22_s, \S01_s + vsll.vx \T02_v, \S12_v, \T04_s + xor \S20_s, \T03_s, \S00_s + vsrl.vi \S02_v, \S12_v, 64-43 + andn \T02_s, \S23_s, \S22_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \S21_s, \T02_s, \S01_s + li \T04_s, 64-25 + andn \T03_s, \S24_s, \S23_s + vsll.vi \T03_v, \S13_v, 25 + xor \S22_s, \T03_s, \S22_s + vsrl.vx \S12_v, \S13_v, \T04_s + andn \T02_s, \S00_s, \S24_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S23_s, \T02_s, \S23_s + li \T04_s, 64-8 + andn \T03_s, \S01_s, \S00_s + vsll.vi \T02_v, \S19_v, 8 + xor \S24_s, \T03_s, \S24_s + vsrl.vx \S13_v, \S19_v, \T04_s + andn \T02_s, \S02_s, \T01_s + vxor.vv \S13_v, \S13_v, \T02_v + xor \S00_s, \T02_s, \T00_s + li \T04_s, 56 + andn \T03_s, \S03_s, \S02_s + vsll.vx \T03_v, \S23_v, \T04_s + xor \S01_s, \T03_s, \T01_s + vsrl.vi \S19_v, \S23_v, 64-56 + andn \T02_s, \S04_s, \S03_s + vxor.vv \S19_v, \S19_v, \T03_v + xor \S02_s, \T02_s, \S02_s + li \T04_s, 41 + andn \T03_s, \T00_s, \S04_s + vsll.vx \T02_v, \S15_v, \T04_s + xor \S03_s, \T03_s, \S03_s + vsrl.vi \S23_v, \S15_v, 64-41 + andn \T02_s, \T01_s, \T00_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \S04_s, \T02_s, \S04_s + li \T02_s, 64-1 + ld \T04_s, 17*8(sp) + vsll.vi \T03_v, \S01_v, 1 + ld \T03_s, 0(\T04_s) + vsrl.vx \S15_v, \S01_v, \T02_s + xor \S00_s, \S00_s, \T03_s + vxor.vv \S15_v, \S15_v, \T03_v + addi \T04_s, \T04_s, 8 + li \T02_s, 55 + sd \T04_s, 17*8(sp) + vsll.vx \T02_v, \S08_v, \T02_s + xor \T00_s, \S00_s, \S05_s + vsrl.vi \S01_v, \S08_v, 64-55 + xor \T00_s, \T00_s, \S10_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \T00_s, \T00_s, \S15_s + li \T02_s, 45 + xor \T00_s, \T00_s, \S20_s + vsll.vx \T03_v, \S16_v, \T02_s + xor \T01_s, \S02_s, \S07_s + vsrl.vi \S08_v, \S16_v, 64-45 + xor \T01_s, \T01_s, \S12_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \T01_s, \T01_s, \S17_s + li \T04_s, 64-6 + xor \T01_s, \T01_s, \S22_s + vsll.vi \T02_v, \S07_v, 6 + rori \T02_s, \T01_s, 64-1 + vsrl.vx \S16_v, \S07_v, \T04_s + xor \T02_s, \T02_s, \T00_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \T03_s, \S01_s, \S06_s + li \T04_s, 64-3 + xor \T03_s, \T03_s, \S11_s + vsll.vi \T03_v, \S10_v, 3 + xor \T03_s, \T03_s, \S16_s + vsrl.vx \S07_v, \S10_v, \T04_s + xor \T03_s, \T03_s, \S21_s + vxor.vv \S07_v, \S07_v, \T03_v + xor \S01_s, \S01_s, \T02_s + li \T04_s, 64-28 + xor \S06_s, \S06_s, \T02_s + vsll.vi \T02_v, \S03_v, 28 + xor \S11_s, \S11_s, \T02_s + vsrl.vx \S10_v, \S03_v, \T04_s + xor \S16_s, \S16_s, \T02_s + vxor.vv \S10_v, \S10_v, \T02_v + xor \S21_s, \S21_s, \T02_s + li \T04_s, 64-21 + xor \T02_s, \S04_s, \S09_s + vsll.vi \T03_v, \S18_v, 21 + sd \S01_s, 19*8(sp) + xor \T02_s, \T02_s, \S14_s + vsrl.vx \S03_v, \S18_v, \T04_s + xor \T02_s, \T02_s, \S19_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \T02_s, \T02_s, \S24_s + li \S01_s, 64-15 + rori \T04_s, \T02_s, 63 + vsll.vi \T02_v, \S17_v, 15 + xor \T01_s, \T01_s, \T04_s + vsrl.vx \S18_v, \S17_v, \S01_s + xor \T04_s, \S03_s, \S08_s + vxor.vv \S18_v, \S18_v, \T02_v + xor \T04_s, \T04_s, \S13_s + li \S01_s, 64-10 + xor \T04_s, \T04_s, \S18_s + vsll.vi \T03_v, \S11_v, 10 + xor \T04_s, \T04_s, \S23_s + vsrl.vx \S17_v, \S11_v, \S01_s + xor \S03_s, \S03_s, \T01_s + vxor.vv \S17_v, \S17_v, \T03_v + xor \S08_s, \S08_s, \T01_s + li \S01_s, 64-20 + xor \S13_s, \S13_s, \T01_s + vsll.vi \T02_v, \S09_v, 20 + xor \S18_s, \S18_s, \T01_s + vsrl.vx \S11_v, \S09_v, \S01_s + xor \S23_s, \S23_s, \T01_s + vxor.vv \S11_v, \S11_v, \T02_v + rori \T00_s, \T00_s, 64-1 + li \S01_s, 61 + xor \T00_s, \T00_s, \T04_s + vsll.vx \T03_v, \S22_v, \S01_s + xor \S04_s, \S04_s, \T00_s + vsrl.vi \S09_v, \S22_v, 64-61 + xor \S09_s, \S09_s, \T00_s + vxor.vv \S09_v, \S09_v, \T03_v + xor \S14_s, \S14_s, \T00_s + li \S01_s, 39 + xor \S19_s, \S19_s, \T00_s + vsll.vx \T02_v, \S14_v, \S01_s + xor \S24_s, \S24_s, \T00_s + vsrl.vi \S22_v, \S14_v, 64-39 + rori \T04_s, \T04_s, 64-1 + vxor.vv \S22_v, \S22_v, \T02_v + xor \T04_s, \T04_s, \T03_s + li \S01_s, 64-18 + xor \S02_s, \S02_s, \T04_s + vsll.vi \T03_v, \S20_v, 18 + xor \S07_s, \S07_s, \T04_s + vsrl.vx \S14_v, \S20_v, \S01_s + xor \S12_s, \S12_s, \T04_s + vxor.vv \S14_v, \S14_v, \T03_v + xor \S17_s, \S17_s, \T04_s + li \S01_s, 64-27 + xor \S22_s, \S22_s, \T04_s + vsll.vi \T02_v, \S04_v, 27 + rori \T03_s, \T03_s, 64-1 + vsrl.vx \S20_v, \S04_v, \S01_s + xor \T03_s, \T03_s, \T02_s + vxor.vv \S20_v, \S20_v, \T02_v + xor \S05_s, \S05_s, \T03_s + li \S01_s, 64-14 + xor \S10_s, \S10_s, \T03_s + vsll.vi \T03_v, \S24_v, 14 + xor \S15_s, \S15_s, \T03_s + vsrl.vx \S04_v, \S24_v, \S01_s + xor \S20_s, \S20_s, \T03_s + vxor.vv \S04_v, \S04_v, \T03_v + xor \T00_s, \S00_s, \T03_s + li \S01_s, 64-2 + rori \T01_s, \S06_s, 64-44 + vsll.vi \T02_v, \S21_v, 2 + rori \S00_s, \S02_s, 64-62 + vsrl.vx \S24_v, \S21_v, \S01_s + rori \S02_s, \S12_s, 64-43 + vxor.vv \S24_v, \S24_v, \T02_v + rori \S12_s, \S13_s, 64-25 + li \S01_s, 36 + rori \S13_s, \S19_s, 64-8 + vsll.vx \T03_v, \S05_v, \S01_s + rori \S19_s, \S23_s, 64-56 + vsrl.vi \S21_v, \S05_v, 64-36 + rori \S23_s, \S15_s, 64-41 + vxor.vv \S21_v, \S21_v, \T03_v + ld \S01_s, 19*8(sp) + rori \S15_s, \S01_s, 64-1 + vor.vv \T02_v, \S11_v, \S07_v + rori \S01_s, \S08_s, 64-55 + vxor.vv \S05_v, \S10_v, \T02_v + rori \S08_s, \S16_s, 64-45 + vand.vv \T03_v, \S07_v, \S08_v + rori \S16_s, \S07_s, 64-6 + vxor.vv \S06_v, \S11_v, \T03_v + rori \S07_s, \S10_s, 64-3 + vnot.v \T02_v, \S09_v + rori \S10_s, \S03_s, 64-28 + vor.vv \T02_v, \T02_v, \S08_v + rori \S03_s, \S18_s, 64-21 + vxor.vv \S07_v, \S07_v, \T02_v + rori \S18_s, \S17_s, 64-15 + vor.vv \T03_v, \S09_v, \S10_v + rori \S17_s, \S11_s, 64-10 + vxor.vv \S08_v, \S08_v, \T03_v + rori \S11_s, \S09_s, 64-20 + vand.vv \T02_v, \S10_v, \S11_v + rori \S09_s, \S22_s, 64-61 + vxor.vv \S09_v, \S09_v, \T02_v + rori \S22_s, \S14_s, 64-39 + vor.vv \T03_v, \S16_v, \S12_v + rori \S14_s, \S20_s, 64-18 + vxor.vv \S10_v, \S15_v, \T03_v + rori \S20_s, \S04_s, 64-27 + vand.vv \T02_v, \S12_v, \S13_v + rori \S04_s, \S24_s, 64-14 + vxor.vv \S11_v, \S16_v, \T02_v + rori \S24_s, \S21_s, 64-2 + vnot.v \T03_v, \S13_v + rori \S21_s, \S05_s, 64-36 + vand.vv \T03_v, \T03_v, \S14_v + andn \T02_s, \S07_s, \S11_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S05_s, \T02_s, \S10_s + vnot.v \T03_v, \S13_v + andn \T03_s, \S08_s, \S07_s + vor.vv \T02_v, \S14_v, \S15_v + xor \S06_s, \T03_s, \S11_s + vxor.vv \S13_v, \T03_v, \T02_v + andn \T02_s, \S09_s, \S08_s + vand.vv \T03_v, \S15_v, \S16_v + xor \S07_s, \T02_s, \S07_s + vxor.vv \S14_v, \S14_v, \T03_v + andn \T03_s, \S10_s, \S09_s + vand.vv \T02_v, \S21_v, \S17_v + xor \S08_s, \T03_s, \S08_s + vxor.vv \S15_v, \S20_v, \T02_v + andn \T02_s, \S11_s, \S10_s + vor.vv \T03_v, \S17_v, \S18_v + xor \S09_s, \T02_s, \S09_s + vxor.vv \S16_v, \S21_v, \T03_v + andn \T03_s, \S12_s, \S16_s + vnot.v \T02_v, \S18_v + xor \S10_s, \T03_s, \S15_s + vor.vv \T02_v, \T02_v, \S19_v + andn \T02_s, \S13_s, \S12_s + vxor.vv \S17_v, \S17_v, \T02_v + xor \S11_s, \T02_s, \S16_s + vnot.v \T02_v, \S18_v + andn \T03_s, \S14_s, \S13_s + vand.vv \T03_v, \S19_v, \S20_v + xor \S12_s, \T03_s, \S12_s + vxor.vv \S18_v, \T02_v, \T03_v + andn \T02_s, \S15_s, \S14_s + vor.vv \T02_v, \S20_v, \S21_v + xor \S13_s, \T02_s, \S13_s + vxor.vv \S19_v, \S19_v, \T02_v + andn \T03_s, \S16_s, \S15_s + vnot.v \T03_v, \S01_v + xor \S14_s, \T03_s, \S14_s + vand.vv \T03_v, \T03_v, \S22_v + andn \T02_s, \S17_s, \S21_s + vxor.vv \S20_v, \S00_v, \T03_v + xor \S15_s, \T02_s, \S20_s + vnot.v \T03_v, \S01_v + andn \T03_s, \S18_s, \S17_s + vor.vv \T02_v, \S22_v, \S23_v + xor \S16_s, \T03_s, \S21_s + vxor.vv \S21_v, \T03_v, \T02_v + andn \T02_s, \S19_s, \S18_s + vand.vv \T03_v, \S23_v, \S24_v + xor \S17_s, \T02_s, \S17_s + vxor.vv \S22_v, \S22_v, \T03_v + andn \T03_s, \S20_s, \S19_s + vor.vv \T02_v, \S24_v, \S00_v + xor \S18_s, \T03_s, \S18_s + vxor.vv \S23_v, \S23_v, \T02_v + andn \T02_s, \S21_s, \S20_s + vand.vv \T03_v, \S00_v, \S01_v + xor \S19_s, \T02_s, \S19_s + vxor.vv \S24_v, \S24_v, \T03_v + andn \T03_s, \S22_s, \S01_s + vor.vv \T02_v, \T01_v, \S02_v + xor \S20_s, \T03_s, \S00_s + vxor.vv \S00_v, \T00_v, \T02_v + andn \T02_s, \S23_s, \S22_s + vnot.v \T03_v, \S02_v + xor \S21_s, \T02_s, \S01_s + vor.vv \T03_v, \T03_v, \S03_v + andn \T03_s, \S24_s, \S23_s + vxor.vv \S01_v, \T01_v, \T03_v + xor \S22_s, \T03_s, \S22_s + vand.vv \T02_v, \S03_v, \S04_v + andn \T02_s, \S00_s, \S24_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \S23_s, \T02_s, \S23_s + vor.vv \T03_v, \S04_v, \T00_v + andn \T03_s, \S01_s, \S00_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \S24_s, \T03_s, \S24_s + vand.vv \T02_v, \T00_v, \T01_v + andn \T03_s, \S02_s, \T01_s + vxor.vv \S04_v, \S04_v, \T02_v + xor \S00_s, \T03_s, \T00_s + ld \T04_s, 18*8(sp) + andn \T03_s, \S03_s, \S02_s + ld \T02_s, 0(\T04_s) + xor \S01_s, \T03_s, \T01_s + + andn \T03_s, \S04_s, \S03_s + vxor.vx \S00_v, \S00_v, \T02_s + xor \S02_s, \T03_s, \S02_s + addi \T04_s, \T04_s, 8 + andn \T03_s, \T00_s, \S04_s + sd \T04_s, 18*8(sp) + xor \S03_s, \T03_s, \S03_s + andn \T03_s, \T01_s, \T00_s + xor \S04_s, \T03_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_4x +.align 2 +KeccakF1600_StatePermute_RV64V_4x: + addi sp, sp, -8*21 + SaveRegs + # save a0 + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + # load 1-th scalar impl inputs and vector impl inputs + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 12 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + # outer loop control + ld a0, 15*8(sp) + ld s11, 20*8(sp) + bnez s11, final_1th_loop +final_0th_loop: + addi a0, a0, 25*16 + j final_end +final_1th_loop: + StoreStates_v + addi a0, a0, 25*8 +final_end: + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 2 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x5.s b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x5.s new file mode 100644 index 000000000..3df7c5aef --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x5.s @@ -0,0 +1,999 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \T00_v, \T00_v, \S15_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vxor.vv \T00_v, \T00_v, \S20_v + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \T01_v, \T01_v, \S12_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vxor.vv \T01_v, \T01_v, \S17_v + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vxor.vv \T01_v, \T01_v, \S22_v + xor \S11_s, \S11_s, \T02_s + li \T04_s, 64-1 + vsll.vi \T03_v, \T01_v, 1 + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + vsrl.vx \T02_v, \T01_v, \T04_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vxor.vv \T02_v, \T02_v, \T03_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vxor.vv \T02_v, \T02_v, \T00_v + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vxor.vv \T03_v, \S01_v, \S06_v + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vxor.vv \T03_v, \T03_v, \S11_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vxor.vv \T03_v, \T03_v, \S16_v + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vxor.vv \T03_v, \T03_v, \S21_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + vxor.vv \S06_v, \S06_v, \T02_v + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vxor.vv \S21_v, \S21_v, \T02_v + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + vxor.vv \T02_v, \S04_v, \S09_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + vxor.vv \T02_v, \T02_v, \S14_v + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \T02_v, \T02_v, \S19_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + vxor.vv \T02_v, \T02_v, \S24_v + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vsll.vi \T04_v, \T02_v, 1 + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \S20_s, \S20_s, \T03_s + li \T04_s, 63 + vsrl.vx \T04_v, \T02_v, \T04_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + vxor.vv \T01_v, \T01_v, \T04_v + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + vxor.vv \T04_v, \S03_v, \S08_v + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + vxor.vv \T04_v, \T04_v, \S13_v + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + vxor.vv \T04_v, \T04_v, \S18_v + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + vxor.vv \T04_v, \T04_v, \S23_v + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + vxor.vv \S03_v, \S03_v, \T01_v + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + vxor.vv \S08_v, \S08_v, \T01_v + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + vxor.vv \S13_v, \S13_v, \T01_v + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + vxor.vv \S18_v, \S18_v, \T01_v + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + vxor.vv \S23_v, \S23_v, \T01_v + rori \S14_s, \S20_s, 64-18 + li \T04_s, 64-1 + vsll.vi \T01_v, \T00_v, 1 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + vsrl.vx \T00_v, \T00_v, \T04_s + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + vxor.vv \T00_v, \T00_v, \T01_v + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + vxor.vv \T00_v, \T00_v, \T04_v + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + vxor.vv \S04_v, \S04_v, \T00_v + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + vxor.vv \S09_v, \S09_v, \T00_v + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + vxor.vv \S14_v, \S14_v, \T00_v + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + vxor.vv \S19_v, \S19_v, \T00_v + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + vxor.vv \S24_v, \S24_v, \T00_v + andn \T02_s, \S13_s, \S12_s + li \T04_s, 64-1 + vsll.vi \T01_v, \T04_v, 1 + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + vsrl.vx \T04_v, \T04_v, \T04_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + vxor.vv \T04_v, \T04_v, \T01_v + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + vxor.vv \T04_v, \T04_v, \T03_v + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + vxor.vv \S02_v, \S02_v, \T04_v + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + vxor.vv \S07_v, \S07_v, \T04_v + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + vxor.vv \S12_v, \S12_v, \T04_v + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + vxor.vv \S17_v, \S17_v, \T04_v + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + vxor.vv \S22_v, \S22_v, \T04_v + xor \S19_s, \T02_s, \S19_s + li \T04_s, 64-1 + vsll.vi \T01_v, \T03_v, 1 + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + vsrl.vx \T03_v, \T03_v, \T04_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + vxor.vv \T03_v, \T03_v, \T01_v + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + vxor.vv \T03_v, \T03_v, \T02_v + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vxor.vv \S05_v, \S05_v, \T03_v + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + vxor.vv \S10_v, \S10_v, \T03_v + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + vxor.vv \S15_v, \S15_v, \T03_v + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + vxor.vv \S20_v, \S20_v, \T03_v + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + vxor.vv \T00_v, \S00_v, \T03_v + andn \T03_s, \T00_s, \S04_s + li \T04_s, 44 + vsll.vx \T02_v, \S06_v, \T04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + vsrl.vi \T01_v, \S06_v, 64-44 + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + vxor.vv \T01_v, \T01_v, \T02_v + ld \T03_s, 0(\T04_s) + li \T02_s, 62 + vsll.vx \T03_v, \S02_v, \T02_s + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + vsrl.vi \S00_v, \S02_v, 64-62 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \T00_s, \T00_s, \S10_s + li \T04_s, 43 + vsll.vx \T02_v, \S12_v, \T04_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vsrl.vi \S02_v, \S12_v, 64-43 + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \T01_s, \T01_s, \S17_s + li \T04_s, 64-25 + vsll.vi \T03_v, \S13_v, 25 + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + vsrl.vx \S12_v, \S13_v, \T04_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \T03_s, \T03_s, \S11_s + li \T04_s, 64-8 + vsll.vi \T02_v, \S19_v, 8 + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vsrl.vx \S13_v, \S19_v, \T04_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vxor.vv \S13_v, \S13_v, \T02_v + xor \S11_s, \S11_s, \T02_s + li \T04_s, 56 + vsll.vx \T03_v, \S23_v, \T04_s + xor \S16_s, \S16_s, \T02_s + sd \S01_s, 19*8(sp) + xor \S21_s, \S21_s, \T02_s + vsrl.vi \S19_v, \S23_v, 64-56 + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vxor.vv \S19_v, \S19_v, \T03_v + xor \T02_s, \T02_s, \S19_s + li \T04_s, 41 + vsll.vx \T02_v, \S15_v, \T04_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + vsrl.vi \S23_v, \S15_v, 64-41 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \T04_s, \T04_s, \S13_s + li \S01_s, 64-1 + vsll.vi \T03_v, \S01_v, 1 + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vsrl.vx \S15_v, \S01_v, \S01_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \S13_s, \S13_s, \T01_s + li \S01_s, 55 + vsll.vx \T02_v, \S08_v, \S01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vsrl.vi \S01_v, \S08_v, 64-55 + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S04_s, \S04_s, \T00_s + li \S01_s, 45 + vsll.vx \T03_v, \S16_v, \S01_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vsrl.vi \S08_v, \S16_v, 64-45 + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vxor.vv \S08_v, \S08_v, \T03_v + rori \T04_s, \T04_s, 64-1 + li \S01_s, 64-6 + vsll.vi \T02_v, \S07_v, 6 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + vsrl.vx \S16_v, \S07_v, \S01_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \S17_s, \S17_s, \T04_s + li \S01_s, 64-3 + vsll.vi \T03_v, \S10_v, 3 + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + vsrl.vx \S07_v, \S10_v, \S01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vxor.vv \S07_v, \S07_v, \T03_v + xor \S10_s, \S10_s, \T03_s + li \S01_s, 64-28 + vsll.vi \T02_v, \S03_v, 28 + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vsrl.vx \S10_v, \S03_v, \S01_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + vxor.vv \S10_v, \S10_v, \T02_v + rori \S00_s, \S02_s, 64-62 + li \S01_s, 64-21 + vsll.vi \T03_v, \S18_v, 21 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + vsrl.vx \S03_v, \S18_v, \S01_s + rori \S13_s, \S19_s, 64-8 + ld \S01_s, 19*8(sp) + rori \S19_s, \S23_s, 64-56 + vxor.vv \S03_v, \S03_v, \T03_v + rori \S23_s, \S15_s, 64-41 + li \T04_s, 64-15 + vsll.vi \T02_v, \S17_v, 15 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + vsrl.vx \S18_v, \S17_v, \T04_s + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + vxor.vv \S18_v, \S18_v, \T02_v + rori \S07_s, \S10_s, 64-3 + li \T04_s, 64-10 + vsll.vi \T03_v, \S11_v, 10 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + vsrl.vx \S17_v, \S11_v, \T04_s + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + vxor.vv \S17_v, \S17_v, \T03_v + rori \S11_s, \S09_s, 64-20 + li \T04_s, 64-20 + vsll.vi \T02_v, \S09_v, 20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + vsrl.vx \S11_v, \S09_v, \T04_s + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + vxor.vv \S11_v, \S11_v, \T02_v + rori \S04_s, \S24_s, 64-14 + li \T04_s, 61 + vsll.vx \T03_v, \S22_v, \T04_s + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + vsrl.vi \S09_v, \S22_v, 64-61 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + vxor.vv \S09_v, \S09_v, \T03_v + andn \T03_s, \S08_s, \S07_s + li \T04_s, 39 + vsll.vx \T02_v, \S14_v, \T04_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + vsrl.vi \S22_v, \S14_v, 64-39 + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + vxor.vv \S22_v, \S22_v, \T02_v + xor \S08_s, \T03_s, \S08_s + li \T04_s, 64-18 + vsll.vi \T03_v, \S20_v, 18 + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + vsrl.vx \S14_v, \S20_v, \T04_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + vxor.vv \S14_v, \S14_v, \T03_v + andn \T02_s, \S13_s, \S12_s + li \T04_s, 64-27 + vsll.vi \T02_v, \S04_v, 27 + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + vsrl.vx \S20_v, \S04_v, \T04_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + vxor.vv \S20_v, \S20_v, \T02_v + xor \S13_s, \T02_s, \S13_s + li \T04_s, 64-14 + vsll.vi \T03_v, \S24_v, 14 + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + vsrl.vx \S04_v, \S24_v, \T04_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + vxor.vv \S04_v, \S04_v, \T03_v + andn \T03_s, \S18_s, \S17_s + li \T04_s, 64-2 + vsll.vi \T02_v, \S21_v, 2 + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + vsrl.vx \S24_v, \S21_v, \T04_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + vxor.vv \S24_v, \S24_v, \T02_v + xor \S18_s, \T03_s, \S18_s + li \T04_s, 36 + vsll.vx \T03_v, \S05_v, \T04_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + vsrl.vi \S21_v, \S05_v, 64-36 + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + vxor.vv \S21_v, \S21_v, \T03_v + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + vor.vv \T02_v, \S11_v, \S07_v + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + vxor.vv \S05_v, \S10_v, \T02_v + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vand.vv \T03_v, \S07_v, \S08_v + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + vxor.vv \S06_v, \S11_v, \T03_v + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + vnot.v \T02_v, \S09_v + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + vor.vv \T02_v, \T02_v, \S08_v + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + vxor.vv \S07_v, \S07_v, \T02_v + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + vor.vv \T03_v, \S09_v, \S10_v + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + vxor.vv \S08_v, \S08_v, \T03_v + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + vand.vv \T02_v, \S10_v, \S11_v + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + vxor.vv \S09_v, \S09_v, \T02_v + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vor.vv \T03_v, \S16_v, \S12_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + vxor.vv \S10_v, \S15_v, \T03_v + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + vand.vv \T02_v, \S12_v, \S13_v + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + vxor.vv \S11_v, \S16_v, \T02_v + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + vnot.v \T03_v, \S13_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vand.vv \T03_v, \T03_v, \S14_v + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vnot.v \T03_v, \S13_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vor.vv \T02_v, \S14_v, \S15_v + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + vxor.vv \S13_v, \T03_v, \T02_v + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vand.vv \T03_v, \S15_v, \S16_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vxor.vv \S14_v, \S14_v, \T03_v + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vand.vv \T02_v, \S21_v, \S17_v + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vxor.vv \S15_v, \S20_v, \T02_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vor.vv \T03_v, \S17_v, \S18_v + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vxor.vv \S16_v, \S21_v, \T03_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + vnot.v \T02_v, \S18_v + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + vor.vv \T02_v, \T02_v, \S19_v + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + vxor.vv \S17_v, \S17_v, \T02_v + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vnot.v \T02_v, \S18_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vand.vv \T03_v, \S19_v, \S20_v + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + vxor.vv \S18_v, \T02_v, \T03_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + vor.vv \T02_v, \S20_v, \S21_v + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \S19_v, \S19_v, \T02_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + vnot.v \T03_v, \S01_v + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vand.vv \T03_v, \T03_v, \S22_v + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vxor.vv \S20_v, \S00_v, \T03_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vnot.v \T03_v, \S01_v + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + vor.vv \T02_v, \S22_v, \S23_v + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + vxor.vv \S21_v, \T03_v, \T02_v + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + vand.vv \T03_v, \S23_v, \S24_v + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + vxor.vv \S22_v, \S22_v, \T03_v + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + vor.vv \T02_v, \S24_v, \S00_v + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + vxor.vv \S23_v, \S23_v, \T02_v + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + vand.vv \T03_v, \S00_v, \S01_v + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + vxor.vv \S24_v, \S24_v, \T03_v + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + vor.vv \T02_v, \T01_v, \S02_v + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + vxor.vv \S00_v, \T00_v, \T02_v + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + vnot.v \T03_v, \S02_v + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + vor.vv \T03_v, \T03_v, \S03_v + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + vxor.vv \S01_v, \T01_v, \T03_v + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + vand.vv \T02_v, \S03_v, \S04_v + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + vxor.vv \S02_v, \S02_v, \T02_v + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + vor.vv \T03_v, \S04_v, \T00_v + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + vxor.vv \S03_v, \S03_v, \T03_v + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + vand.vv \T02_v, \T00_v, \T01_v + andn \T03_s, \S13_s, \S12_s + xor \S11_s, \T03_s, \S16_s + vxor.vv \S04_v, \S04_v, \T02_v + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + ld \T04_s, 18*8(sp) + andn \T03_s, \S15_s, \S14_s + xor \S13_s, \T03_s, \S13_s + ld \T02_s, 0(\T04_s) + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + vxor.vx \S00_v, \S00_v, \T02_s + andn \T03_s, \S17_s, \S21_s + xor \S15_s, \T03_s, \S20_s + addi \T04_s, \T04_s, 8 + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + sd \T04_s, 18*8(sp) + andn \T03_s, \S19_s, \S18_s + xor \S17_s, \T03_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T03_s, \S21_s, \S20_s + xor \S19_s, \T03_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T03_s, \S23_s, \S22_s + xor \S21_s, \T03_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T03_s, \S00_s, \S24_s + xor \S23_s, \T03_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T03_s, \S02_s, \T01_s + xor \S00_s, \T03_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T03_s, \S04_s, \S03_s + xor \S02_s, \T03_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T03_s, \T01_s, \T00_s + xor \S04_s, \T03_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_5x +.align 2 +KeccakF1600_StatePermute_RV64V_5x: + addi sp, sp, -8*21 + SaveRegs + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 8 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + ld a0, 15*8(sp) + ld s11, 20*8(sp) + addi gp, s11, -2 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*16 + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 3 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x6.s b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x6.s new file mode 100644 index 000000000..26ab1d3b6 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x6.s @@ -0,0 +1,1137 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + vxor.vv \T00_v, \T00_v, \S15_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \T00_v, \T00_v, \S20_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + sd \S01_s, 19*8(sp) + xor \S16_s, \S16_s, \T02_s + vxor.vv \T01_v, \T01_v, \S12_v + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vxor.vv \T01_v, \T01_v, \S17_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + vxor.vv \T01_v, \T01_v, \S22_v + xor \T01_s, \T01_s, \T04_s + li \S01_s, 64-1 + xor \T04_s, \S03_s, \S08_s + vsll.vi \T03_v, \T01_v, 1 + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vsrl.vx \T02_v, \T01_v, \S01_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \T02_v, \T02_v, \T03_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + vxor.vv \T02_v, \T02_v, \T00_v + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \T03_v, \S01_v, \S06_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vxor.vv \T03_v, \T03_v, \S11_v + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + vxor.vv \T03_v, \T03_v, \S16_v + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \T03_v, \T03_v, \S21_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + ld \S01_s, 19*8(sp) + xor \S15_s, \S15_s, \T03_s + vxor.vv \S06_v, \S06_v, \T02_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + vxor.vv \S11_v, \S11_v, \T02_v + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + vxor.vv \S16_v, \S16_v, \T02_v + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + vxor.vv \S21_v, \S21_v, \T02_v + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + vxor.vv \T02_v, \S04_v, \S09_v + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + vxor.vv \T02_v, \T02_v, \S14_v + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + vxor.vv \T02_v, \T02_v, \S19_v + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + vxor.vv \T02_v, \T02_v, \S24_v + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + vsll.vi \T04_v, \T02_v, 1 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \S05_s, \T02_s, \S10_s + li \T04_s, 63 + andn \T03_s, \S08_s, \S07_s + vsrl.vx \T04_v, \T02_v, \T04_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + vxor.vv \T01_v, \T01_v, \T04_v + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + vxor.vv \T04_v, \S03_v, \S08_v + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + vxor.vv \T04_v, \T04_v, \S13_v + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + vxor.vv \T04_v, \T04_v, \S18_v + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + vxor.vv \T04_v, \T04_v, \S23_v + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + vxor.vv \S03_v, \S03_v, \T01_v + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + vxor.vv \S08_v, \S08_v, \T01_v + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + vxor.vv \S13_v, \S13_v, \T01_v + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + vxor.vv \S18_v, \S18_v, \T01_v + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + vxor.vv \S23_v, \S23_v, \T01_v + xor \S21_s, \T02_s, \S01_s + li \T04_s, 64-1 + andn \T03_s, \S24_s, \S23_s + vsll.vi \T01_v, \T00_v, 1 + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vsrl.vx \T00_v, \T00_v, \T04_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + vxor.vv \T00_v, \T00_v, \T01_v + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + vxor.vv \T00_v, \T00_v, \T04_v + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + vxor.vv \S04_v, \S04_v, \T00_v + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + vxor.vv \S09_v, \S09_v, \T00_v + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + vxor.vv \S14_v, \S14_v, \T00_v + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vxor.vv \S19_v, \S19_v, \T00_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vxor.vv \S24_v, \S24_v, \T00_v + xor \T01_s, \S02_s, \S07_s + li \T04_s, 64-1 + xor \T01_s, \T01_s, \S12_s + vsll.vi \T01_v, \T04_v, 1 + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + vsrl.vx \T04_v, \T04_v, \T04_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \T04_v, \T04_v, \T01_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vxor.vv \T04_v, \T04_v, \T03_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + sd \S01_s, 19*8(sp) + xor \S16_s, \S16_s, \T02_s + vxor.vv \S02_v, \S02_v, \T04_v + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vxor.vv \S07_v, \S07_v, \T04_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + vxor.vv \S12_v, \S12_v, \T04_v + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vxor.vv \S17_v, \S17_v, \T04_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + vxor.vv \S22_v, \S22_v, \T04_v + xor \S08_s, \S08_s, \T01_s + li \S01_s, 64-1 + xor \S13_s, \S13_s, \T01_s + vsll.vi \T01_v, \T03_v, 1 + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + vsrl.vx \T03_v, \T03_v, \S01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \T03_v, \T03_v, \T01_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vxor.vv \T03_v, \T03_v, \T02_v + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + vxor.vv \S05_v, \S05_v, \T03_v + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \S10_v, \S10_v, \T03_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vxor.vv \S20_v, \S20_v, \T03_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + vxor.vv \T00_v, \S00_v, \T03_v + rori \S00_s, \S02_s, 64-62 + li \S01_s, 44 + rori \S02_s, \S12_s, 64-43 + vsll.vx \T02_v, \S06_v, \S01_s + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + ld \S01_s, 19*8(sp) + rori \S19_s, \S23_s, 64-56 + vsrl.vi \T01_v, \S06_v, 64-44 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + vxor.vv \T01_v, \T01_v, \T02_v + rori \S08_s, \S16_s, 64-45 + li \T04_s, 62 + rori \S16_s, \S07_s, 64-6 + vsll.vx \T03_v, \S02_v, \T04_s + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + vsrl.vi \S00_v, \S02_v, 64-62 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + vxor.vv \S00_v, \S00_v, \T03_v + rori \S09_s, \S22_s, 64-61 + li \T04_s, 43 + rori \S22_s, \S14_s, 64-39 + vsll.vx \T02_v, \S12_v, \T04_s + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + vsrl.vi \S02_v, \S12_v, 64-43 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \S05_s, \T02_s, \S10_s + li \T04_s, 64-25 + andn \T03_s, \S08_s, \S07_s + vsll.vi \T03_v, \S13_v, 25 + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + vsrl.vx \S12_v, \S13_v, \T04_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S09_s, \T02_s, \S09_s + li \T04_s, 64-8 + andn \T03_s, \S12_s, \S16_s + vsll.vi \T02_v, \S19_v, 8 + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + vsrl.vx \S13_v, \S19_v, \T04_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + vxor.vv \S13_v, \S13_v, \T02_v + xor \S13_s, \T02_s, \S13_s + li \T04_s, 56 + andn \T03_s, \S16_s, \S15_s + vsll.vx \T03_v, \S23_v, \T04_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + vsrl.vi \S19_v, \S23_v, 64-56 + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + vxor.vv \S19_v, \S19_v, \T03_v + xor \S17_s, \T02_s, \S17_s + li \T04_s, 41 + andn \T03_s, \S20_s, \S19_s + vsll.vx \T02_v, \S15_v, \T04_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + vsrl.vi \S23_v, \S15_v, 64-41 + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \S21_s, \T02_s, \S01_s + li \T04_s, 64-1 + andn \T03_s, \S24_s, \S23_s + vsll.vi \T03_v, \S01_v, 1 + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vsrl.vx \S15_v, \S01_v, \T04_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \S00_s, \T02_s, \T00_s + li \T04_s, 55 + andn \T03_s, \S03_s, \S02_s + vsll.vx \T02_v, \S08_v, \T04_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + vsrl.vi \S01_v, \S08_v, 64-55 + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S04_s, \T02_s, \S04_s + li \T03_s, 45 + ld \T04_s, 17*8(sp) + vsll.vx \T03_v, \S16_v, \T03_s + ld \T02_s, 0(\T04_s) + xor \S00_s, \S00_s, \T02_s + addi \T04_s, \T04_s, 8 + vsrl.vi \S08_v, \S16_v, 64-45 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \T00_s, \T00_s, \S15_s + li \T04_s, 64-6 + xor \T00_s, \T00_s, \S20_s + vsll.vi \T02_v, \S07_v, 6 + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + vsrl.vx \S16_v, \S07_v, \T04_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \T03_s, \S01_s, \S06_s + li \T04_s, 64-3 + xor \T03_s, \T03_s, \S11_s + vsll.vi \T03_v, \S10_v, 3 + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vsrl.vx \S07_v, \S10_v, \T04_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + vxor.vv \S07_v, \S07_v, \T03_v + xor \S21_s, \S21_s, \T02_s + li \T04_s, 64-28 + xor \T02_s, \S04_s, \S09_s + vsll.vi \T02_v, \S03_v, 28 + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + sd \S01_s, 19*8(sp) + xor \T02_s, \T02_s, \S24_s + vsrl.vx \S10_v, \S03_v, \T04_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + vxor.vv \S10_v, \S10_v, \T02_v + xor \T04_s, \T04_s, \S13_s + li \S01_s, 64-21 + xor \T04_s, \T04_s, \S18_s + vsll.vi \T03_v, \S18_v, 21 + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vsrl.vx \S03_v, \S18_v, \S01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vxor.vv \S03_v, \S03_v, \T03_v + rori \T00_s, \T00_s, 64-1 + li \S01_s, 64-15 + xor \T00_s, \T00_s, \T04_s + vsll.vi \T02_v, \S17_v, 15 + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vsrl.vx \S18_v, \S17_v, \S01_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + vxor.vv \S18_v, \S18_v, \T02_v + xor \T04_s, \T04_s, \T03_s + li \S01_s, 64-10 + xor \S02_s, \S02_s, \T04_s + vsll.vi \T03_v, \S11_v, 10 + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vsrl.vx \S17_v, \S11_v, \S01_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + vxor.vv \S17_v, \S17_v, \T03_v + xor \S05_s, \S05_s, \T03_s + li \S01_s, 64-20 + xor \S10_s, \S10_s, \T03_s + vsll.vi \T02_v, \S09_v, 20 + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vsrl.vx \S11_v, \S09_v, \S01_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + vxor.vv \S11_v, \S11_v, \T02_v + rori \S12_s, \S13_s, 64-25 + li \S01_s, 61 + rori \S13_s, \S19_s, 64-8 + vsll.vx \T03_v, \S22_v, \S01_s + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + ld \S01_s, 19*8(sp) + rori \S15_s, \S01_s, 64-1 + vsrl.vi \S09_v, \S22_v, 64-61 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + vxor.vv \S09_v, \S09_v, \T03_v + rori \S07_s, \S10_s, 64-3 + li \T04_s, 39 + rori \S10_s, \S03_s, 64-28 + vsll.vx \T02_v, \S14_v, \T04_s + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + vsrl.vi \S22_v, \S14_v, 64-39 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + vxor.vv \S22_v, \S22_v, \T02_v + rori \S14_s, \S20_s, 64-18 + li \T04_s, 64-18 + rori \S20_s, \S04_s, 64-27 + vsll.vi \T03_v, \S20_v, 18 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + vsrl.vx \S14_v, \S20_v, \T04_s + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + vxor.vv \S14_v, \S14_v, \T03_v + xor \S06_s, \T03_s, \S11_s + li \T04_s, 64-27 + andn \T02_s, \S09_s, \S08_s + vsll.vi \T02_v, \S04_v, 27 + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + vsrl.vx \S20_v, \S04_v, \T04_s + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + vxor.vv \S20_v, \S20_v, \T02_v + xor \S10_s, \T03_s, \S15_s + li \T04_s, 64-14 + andn \T02_s, \S13_s, \S12_s + vsll.vi \T03_v, \S24_v, 14 + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + vsrl.vx \S04_v, \S24_v, \T04_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + vxor.vv \S04_v, \S04_v, \T03_v + xor \S14_s, \T03_s, \S14_s + li \T04_s, 64-2 + andn \T02_s, \S17_s, \S21_s + vsll.vi \T02_v, \S21_v, 2 + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + vsrl.vx \S24_v, \S21_v, \T04_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + vxor.vv \S24_v, \S24_v, \T02_v + xor \S18_s, \T03_s, \S18_s + li \T04_s, 36 + andn \T02_s, \S21_s, \S20_s + vsll.vx \T03_v, \S05_v, \T04_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + vsrl.vi \S21_v, \S05_v, 64-36 + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + vxor.vv \S21_v, \S21_v, \T03_v + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vor.vv \T02_v, \S11_v, \S07_v + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + vxor.vv \S05_v, \S10_v, \T02_v + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + vand.vv \T03_v, \S07_v, \S08_v + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + vxor.vv \S06_v, \S11_v, \T03_v + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + vnot.v \T02_v, \S09_v + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + vor.vv \T02_v, \T02_v, \S08_v + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vxor.vv \S07_v, \S07_v, \T02_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vor.vv \T03_v, \S09_v, \S10_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + vand.vv \T02_v, \S10_v, \S11_v + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vxor.vv \S09_v, \S09_v, \T02_v + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vor.vv \T03_v, \S16_v, \S12_v + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + vxor.vv \S10_v, \S15_v, \T03_v + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vand.vv \T02_v, \S12_v, \S13_v + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vxor.vv \S11_v, \S16_v, \T02_v + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vnot.v \T03_v, \S13_v + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vand.vv \T03_v, \T03_v, \S14_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vxor.vv \S12_v, \S12_v, \T03_v + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + vnot.v \T03_v, \S13_v + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + vor.vv \T02_v, \S14_v, \S15_v + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + vxor.vv \S13_v, \T03_v, \T02_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + vand.vv \T03_v, \S15_v, \S16_v + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + vxor.vv \S14_v, \S14_v, \T03_v + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + vand.vv \T02_v, \S21_v, \S17_v + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vxor.vv \S15_v, \S20_v, \T02_v + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + vor.vv \T03_v, \S17_v, \S18_v + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + vxor.vv \S16_v, \S21_v, \T03_v + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + vnot.v \T02_v, \S18_v + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + vor.vv \T02_v, \T02_v, \S19_v + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + vxor.vv \S17_v, \S17_v, \T02_v + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + vnot.v \T02_v, \S18_v + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + vand.vv \T03_v, \S19_v, \S20_v + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + vxor.vv \S18_v, \T02_v, \T03_v + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + vor.vv \T02_v, \S20_v, \S21_v + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + vxor.vv \S19_v, \S19_v, \T02_v + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + vnot.v \T03_v, \S01_v + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + vand.vv \T03_v, \T03_v, \S22_v + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + vxor.vv \S20_v, \S00_v, \T03_v + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + vnot.v \T03_v, \S01_v + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + vor.vv \T02_v, \S22_v, \S23_v + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + vxor.vv \S21_v, \T03_v, \T02_v + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + vand.vv \T03_v, \S23_v, \S24_v + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + vxor.vv \S22_v, \S22_v, \T03_v + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + vor.vv \T02_v, \S24_v, \S00_v + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + vand.vv \T03_v, \S00_v, \S01_v + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + vxor.vv \S24_v, \S24_v, \T03_v + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + vor.vv \T02_v, \T01_v, \S02_v + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + vxor.vv \S00_v, \T00_v, \T02_v + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + vnot.v \T03_v, \S02_v + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + vor.vv \T03_v, \T03_v, \S03_v + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + vxor.vv \S01_v, \T01_v, \T03_v + xor \S23_s, \T02_s, \S23_s + andn \T02_s, \S01_s, \S00_s + vand.vv \T02_v, \S03_v, \S04_v + xor \S24_s, \T02_s, \S24_s + ld \T04_s, 18*8(sp) + andn \T02_s, \S02_s, \T01_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \S00_s, \T02_s, \T00_s + ld \T03_s, 0(\T04_s) + andn \T02_s, \S03_s, \S02_s + vor.vv \T03_v, \S04_v, \T00_v + xor \S01_s, \T02_s, \T01_s + vxor.vx \S00_v, \S00_v, \T03_s + andn \T02_s, \S04_s, \S03_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \S02_s, \T02_s, \S02_s + addi \T04_s, \T04_s, 8 + andn \T02_s, \T00_s, \S04_s + vand.vv \T02_v, \T00_v, \T01_v + xor \S03_s, \T02_s, \S03_s + sd \T04_s, 18*8(sp) + andn \T02_s, \T01_s, \T00_s + vxor.vv \S04_v, \S04_v, \T02_v + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T02_s, 0(\T04_s) + xor \S00_s, \S00_s, \T02_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_6x +.align 2 +KeccakF1600_StatePermute_RV64V_6x: + addi sp, sp, -8*21 + SaveRegs + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 6 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + ld a0, 15*8(sp) + ld s11, 20*8(sp) + addi gp, s11, -3 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*(16) + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 4 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x8.s b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x8.s new file mode 100644 index 000000000..17975e45e --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imbv_hybrid_x8.s @@ -0,0 +1,1405 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vxor.vv \T00_v, \T00_v, \S10_v + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \T00_v, \T00_v, \S15_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vxor.vv \T00_v, \T00_v, \S20_v + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + sd \S01_s, 19*8(sp) + xor \T02_s, \S04_s, \S09_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + vxor.vv \T01_v, \T01_v, \S12_v + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vxor.vv \T01_v, \T01_v, \S17_v + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \T01_v, \T01_v, \S22_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + li \S01_s, 64-1 + rori \T00_s, \T00_s, 64-1 + vsll.vi \T03_v, \T01_v, 1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vsrl.vx \T02_v, \T01_v, \S01_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + vxor.vv \T02_v, \T02_v, \T03_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \T02_v, \T02_v, \T00_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vxor.vv \T03_v, \S01_v, \S06_v + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vxor.vv \T03_v, \T03_v, \S11_v + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + ld \S01_s, 19*8(sp) + rori \S12_s, \S13_s, 64-25 + vxor.vv \T03_v, \T03_v, \S16_v + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + vxor.vv \T03_v, \T03_v, \S21_v + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + vxor.vv \S01_v, \S01_v, \T02_v + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + vxor.vv \S06_v, \S06_v, \T02_v + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + vxor.vv \S11_v, \S11_v, \T02_v + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + vxor.vv \S16_v, \S16_v, \T02_v + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + vxor.vv \S21_v, \S21_v, \T02_v + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + vxor.vv \T02_v, \S04_v, \S09_v + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + vxor.vv \T02_v, \T02_v, \S14_v + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + vxor.vv \T02_v, \T02_v, \S19_v + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + vxor.vv \T02_v, \T02_v, \S24_v + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + vsll.vi \T04_v, \T02_v, 1 + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + vxor.vv \T01_v, \T01_v, \T04_v + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + li \T04_s, 63 + andn \T03_s, \S22_s, \S01_s + vsrl.vx \T04_v, \T02_v, \T04_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + vxor.vv \T04_v, \S03_v, \S08_v + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + vxor.vv \T04_v, \T04_v, \S13_v + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + vxor.vv \T04_v, \T04_v, \S18_v + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + vxor.vv \T04_v, \T04_v, \S23_v + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + vxor.vv \S03_v, \S03_v, \T01_v + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vxor.vv \S08_v, \S08_v, \T01_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vxor.vv \S13_v, \S13_v, \T01_v + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \S18_v, \S18_v, \T01_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vxor.vv \S23_v, \S23_v, \T01_v + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + li \T04_s, 64-1 + xor \S21_s, \S21_s, \T02_s + vsll.vi \T01_v, \T00_v, 1 + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vsrl.vx \T00_v, \T00_v, \T04_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vxor.vv \T00_v, \T00_v, \T01_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vxor.vv \T00_v, \T00_v, \T04_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + vxor.vv \S04_v, \S04_v, \T00_v + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vxor.vv \S09_v, \S09_v, \T00_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + vxor.vv \S14_v, \S14_v, \T00_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \S19_v, \S19_v, \T00_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vxor.vv \S24_v, \S24_v, \T00_v + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + li \T04_s, 64-1 + xor \S20_s, \S20_s, \T03_s + vsll.vi \T01_v, \T04_v, 1 + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + vsrl.vx \T04_v, \T04_v, \T04_s + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + vxor.vv \T04_v, \T04_v, \T01_v + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + vxor.vv \T04_v, \T04_v, \T03_v + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + vxor.vv \S02_v, \S02_v, \T04_v + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + vxor.vv \S07_v, \S07_v, \T04_v + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + vxor.vv \S12_v, \S12_v, \T04_v + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + vxor.vv \S17_v, \S17_v, \T04_v + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + vxor.vv \S22_v, \S22_v, \T04_v + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + li \T04_s, 64-1 + xor \S09_s, \T02_s, \S09_s + vsll.vi \T01_v, \T03_v, 1 + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + vsrl.vx \T03_v, \T03_v, \T04_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + vxor.vv \T03_v, \T03_v, \T01_v + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + vxor.vv \T03_v, \T03_v, \T02_v + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + vxor.vv \S05_v, \S05_v, \T03_v + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + vxor.vv \S10_v, \S10_v, \T03_v + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + vxor.vv \S15_v, \S15_v, \T03_v + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vxor.vv \S20_v, \S20_v, \T03_v + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + vxor.vv \T00_v, \S00_v, \T03_v + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + li \T04_s, 44 + andn \T02_s, \S04_s, \S03_s + vsll.vx \T02_v, \S06_v, \T04_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + vsrl.vi \T01_v, \S06_v, 64-44 + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + vxor.vv \T01_v, \T01_v, \T02_v + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + li \T01_s, 62 + xor \T00_s, \S00_s, \S05_s + vsll.vx \T03_v, \S02_v, \T01_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + vsrl.vi \S00_v, \S02_v, 64-62 + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + vxor.vv \S00_v, \S00_v, \T03_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + li \T04_s, 43 + xor \T03_s, \T03_s, \S11_s + vsll.vx \T02_v, \S12_v, \T04_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vsrl.vi \S02_v, \S12_v, 64-43 + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + sd \S01_s, 19*8(sp) + xor \T02_s, \S04_s, \S09_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + li \S01_s, 64-25 + xor \T02_s, \T02_s, \S24_s + vsll.vi \T03_v, \S13_v, 25 + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vsrl.vx \S12_v, \S13_v, \S01_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + li \S01_s, 64-8 + xor \S23_s, \S23_s, \T01_s + vsll.vi \T02_v, \S19_v, 8 + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vsrl.vx \S13_v, \S19_v, \S01_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + vxor.vv \S13_v, \S13_v, \T02_v + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + li \S01_s, 56 + xor \S07_s, \S07_s, \T04_s + vsll.vx \T03_v, \S23_v, \S01_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + vsrl.vi \S19_v, \S23_v, 64-56 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vxor.vv \S19_v, \S19_v, \T03_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + li \S01_s, 41 + rori \T01_s, \S06_s, 64-44 + vsll.vx \T02_v, \S15_v, \S01_s + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + ld \S01_s, 19*8(sp) + rori \S13_s, \S19_s, 64-8 + vsrl.vi \S23_v, \S15_v, 64-41 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + vxor.vv \S23_v, \S23_v, \T02_v + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + li \T04_s, 64-1 + rori \S07_s, \S10_s, 64-3 + vsll.vi \T03_v, \S01_v, 1 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + vsrl.vx \S15_v, \S01_v, \T04_s + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + vxor.vv \S15_v, \S15_v, \T03_v + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + li \T04_s, 55 + rori \S24_s, \S21_s, 64-2 + vsll.vx \T02_v, \S08_v, \T04_s + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + vsrl.vi \S01_v, \S08_v, 64-55 + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S08_s, \T03_s, \S08_s + andn \T02_s, \S11_s, \S10_s + li \T04_s, 45 + xor \S09_s, \T02_s, \S09_s + vsll.vx \T03_v, \S16_v, \T04_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + vsrl.vi \S08_v, \S16_v, 64-45 + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + vxor.vv \S08_v, \S08_v, \T03_v + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + li \T04_s, 64-6 + andn \T02_s, \S17_s, \S21_s + vsll.vi \T02_v, \S07_v, 6 + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + vsrl.vx \S16_v, \S07_v, \T04_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + li \T04_s, 64-3 + xor \S20_s, \T03_s, \S00_s + vsll.vi \T03_v, \S10_v, 3 + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + vsrl.vx \S07_v, \S10_v, \T04_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + vxor.vv \S07_v, \S07_v, \T03_v + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + li \T04_s, 64-28 + andn \T03_s, \S03_s, \S02_s + vsll.vi \T02_v, \S03_v, 28 + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + vsrl.vx \S10_v, \S03_v, \T04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + vxor.vv \S10_v, \S10_v, \T02_v + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + li \T01_s, 64-21 + addi \T04_s, \T04_s, 8 + vsll.vi \T03_v, \S18_v, 21 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + vsrl.vx \S03_v, \S18_v, \T01_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + li \T04_s, 64-15 + xor \T02_s, \T02_s, \T00_s + vsll.vi \T02_v, \S17_v, 15 + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vsrl.vx \S18_v, \S17_v, \T04_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + sd \S01_s, 19*8(sp) + xor \S16_s, \S16_s, \T02_s + vxor.vv \S18_v, \S18_v, \T02_v + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + li \S01_s, 64-10 + xor \T02_s, \T02_s, \S14_s + vsll.vi \T03_v, \S11_v, 10 + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vsrl.vx \S17_v, \S11_v, \S01_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vxor.vv \S17_v, \S17_v, \T03_v + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + li \S01_s, 64-20 + xor \S13_s, \S13_s, \T01_s + vsll.vi \T02_v, \S09_v, 20 + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + vsrl.vx \S11_v, \S09_v, \S01_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + li \S01_s, 61 + xor \T04_s, \T04_s, \T03_s + vsll.vx \T03_v, \S22_v, \S01_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vsrl.vi \S09_v, \S22_v, 64-61 + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vxor.vv \S09_v, \S09_v, \T03_v + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + li \S01_s, 39 + xor \S20_s, \S20_s, \T03_s + vsll.vx \T02_v, \S14_v, \S01_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + vsrl.vi \S22_v, \S14_v, 64-39 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + ld \S01_s, 19*8(sp) + rori \S23_s, \S15_s, 64-41 + vxor.vv \S22_v, \S22_v, \T02_v + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + li \T04_s, 64-18 + rori \S08_s, \S16_s, 64-45 + vsll.vi \T03_v, \S20_v, 18 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + vsrl.vx \S14_v, \S20_v, \T04_s + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + vxor.vv \S14_v, \S14_v, \T03_v + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + li \T04_s, 64-27 + rori \S20_s, \S04_s, 64-27 + vsll.vi \T02_v, \S04_v, 27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + vsrl.vx \S20_v, \S04_v, \T04_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + andn \T02_s, \S09_s, \S08_s + vxor.vv \S20_v, \S20_v, \T02_v + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + li \T04_s, 64-14 + xor \S08_s, \T03_s, \S08_s + vsll.vi \T03_v, \S24_v, 14 + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + vsrl.vx \S04_v, \S24_v, \T04_s + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + vxor.vv \S04_v, \S04_v, \T03_v + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + li \T04_s, 64-2 + andn \T03_s, \S16_s, \S15_s + vsll.vi \T02_v, \S21_v, 2 + xor \S14_s, \T03_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + vsrl.vx \S24_v, \S21_v, \T04_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + vxor.vv \S24_v, \S24_v, \T02_v + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + li \T04_s, 36 + xor \S19_s, \T02_s, \S19_s + vsll.vx \T03_v, \S05_v, \T04_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + vsrl.vi \S21_v, \S05_v, 64-36 + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + vxor.vv \S21_v, \S21_v, \T03_v + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + vor.vv \T02_v, \S11_v, \S07_v + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + vxor.vv \S05_v, \S10_v, \T02_v + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + vand.vv \T03_v, \S07_v, \S08_v + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + vxor.vv \S06_v, \S11_v, \T03_v + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + vnot.v \T02_v, \S09_v + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + vor.vv \T02_v, \T02_v, \S08_v + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vxor.vv \S07_v, \S07_v, \T02_v + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vor.vv \T03_v, \S09_v, \S10_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vand.vv \T02_v, \S10_v, \S11_v + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vxor.vv \S09_v, \S09_v, \T02_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vor.vv \T03_v, \S16_v, \S12_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + vxor.vv \S10_v, \S15_v, \T03_v + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vand.vv \T02_v, \S12_v, \S13_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + vxor.vv \S11_v, \S16_v, \T02_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vnot.v \T03_v, \S13_v + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vand.vv \T03_v, \T03_v, \S14_v + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vxor.vv \S12_v, \S12_v, \T03_v + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + vnot.v \T03_v, \S13_v + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + vor.vv \T02_v, \S14_v, \S15_v + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + vxor.vv \S13_v, \T03_v, \T02_v + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + vand.vv \T03_v, \S15_v, \S16_v + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + vxor.vv \S14_v, \S14_v, \T03_v + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + vand.vv \T02_v, \S21_v, \S17_v + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + andn \T03_s, \S08_s, \S07_s + xor \S06_s, \T03_s, \S11_s + vxor.vv \S15_v, \S20_v, \T02_v + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + andn \T03_s, \S10_s, \S09_s + xor \S08_s, \T03_s, \S08_s + vor.vv \T03_v, \S17_v, \S18_v + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + andn \T03_s, \S12_s, \S16_s + xor \S10_s, \T03_s, \S15_s + vxor.vv \S16_v, \S21_v, \T03_v + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + andn \T03_s, \S14_s, \S13_s + xor \S12_s, \T03_s, \S12_s + vnot.v \T02_v, \S18_v + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T03_s, \S16_s, \S15_s + xor \S14_s, \T03_s, \S14_s + vor.vv \T02_v, \T02_v, \S19_v + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + vxor.vv \S17_v, \S17_v, \T02_v + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + vnot.v \T02_v, \S18_v + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + vand.vv \T03_v, \S19_v, \S20_v + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + vxor.vv \S18_v, \T02_v, \T03_v + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + vor.vv \T02_v, \S20_v, \S21_v + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + vxor.vv \S19_v, \S19_v, \T02_v + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + vnot.v \T03_v, \S01_v + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + vand.vv \T03_v, \T03_v, \S22_v + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vxor.vv \S20_v, \S00_v, \T03_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + vnot.v \T03_v, \S01_v + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + rori \T02_s, \T01_s, 64-1 + vor.vv \T02_v, \S22_v, \S23_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vxor.vv \S21_v, \T03_v, \T02_v + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vand.vv \T03_v, \S23_v, \S24_v + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vxor.vv \S22_v, \S22_v, \T03_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + rori \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vor.vv \T02_v, \S24_v, \S00_v + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + vand.vv \T03_v, \S00_v, \S01_v + xor \S23_s, \S23_s, \T01_s + rori \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + vxor.vv \S24_v, \S24_v, \T03_v + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vor.vv \T02_v, \T01_v, \S02_v + rori \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + vxor.vv \S00_v, \T00_v, \T02_v + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + rori \T03_s, \T03_s, 64-1 + vnot.v \T03_v, \S02_v + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vor.vv \T03_v, \T03_v, \S03_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + rori \T01_s, \S06_s, 64-44 + rori \S00_s, \S02_s, 64-62 + vxor.vv \S01_v, \T01_v, \T03_v + rori \S02_s, \S12_s, 64-43 + rori \S12_s, \S13_s, 64-25 + rori \S13_s, \S19_s, 64-8 + rori \S19_s, \S23_s, 64-56 + vand.vv \T02_v, \S03_v, \S04_v + rori \S23_s, \S15_s, 64-41 + rori \S15_s, \S01_s, 64-1 + rori \S01_s, \S08_s, 64-55 + rori \S08_s, \S16_s, 64-45 + vxor.vv \S02_v, \S02_v, \T02_v + rori \S16_s, \S07_s, 64-6 + rori \S07_s, \S10_s, 64-3 + rori \S10_s, \S03_s, 64-28 + rori \S03_s, \S18_s, 64-21 + vor.vv \T03_v, \S04_v, \T00_v + rori \S18_s, \S17_s, 64-15 + rori \S17_s, \S11_s, 64-10 + rori \S11_s, \S09_s, 64-20 + rori \S09_s, \S22_s, 64-61 + vxor.vv \S03_v, \S03_v, \T03_v + rori \S22_s, \S14_s, 64-39 + rori \S14_s, \S20_s, 64-18 + rori \S20_s, \S04_s, 64-27 + rori \S04_s, \S24_s, 64-14 + vand.vv \T02_v, \T00_v, \T01_v + rori \S24_s, \S21_s, 64-2 + rori \S21_s, \S05_s, 64-36 + andn \T02_s, \S07_s, \S11_s + xor \S05_s, \T02_s, \S10_s + vxor.vv \S04_v, \S04_v, \T02_v + andn \T02_s, \S08_s, \S07_s + xor \S06_s, \T02_s, \S11_s + andn \T02_s, \S09_s, \S08_s + xor \S07_s, \T02_s, \S07_s + ld \T04_s, 18*8(sp) + andn \T02_s, \S10_s, \S09_s + xor \S08_s, \T02_s, \S08_s + ld \T03_s, 0(\T04_s) + andn \T02_s, \S11_s, \S10_s + xor \S09_s, \T02_s, \S09_s + vxor.vx \S00_v, \S00_v, \T03_s + andn \T02_s, \S12_s, \S16_s + xor \S10_s, \T02_s, \S15_s + addi \T04_s, \T04_s, 8 + andn \T02_s, \S13_s, \S12_s + xor \S11_s, \T02_s, \S16_s + sd \T04_s, 18*8(sp) + andn \T02_s, \S14_s, \S13_s + xor \S12_s, \T02_s, \S12_s + andn \T02_s, \S15_s, \S14_s + xor \S13_s, \T02_s, \S13_s + andn \T02_s, \S16_s, \S15_s + xor \S14_s, \T02_s, \S14_s + andn \T02_s, \S17_s, \S21_s + xor \S15_s, \T02_s, \S20_s + andn \T03_s, \S18_s, \S17_s + xor \S16_s, \T03_s, \S21_s + andn \T02_s, \S19_s, \S18_s + xor \S17_s, \T02_s, \S17_s + andn \T03_s, \S20_s, \S19_s + xor \S18_s, \T03_s, \S18_s + andn \T02_s, \S21_s, \S20_s + xor \S19_s, \T02_s, \S19_s + andn \T03_s, \S22_s, \S01_s + xor \S20_s, \T03_s, \S00_s + andn \T02_s, \S23_s, \S22_s + xor \S21_s, \T02_s, \S01_s + andn \T03_s, \S24_s, \S23_s + xor \S22_s, \T03_s, \S22_s + andn \T02_s, \S00_s, \S24_s + xor \S23_s, \T02_s, \S23_s + andn \T03_s, \S01_s, \S00_s + xor \S24_s, \T03_s, \S24_s + andn \T02_s, \S02_s, \T01_s + xor \S00_s, \T02_s, \T00_s + andn \T03_s, \S03_s, \S02_s + xor \S01_s, \T03_s, \T01_s + andn \T02_s, \S04_s, \S03_s + xor \S02_s, \T02_s, \S02_s + andn \T03_s, \T00_s, \S04_s + xor \S03_s, \T03_s, \S03_s + andn \T02_s, \T01_s, \T00_s + xor \S04_s, \T02_s, \S04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_8x +.align 2 +KeccakF1600_StatePermute_RV64V_8x: + addi sp, sp, -8*21 + SaveRegs + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 4 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + ld a0, 15*8(sp) + ld s11, 20*8(sp) + addi gp, s11, -5 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*(16) + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 6 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x10.s b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x10.s new file mode 100644 index 000000000..fd6098983 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x10.s @@ -0,0 +1,2220 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + not \S20, \S20 + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + # lane complement: 1,2,8,12,17,20 + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + not \S20, \S20 + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + vxor.vv \T00_v, \S00_v, \S05_v + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vxor.vv \T00_v, \T00_v, \S15_v + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vxor.vv \T00_v, \T00_v, \S20_v + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + vxor.vv \T01_v, \T01_v, \S12_v + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + vxor.vv \T01_v, \T01_v, \S17_v + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + vxor.vv \T01_v, \T01_v, \S22_v + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + li \T04_s, 64-1 + srli \S02_s, \S12_s, 64-43 + vsll.vi \T03_v, \T01_v, 1 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + vsrl.vx \T02_v, \T01_v, \T04_s + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + vxor.vv \T02_v, \T02_v, \T03_v + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + vxor.vv \T02_v, \T02_v, \T00_v + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + vxor.vv \T03_v, \S01_v, \S06_v + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + vxor.vv \T03_v, \T03_v, \S11_v + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + vxor.vv \T03_v, \T03_v, \S16_v + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + vxor.vv \T03_v, \T03_v, \S21_v + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + vxor.vv \S01_v, \S01_v, \T02_v + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + vxor.vv \S06_v, \S06_v, \T02_v + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + vxor.vv \S11_v, \S11_v, \T02_v + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + vxor.vv \S21_v, \S21_v, \T02_v + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + vxor.vv \T02_v, \S04_v, \S09_v + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + vxor.vv \T02_v, \T02_v, \S14_v + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + vxor.vv \T02_v, \T02_v, \S19_v + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vxor.vv \T02_v, \T02_v, \S24_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vsll.vi \T04_v, \T02_v, 1 + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + sd \S06_s, 19*8(sp) + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + li \S06_s, 63 + srli \T04_s, \T02_s, 63 + vsrl.vx \T04_v, \T02_v, \S06_s + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + ld \S06_s, 19*8(sp) + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \T04_v, \S03_v, \S08_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + vxor.vv \T04_v, \T04_v, \S13_v + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vxor.vv \T04_v, \T04_v, \S18_v + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + vxor.vv \T04_v, \T04_v, \S23_v + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + vxor.vv \S03_v, \S03_v, \T01_v + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + vxor.vv \S08_v, \S08_v, \T01_v + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + vxor.vv \S13_v, \S13_v, \T01_v + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + vxor.vv \S18_v, \S18_v, \T01_v + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + vxor.vv \S23_v, \S23_v, \T01_v + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + li \T04_s, 64-1 + slli \T03_s, \S22_s, 61 + vsll.vi \T01_v, \T00_v, 1 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + vsrl.vx \T00_v, \T00_v, \T04_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + vxor.vv \T00_v, \T00_v, \T01_v + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + vxor.vv \T00_v, \T00_v, \T04_v + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + vxor.vv \S04_v, \S04_v, \T00_v + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + vxor.vv \S09_v, \S09_v, \T00_v + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + vxor.vv \S14_v, \S14_v, \T00_v + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + vxor.vv \S19_v, \S19_v, \T00_v + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + vxor.vv \S24_v, \S24_v, \T00_v + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + li \T04_s, 64-1 + and \T02_s, \S03_s, \S04_s + vsll.vi \T01_v, \T04_v, 1 + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + vsrl.vx \T04_v, \T04_v, \T04_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \T04_v, \T04_v, \T01_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vxor.vv \T04_v, \T04_v, \T03_v + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vxor.vv \S02_v, \S02_v, \T04_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vxor.vv \S07_v, \S07_v, \T04_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + vxor.vv \S12_v, \S12_v, \T04_v + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vxor.vv \S17_v, \S17_v, \T04_v + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + vxor.vv \S22_v, \S22_v, \T04_v + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + li \T04_s, 64-1 + xor \S15_s, \S15_s, \T03_s + vsll.vi \T01_v, \T03_v, 1 + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + vsrl.vx \T03_v, \T03_v, \T04_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + vxor.vv \T03_v, \T03_v, \T01_v + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + vxor.vv \T03_v, \T03_v, \T02_v + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + vxor.vv \S05_v, \S05_v, \T03_v + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + vxor.vv \S10_v, \S10_v, \T03_v + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + vxor.vv \S15_v, \S15_v, \T03_v + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + vxor.vv \S20_v, \S20_v, \T03_v + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + vxor.vv \T00_v, \S00_v, \T03_v + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + li \T04_s, 44 + srli \S21_s, \S05_s, 64-36 + vsll.vx \T02_v, \S06_v, \T04_s + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + vsrl.vi \T01_v, \S06_v, 64-44 + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + vxor.vv \T01_v, \T01_v, \T02_v + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + li \T04_s, 62 + and \T03_s, \S15_s, \S16_s + vsll.vx \T03_v, \S02_v, \T04_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + vsrl.vi \S00_v, \S02_v, 64-62 + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + vxor.vv \S00_v, \S00_v, \T03_v + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + li \T04_s, 43 + and \T03_s, \S00_s, \S01_s + vsll.vx \T02_v, \S12_v, \T04_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + vsrl.vi \S02_v, \S12_v, 64-43 + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + vxor.vv \S02_v, \S02_v, \T02_v + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + li \T04_s, 64-25 + xor \T01_s, \T01_s, \S12_s + vsll.vi \T03_v, \S13_v, 25 + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vsrl.vx \S12_v, \S13_v, \T04_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + sd \S21_s, 19*8(sp) + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + li \S21_s, 64-8 + xor \T04_s, \S03_s, \S08_s + vsll.vi \T02_v, \S19_v, 8 + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vsrl.vx \S13_v, \S19_v, \S21_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + vxor.vv \S13_v, \S13_v, \T02_v + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + li \S21_s, 56 + xor \S12_s, \S12_s, \T04_s + vsll.vx \T03_v, \S23_v, \S21_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + vsrl.vi \S19_v, \S23_v, 64-56 + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + vxor.vv \S19_v, \S19_v, \T03_v + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + li \S21_s, 41 + xor \S12_s, \S12_s, \T03_s + vsll.vx \T02_v, \S15_v, \S21_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + ld \S21_s, 19*8(sp) + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + vsrl.vi \S23_v, \S15_v, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + vxor.vv \S23_v, \S23_v, \T02_v + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + li \T04_s, 64-1 + xor \S07_s, \S07_s, \T03_s + vsll.vi \T03_v, \S01_v, 1 + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + vsrl.vx \S15_v, \S01_v, \T04_s + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + vxor.vv \S15_v, \S15_v, \T03_v + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + li \T04_s, 55 + srli \S14_s, \S20_s, 64-18 + vsll.vx \T02_v, \S08_v, \T04_s + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + vsrl.vi \S01_v, \S08_v, 64-55 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + vxor.vv \S01_v, \S01_v, \T02_v + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + li \T04_s, 45 + xor \S09_s, \S09_s, \T02_s + vsll.vx \T03_v, \S16_v, \T04_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + vsrl.vi \S08_v, \S16_v, 64-45 + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + vxor.vv \S08_v, \S08_v, \T03_v + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + sd \S08_s, 19*8(sp) + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + li \S08_s, 64-6 + xor \S19_s, \S19_s, \T02_s + vsll.vi \T02_v, \S07_v, 6 + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + vsrl.vx \S16_v, \S07_v, \S08_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + li \S08_s, 64-3 + xor \S04_s, \S04_s, \T02_s + vsll.vi \T03_v, \S10_v, 3 + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + vsrl.vx \S07_v, \S10_v, \S08_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + vxor.vv \S07_v, \S07_v, \T03_v + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + li \S08_s, 64-28 + xor \S11_s, \S11_s, \T02_s + vsll.vi \T02_v, \S03_v, 28 + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + vsrl.vx \S10_v, \S03_v, \S08_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + ld \S08_s, 19*8(sp) + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vxor.vv \S10_v, \S10_v, \T02_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + sd \S03_s, 19*8(sp) + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + li \S03_s, 64-21 + xor \T00_s, \T00_s, \T04_s + vsll.vi \T03_v, \S18_v, 21 + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + vsrl.vx \S03_v, \S18_v, \S03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + li \S03_s, 64-15 + slli \T02_s, \S06_s, 44 + vsll.vi \T02_v, \S17_v, 15 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + vsrl.vx \S18_v, \S17_v, \S03_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + vxor.vv \S18_v, \S18_v, \T02_v + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + li \S03_s, 64-10 + slli \T02_s, \S08_s, 55 + vsll.vi \T03_v, \S11_v, 10 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + vsrl.vx \S17_v, \S11_v, \S03_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + ld \S03_s, 19*8(sp) + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + vxor.vv \S17_v, \S17_v, \T03_v + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + li \T04_s, 64-20 + xor \S17_s, \S17_s, \T03_s + vsll.vi \T02_v, \S09_v, 20 + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + vsrl.vx \S11_v, \S09_v, \T04_s + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + vxor.vv \S11_v, \S11_v, \T02_v + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + li \T04_s, 61 + xor \S21_s, \S21_s, \T03_s + vsll.vx \T03_v, \S22_v, \T04_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + vsrl.vi \S09_v, \S22_v, 64-61 + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + vxor.vv \S09_v, \S09_v, \T03_v + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + li \T04_s, 39 + xor \S14_s, \S14_s, \T03_s + vsll.vx \T02_v, \S14_v, \T04_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + vsrl.vi \S22_v, \S14_v, 64-39 + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + vxor.vv \S22_v, \S22_v, \T02_v + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + li \T04_s, 64-18 + xor \S24_s, \S24_s, \T03_s + vsll.vi \T03_v, \S20_v, 18 + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + vsrl.vx \S14_v, \S20_v, \T04_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + vxor.vv \S14_v, \S14_v, \T03_v + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + li \T04_s, 64-27 + xor \T01_s, \T01_s, \S22_s + vsll.vi \T02_v, \S04_v, 27 + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vsrl.vx \S20_v, \S04_v, \T04_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vxor.vv \S20_v, \S20_v, \T02_v + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + sd \S01_s, 19*8(sp) + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + li \S01_s, 64-14 + xor \T04_s, \T04_s, \S13_s + vsll.vi \T03_v, \S24_v, 14 + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + vsrl.vx \S04_v, \S24_v, \S01_s + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + vxor.vv \S04_v, \S04_v, \T03_v + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + li \S01_s, 64-2 + xor \S17_s, \S17_s, \T04_s + vsll.vi \T02_v, \S21_v, 2 + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vsrl.vx \S24_v, \S21_v, \S01_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + vxor.vv \S24_v, \S24_v, \T02_v + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + li \S01_s, 36 + slli \T02_s, \S19_s, 8 + vsll.vx \T03_v, \S05_v, \S01_s + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + ld \S01_s, 19*8(sp) + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + vsrl.vi \S21_v, \S05_v, 64-36 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + vxor.vv \S21_v, \S21_v, \T03_v + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + vor.vv \T02_v, \S11_v, \S07_v + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + vxor.vv \S05_v, \S10_v, \T02_v + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + vand.vv \T03_v, \S07_v, \S08_v + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + vxor.vv \S06_v, \S11_v, \T03_v + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + vnot.v \T02_v, \S09_v + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + vor.vv \T02_v, \T02_v, \S08_v + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + vxor.vv \S07_v, \S07_v, \T02_v + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + vor.vv \T03_v, \S09_v, \S10_v + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + vand.vv \T02_v, \S10_v, \S11_v + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + vxor.vv \S09_v, \S09_v, \T02_v + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + vor.vv \T03_v, \S16_v, \S12_v + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vxor.vv \S10_v, \S15_v, \T03_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + vand.vv \T02_v, \S12_v, \S13_v + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vxor.vv \S11_v, \S16_v, \T02_v + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + vnot.v \T03_v, \S13_v + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + vand.vv \T03_v, \T03_v, \S14_v + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + vnot.v \T03_v, \S13_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + vor.vv \T02_v, \S14_v, \S15_v + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + vxor.vv \S13_v, \T03_v, \T02_v + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + vand.vv \T03_v, \S15_v, \S16_v + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + vxor.vv \S14_v, \S14_v, \T03_v + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + vand.vv \T02_v, \S21_v, \S17_v + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + vxor.vv \S15_v, \S20_v, \T02_v + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + vor.vv \T03_v, \S17_v, \S18_v + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + vxor.vv \S16_v, \S21_v, \T03_v + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + vnot.v \T02_v, \S18_v + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + vor.vv \T02_v, \T02_v, \S19_v + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + vxor.vv \S17_v, \S17_v, \T02_v + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + vnot.v \T02_v, \S18_v + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + vand.vv \T03_v, \S19_v, \S20_v + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + vxor.vv \S18_v, \T02_v, \T03_v + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + vor.vv \T02_v, \S20_v, \S21_v + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + vxor.vv \S19_v, \S19_v, \T02_v + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + vnot.v \T03_v, \S01_v + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + vand.vv \T03_v, \T03_v, \S22_v + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \S20_v, \S00_v, \T03_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vnot.v \T03_v, \S01_v + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vor.vv \T02_v, \S22_v, \S23_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vxor.vv \S21_v, \T03_v, \T02_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + vand.vv \T03_v, \S23_v, \S24_v + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vxor.vv \S22_v, \S22_v, \T03_v + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + vor.vv \T02_v, \S24_v, \S00_v + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + vand.vv \T03_v, \S00_v, \S01_v + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + vxor.vv \S24_v, \S24_v, \T03_v + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + vor.vv \T02_v, \T01_v, \S02_v + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + vxor.vv \S00_v, \T00_v, \T02_v + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + vnot.v \T03_v, \S02_v + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + vor.vv \T03_v, \T03_v, \S03_v + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + vxor.vv \S01_v, \T01_v, \T03_v + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + vand.vv \T02_v, \S03_v, \S04_v + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + vor.vv \T03_v, \S04_v, \T00_v + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + vand.vv \T02_v, \T00_v, \T01_v + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + vxor.vv \S04_v, \S04_v, \T02_v + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + sd \S08_s, 19*8(sp) + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + ld \T04_s, 18*8(sp) + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + ld \S08_s, 0(\T04_s) + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + vxor.vx \S00_v, \S00_v, \S08_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + ld \S08_s, 19*8(sp) + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + addi \T04_s, \T04_s, 8 + xor \S03_s, \S03_s, \T03_s + sd \T04_s, 18*8(sp) + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_10x +.align 2 +KeccakF1600_StatePermute_RV64V_10x: + addi sp, sp, -8*21 + SaveRegs + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 3 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + ld a0, 15*8(sp) + ld s11, 20*8(sp) + addi gp, s11, -7 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*(16) + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 8 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x14.s b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x14.s new file mode 100644 index 000000000..ea38a7d6a --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x14.s @@ -0,0 +1,3022 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + not \S20, \S20 + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + # lane complement: 1,2,8,12,17,20 + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + not \S20, \S20 + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + vxor.vv \T00_v, \T00_v, \S10_v + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + vxor.vv \T00_v, \T00_v, \S15_v + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + vxor.vv \T00_v, \T00_v, \S20_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + vxor.vv \T01_v, \T01_v, \S12_v + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + vxor.vv \T01_v, \T01_v, \S17_v + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + vxor.vv \T01_v, \T01_v, \S22_v + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + sd \S08_s, 19*8(sp) + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + li \S08_s, 64-1 + xor \S18_s, \S18_s, \T02_s + vsll.vi \T03_v, \T01_v, 1 + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + vsrl.vx \T02_v, \T01_v, \S08_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + ld \S08_s, 19*8(sp) + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + vxor.vv \T02_v, \T02_v, \T03_v + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + vxor.vv \T02_v, \T02_v, \T00_v + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + vxor.vv \T03_v, \S01_v, \S06_v + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + vxor.vv \T03_v, \T03_v, \S11_v + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + vxor.vv \T03_v, \T03_v, \S16_v + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + vxor.vv \T03_v, \T03_v, \S21_v + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + vxor.vv \S01_v, \S01_v, \T02_v + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + vxor.vv \S06_v, \S06_v, \T02_v + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + vxor.vv \S21_v, \S21_v, \T02_v + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + vxor.vv \T02_v, \S04_v, \S09_v + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + vxor.vv \T02_v, \T02_v, \S14_v + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + vxor.vv \T02_v, \T02_v, \S19_v + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + vxor.vv \T02_v, \T02_v, \S24_v + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + vsll.vi \T04_v, \T02_v, 1 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + vxor.vv \T01_v, \T01_v, \T04_v + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + li \T04_s, 63 + or \T02_s, \T02_s, \S08_s + vsrl.vx \T04_v, \T02_v, \T04_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + vxor.vv \T01_v, \T01_v, \T04_v + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + vxor.vv \T04_v, \S03_v, \S08_v + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + vxor.vv \T04_v, \T04_v, \S13_v + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + vxor.vv \T04_v, \T04_v, \S18_v + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \T04_v, \T04_v, \S23_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vxor.vv \S03_v, \S03_v, \T01_v + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + vxor.vv \S08_v, \S08_v, \T01_v + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + vxor.vv \S13_v, \S13_v, \T01_v + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + vxor.vv \S18_v, \S18_v, \T01_v + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + vxor.vv \S23_v, \S23_v, \T01_v + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + li \T04_s, 64-1 + xor \S12_s, \S12_s, \T03_s + vsll.vi \T01_v, \T00_v, 1 + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + vsrl.vx \T00_v, \T00_v, \T04_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + vxor.vv \T00_v, \T00_v, \T01_v + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + vxor.vv \T00_v, \T00_v, \T04_v + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + vxor.vv \S04_v, \S04_v, \T00_v + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + vxor.vv \S09_v, \S09_v, \T00_v + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + vxor.vv \S14_v, \S14_v, \T00_v + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + vxor.vv \S19_v, \S19_v, \T00_v + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + vxor.vv \S24_v, \S24_v, \T00_v + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + sd \S08_s, 19*8(sp) + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + li \S08_s, 64-1 + not \T03_s, \S02_s + vsll.vi \T01_v, \T04_v, 1 + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + vsrl.vx \T04_v, \T04_v, \S08_s + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + ld \S08_s, 19*8(sp) + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + vxor.vv \T04_v, \T04_v, \T01_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vxor.vv \T04_v, \T04_v, \T03_v + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + vxor.vv \S02_v, \S02_v, \T04_v + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + vxor.vv \S07_v, \S07_v, \T04_v + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + vxor.vv \S12_v, \S12_v, \T04_v + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + vxor.vv \S17_v, \S17_v, \T04_v + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + vxor.vv \S22_v, \S22_v, \T04_v + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + li \T04_s, 64-1 + srli \S16_s, \S07_s, 64-6 + vsll.vi \T01_v, \T03_v, 1 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + vsrl.vx \T03_v, \T03_v, \T04_s + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + vxor.vv \T03_v, \T03_v, \T01_v + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + vxor.vv \T03_v, \T03_v, \T02_v + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + vxor.vv \S05_v, \S05_v, \T03_v + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + vxor.vv \S10_v, \S10_v, \T03_v + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + vxor.vv \S15_v, \S15_v, \T03_v + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + vxor.vv \S20_v, \S20_v, \T03_v + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + vxor.vv \T00_v, \S00_v, \T03_v + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + li \T04_s, 44 + xor \T01_s, \T01_s, \S17_s + vsll.vx \T02_v, \S06_v, \T04_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vsrl.vi \T01_v, \S06_v, 64-44 + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vxor.vv \T01_v, \T01_v, \T02_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + sd \S08_s, 19*8(sp) + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + li \S08_s, 62 + xor \T00_s, \T00_s, \T04_s + vsll.vx \T03_v, \S02_v, \S08_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + ld \S08_s, 19*8(sp) + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + vsrl.vi \S00_v, \S02_v, 64-62 + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + vxor.vv \S00_v, \S00_v, \T03_v + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + li \T04_s, 43 + srli \S13_s, \S19_s, 64-8 + vsll.vx \T02_v, \S12_v, \T04_s + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + vsrl.vi \S02_v, \S12_v, 64-43 + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + vxor.vv \S02_v, \S02_v, \T02_v + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + li \T04_s, 64-25 + srli \S11_s, \S09_s, 64-20 + vsll.vi \T03_v, \S13_v, 25 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + vsrl.vx \S12_v, \S13_v, \T04_s + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + vxor.vv \S12_v, \S12_v, \T03_v + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + li \T04_s, 64-8 + xor \S10_s, \S15_s, \T03_s + vsll.vi \T02_v, \S19_v, 8 + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + vsrl.vx \S13_v, \S19_v, \T04_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + vxor.vv \S13_v, \S13_v, \T02_v + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + li \T04_s, 56 + xor \S00_s, \T00_s, \T02_s + vsll.vx \T03_v, \S23_v, \T04_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + vsrl.vi \S19_v, \S23_v, 64-56 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + vxor.vv \S19_v, \S19_v, \T03_v + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + li \T04_s, 41 + xor \T02_s, \T02_s, \S14_s + vsll.vx \T02_v, \S15_v, \T04_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vsrl.vi \S23_v, \S15_v, 64-41 + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vxor.vv \S23_v, \S23_v, \T02_v + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + li \T04_s, 64-1 + srli \T03_s, \T03_s, 64-1 + vsll.vi \T03_v, \S01_v, 1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + vsrl.vx \S15_v, \S01_v, \T04_s + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + vxor.vv \S15_v, \S15_v, \T03_v + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + li \T04_s, 55 + slli \T03_s, \S16_s, 45 + vsll.vx \T02_v, \S08_v, \T04_s + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + vsrl.vi \S01_v, \S08_v, 64-55 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + vxor.vv \S01_v, \S01_v, \T02_v + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + li \T04_s, 45 + xor \S04_s, \S04_s, \T03_s + vsll.vx \T03_v, \S16_v, \T04_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + vsrl.vi \S08_v, \S16_v, 64-45 + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + vxor.vv \S08_v, \S08_v, \T03_v + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + li \T04_s, 64-6 + or \T02_s, \T02_s, \S19_s + vsll.vi \T02_v, \S07_v, 6 + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + vsrl.vx \S16_v, \S07_v, \T04_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + vxor.vv \S16_v, \S16_v, \T02_v + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + li \T04_s, 64-3 + xor \T00_s, \S00_s, \S05_s + vsll.vi \T03_v, \S10_v, 3 + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vsrl.vx \S07_v, \S10_v, \T04_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + vxor.vv \S07_v, \S07_v, \T03_v + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + sd \S00_s, 19*8(sp) + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + li \S00_s, 64-28 + xor \S23_s, \S23_s, \T01_s + vsll.vi \T02_v, \S03_v, 28 + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + vsrl.vx \S10_v, \S03_v, \S00_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + ld \S00_s, 19*8(sp) + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vxor.vv \S10_v, \S10_v, \T02_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + li \T04_s, 64-21 + xor \S02_s, \S02_s, \T02_s + vsll.vi \T03_v, \S18_v, 21 + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + vsrl.vx \S03_v, \S18_v, \T04_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + vxor.vv \S03_v, \S03_v, \T03_v + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + li \T04_s, 64-15 + srli \S18_s, \S17_s, 64-15 + vsll.vi \T02_v, \S17_v, 15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + vsrl.vx \S18_v, \S17_v, \T04_s + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + vxor.vv \S18_v, \S18_v, \T02_v + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + li \T04_s, 64-10 + or \T03_s, \S09_s, \S10_s + vsll.vi \T03_v, \S11_v, 10 + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + vsrl.vx \S17_v, \S11_v, \T04_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + vxor.vv \S17_v, \S17_v, \T03_v + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + li \T04_s, 64-20 + xor \S23_s, \S23_s, \T02_s + vsll.vi \T02_v, \S09_v, 20 + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + vsrl.vx \S11_v, \S09_v, \T04_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + li \T04_s, 61 + xor \S01_s, \S01_s, \T02_s + vsll.vx \T03_v, \S22_v, \T04_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vsrl.vi \S09_v, \S22_v, 64-61 + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + vxor.vv \S09_v, \S09_v, \T03_v + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + li \T00_s, 39 + xor \S02_s, \S02_s, \T04_s + vsll.vx \T02_v, \S14_v, \T00_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vsrl.vi \S22_v, \S14_v, 64-39 + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + vxor.vv \S22_v, \S22_v, \T02_v + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + li \T04_s, 64-18 + slli \T02_s, \S08_s, 55 + vsll.vi \T03_v, \S20_v, 18 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + vsrl.vx \S14_v, \S20_v, \T04_s + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + vxor.vv \S14_v, \S14_v, \T03_v + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + li \T04_s, 64-27 + xor \S14_s, \S14_s, \T03_s + vsll.vi \T02_v, \S04_v, 27 + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + vsrl.vx \S20_v, \S04_v, \T04_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + vxor.vv \S20_v, \S20_v, \T02_v + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + li \T04_s, 64-14 + xor \S14_s, \S14_s, \T03_s + vsll.vi \T03_v, \S24_v, 14 + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + vsrl.vx \S04_v, \S24_v, \T04_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + vxor.vv \S04_v, \S04_v, \T03_v + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + sd \S08_s, 19*8(sp) + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + li \S08_s, 64-2 + ld \T03_s, 0(\T04_s) + vsll.vi \T02_v, \S21_v, 2 + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + vsrl.vx \S24_v, \S21_v, \S08_s + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + ld \S08_s, 19*8(sp) + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + vxor.vv \S24_v, \S24_v, \T02_v + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + sd \S09_s, 19*8(sp) + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + li \S09_s, 36 + xor \T04_s, \T04_s, \S23_s + vsll.vx \T03_v, \S05_v, \S09_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + ld \S09_s, 19*8(sp) + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vsrl.vi \S21_v, \S05_v, 64-36 + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + vxor.vv \S21_v, \S21_v, \T03_v + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + vor.vv \T02_v, \S11_v, \S07_v + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + vxor.vv \S05_v, \S10_v, \T02_v + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + vand.vv \T03_v, \S07_v, \S08_v + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + vxor.vv \S06_v, \S11_v, \T03_v + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + vnot.v \T02_v, \S09_v + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + vor.vv \T02_v, \T02_v, \S08_v + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + vxor.vv \S07_v, \S07_v, \T02_v + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + vor.vv \T03_v, \S09_v, \S10_v + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + vxor.vv \S08_v, \S08_v, \T03_v + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + vand.vv \T02_v, \S10_v, \S11_v + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + vxor.vv \S09_v, \S09_v, \T02_v + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vor.vv \T03_v, \S16_v, \S12_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vxor.vv \S10_v, \S15_v, \T03_v + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vand.vv \T02_v, \S12_v, \S13_v + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + vxor.vv \S11_v, \S16_v, \T02_v + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vnot.v \T03_v, \S13_v + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + vand.vv \T03_v, \T03_v, \S14_v + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + vxor.vv \S12_v, \S12_v, \T03_v + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + vnot.v \T03_v, \S13_v + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + vor.vv \T02_v, \S14_v, \S15_v + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + vxor.vv \S13_v, \T03_v, \T02_v + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + vand.vv \T03_v, \S15_v, \S16_v + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + vxor.vv \S14_v, \S14_v, \T03_v + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + vand.vv \T02_v, \S21_v, \S17_v + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + vxor.vv \S15_v, \S20_v, \T02_v + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + vor.vv \T03_v, \S17_v, \S18_v + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + vxor.vv \S16_v, \S21_v, \T03_v + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vnot.v \T02_v, \S18_v + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vor.vv \T02_v, \T02_v, \S19_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + vxor.vv \S17_v, \S17_v, \T02_v + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vnot.v \T02_v, \S18_v + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + vand.vv \T03_v, \S19_v, \S20_v + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + vxor.vv \S18_v, \T02_v, \T03_v + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + vor.vv \T02_v, \S20_v, \S21_v + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + vxor.vv \S19_v, \S19_v, \T02_v + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + vnot.v \T03_v, \S01_v + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + vand.vv \T03_v, \T03_v, \S22_v + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + vxor.vv \S20_v, \S00_v, \T03_v + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + vnot.v \T03_v, \S01_v + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + vor.vv \T02_v, \S22_v, \S23_v + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + vxor.vv \S21_v, \T03_v, \T02_v + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + vand.vv \T03_v, \S23_v, \S24_v + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + vxor.vv \S22_v, \S22_v, \T03_v + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + vor.vv \T02_v, \S24_v, \S00_v + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vand.vv \T03_v, \S00_v, \S01_v + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \S24_v, \S24_v, \T03_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + vor.vv \T02_v, \T01_v, \S02_v + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + vxor.vv \S00_v, \T00_v, \T02_v + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + vnot.v \T03_v, \S02_v + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + vor.vv \T03_v, \T03_v, \S03_v + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + vxor.vv \S01_v, \T01_v, \T03_v + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + vand.vv \T02_v, \S03_v, \S04_v + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + vxor.vv \S02_v, \S02_v, \T02_v + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + vor.vv \T03_v, \S04_v, \T00_v + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + vand.vv \T02_v, \T00_v, \T01_v + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + vxor.vv \S04_v, \S04_v, \T02_v + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + sd \S10_s, 19*8(sp) + xor \S20_s, \S00_s, \T03_s + ld \T04_s, 18*8(sp) + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + ld \S10_s, 0(\T04_s) + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + vxor.vx \S00_v, \S00_v, \S10_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + ld \S10_s, 19*8(sp) + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + addi \T04_s, \T04_s, 8 + or \T03_s, \S04_s, \T00_s + sd \T04_s, 18*8(sp) + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_14x +.align 2 +KeccakF1600_StatePermute_RV64V_14x: + addi sp, sp, -8*21 + SaveRegs + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 2 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + ld a0, 15*8(sp) + ld s11, 20*8(sp) + addi gp, s11, -11 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*(16) + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 12 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x3.s b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x3.s new file mode 100644 index 000000000..6b4ced2e9 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x3.s @@ -0,0 +1,635 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates S00_s, S01_s, S02_s, S03_s, S04_s, \ + S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, \ + S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif + # load states for scalar impl + ld \S00_s, 0*8(a0) + ld \S01_s, 1*8(a0) + ld \S02_s, 2*8(a0) + ld \S03_s, 3*8(a0) + ld \S04_s, 4*8(a0) + ld \S05_s, 5*8(a0) + ld \S06_s, 6*8(a0) + ld \S07_s, 7*8(a0) + ld \S08_s, 8*8(a0) + ld \S09_s, 9*8(a0) + ld \S10_s, 10*8(a0) + ld \S11_s, 11*8(a0) + ld \S12_s, 12*8(a0) + ld \S13_s, 13*8(a0) + ld \S14_s, 14*8(a0) + ld \S15_s, 15*8(a0) + ld \S16_s, 16*8(a0) + ld \S17_s, 17*8(a0) + not \S01_s, \S01_s + not \S02_s, \S02_s + not \S08_s, \S08_s + not \S12_s, \S12_s + not \S17_s, \S17_s + ld \S18_s, 18*8(a0) + ld \S19_s, 19*8(a0) + ld \S20_s, 20*8(a0) + ld \S21_s, 21*8(a0) + ld \S22_s, 22*8(a0) + ld \S23_s, 23*8(a0) + not \S20_s, \S20_s + ld \S24_s, 24*8(a0) +.endm + +.macro StoreStates S00_s, S01_s, S02_s, S03_s, S04_s, \ + S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, \ + S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + not \S01_s, \S01_s + vnot.v v1, v1 + not \S02_s, \S02_s + vnot.v v2, v2 + not \S08_s, \S08_s + vnot.v v8, v8 + not \S12_s, \S12_s + vnot.v v12, v12 + not \S17_s, \S17_s + vnot.v v17, v17 + not \S20_s, \S20_s + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif + # store states for scalar impl + sd \S00_s, 0*8(a0) + sd \S01_s, 1*8(a0) + sd \S02_s, 2*8(a0) + sd \S03_s, 3*8(a0) + sd \S04_s, 4*8(a0) + sd \S05_s, 5*8(a0) + sd \S06_s, 6*8(a0) + sd \S07_s, 7*8(a0) + sd \S08_s, 8*8(a0) + sd \S09_s, 9*8(a0) + sd \S10_s, 10*8(a0) + sd \S11_s, 11*8(a0) + sd \S12_s, 12*8(a0) + sd \S13_s, 13*8(a0) + sd \S14_s, 14*8(a0) + sd \S15_s, 15*8(a0) + sd \S16_s, 16*8(a0) + sd \S17_s, 17*8(a0) + sd \S18_s, 18*8(a0) + sd \S19_s, 19*8(a0) + sd \S20_s, 20*8(a0) + sd \S21_s, 21*8(a0) + sd \S22_s, 22*8(a0) + sd \S23_s, 23*8(a0) + sd \S24_s, 24*8(a0) +.endm + +.macro XOR5 \ + out_v, S00_v, S01_v, S02_v, S03_v, S04_v, \ + out_s, S00_s, S01_s, S02_s, S03_s, S04_s + xor \out_s, \S00_s, \S01_s + vxor.vv \out_v, \S00_v, \S01_v + xor \out_s, \out_s, \S02_s + vxor.vv \out_v, \out_v, \S02_v + xor \out_s, \out_s, \S03_s + vxor.vv \out_v, \out_v, \S03_v + xor \out_s, \out_s, \S04_s + vxor.vv \out_v, \out_v, \S04_v +.endm + +.macro ROLn \ + out_v, in_v, tmp_v, \ + out_s, in_s, tmp_s, tmp1_s, n +.if \n < 32 + li \tmp1_s, 64-\n + slli \tmp_s, \in_s, \n + vsll.vi \tmp_v, \in_v, \n + srli \out_s, \in_s, 64-\n + vsrl.vx \out_v, \in_v, \tmp1_s + xor \out_s, \out_s, \tmp_s + vxor.vv \out_v, \out_v, \tmp_v +.else + li \tmp1_s, \n + slli \tmp_s, \in_s, \n + vsll.vx \tmp_v, \in_v, \tmp1_s + srli \out_s, \in_s, 64-\n + vsrl.vi \out_v, \in_v, 64-\n + xor \out_s, \out_s, \tmp_s + xor.vv \out_v, \out_v, \tmp_v +.endif + +.endm + +.macro ROL1 \ + out_v, in_v, tmp_v, \ + out_s, in_s, tmp_s, tmp1_s + ROLn \out_v, \in_v, \tmp_v, \out_s, \in_s, \tmp_s, \tmp1_s, 1 +.endm + +.macro EachXOR \ + S00_v, S01_v, S02_v, S03_v, S04_v, D_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, D_s + xor \S00_s, \S00_s, \D_s + vxor.vv \S00_v, \S00_v, \D_v + xor \S01_s, \S01_s, \D_s + vxor.vv \S01_v, \S01_v, \D_v + xor \S02_s, \S02_s, \D_s + vxor.vv \S02_v, \S02_v, \D_v + xor \S03_s, \S03_s, \D_s + vxor.vv \S03_v, \S03_v, \D_v + xor \S04_s, \S04_s, \D_s + vxor.vv \S04_v, \S04_v, \D_v +.endm + +.macro ChiOp \ + out_v, S00_v, S01_v, S02_v, T_v, \ + out_s, S00_s, S01_s, S02_s, T_s + not \T_s, \S01_s + vnot.v \T_v, \S01_v + and \T_s, \T_s, \S02_s + vand.vv \T_v, \T_v, \S02_v + xor \out_s, \T_s, \S00_s + vxor.vv \out_v, \T_v, \S00_v +.endm + +.macro xoror \ + out_v, S00_v, S01_v, S02_v, T_v, \ + out_s, S00_s, S01_s, S02_s, T_s + or \T_s, \S01_s, \S02_s + vor.vv \T_v, \S01_v, \S02_v + xor \out_s, \S00_s, \T_s + vxor.vv \out_v, \S00_v, \T_v +.endm + +.macro xornotor \ + out_v, S00_v, S01_v, S02_v, T_v, \ + out_s, S00_s, S01_s, S02_s, T_s + not \T_s, \S01_s + vnot.v \T_v, \S01_v + or \T_s, \T_s, \S02_s + vor.vv \T_v, \T_v, \S02_v + xor \out_s, \S00_s, \T_s + vxor.vv \out_v, \S00_v, \T_v +.endm + +.macro xorand \ + out_v, S00_v, S01_v, S02_v, T_v, \ + out_s, S00_s, S01_s, S02_s, T_s + and \T_s, \S01_s, \S02_s + vand.vv \T_v, \S01_v, \S02_v + xor \out_s, \S00_s, \T_s + vxor.vv \out_v, \S00_v, \T_v +.endm + +.macro xorornot \ + out_v, S00_v, S01_v, S02_v, T_v, \ + out_s, S00_s, S01_s, S02_s, T_s + not \T_s, \S02_s + vnot.v \T_v, \S02_v + or \T_s, \T_s, \S01_s + vor.vv \T_v, \T_v, \S01_v + xor \out_s, \S00_s, \T_s + vxor.vv \out_v, \S00_v, \T_v +.endm + +.macro xornotand \ + out_v, S00_v, S01_v, S02_v, T_v, \ + out_s, S00_s, S01_s, S02_s, T_s + not \T_s, \S01_s + vnot.v \T_v, \S01_v + and \T_s, \T_s, \S02_s + vand.vv \T_v, \T_v, \S02_v + xor \out_s, \S00_s, \T_s + vxor.vv \out_v, \S00_v, \T_v +.endm + +.macro notxoror \ + out_v, S00_v, S01_v, S02_v, T_v, T_v0, \ + out_s, S00_s, S01_s, S02_s, T_s, T0_s + not \T0_s, \S00_s + vnot.v \T_v0, \S00_v + or \T_s, \S01_s, \S02_s + vor.vv \T_v, \S01_v, \S02_v + xor \out_s, \T0_s, \T_s + vxor.vv \out_v, \T_v0, \T_v +.endm + +.macro notxorand \ + out_v, S00_v, S01_v, S02_v, T_v, T_v0, \ + out_s, S00_s, S01_s, S02_s, T_s, T0_s + not \T0_s, \S00_s + vnot.v \T_v0, \S00_v + and \T_s, \S01_s, \S02_s + vand.vv \T_v, \S01_v, \S02_v + xor \out_s, \T0_s, \T_s + vxor.vv \out_v, \T_v0, \T_v +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + # theta - start + # C0 = S00_v ^ S05_v ^ S10_v ^ S15_v ^ S20_v + XOR5 \T00_v, \S00_v, \S05_v, \S10_v, \S15_v, \S20_v, \ + \T00_s, \S00_s, \S05_s, \S10_s, \S15_s, \S20_s + # C2 = S02_v ^ S07_v ^ S12_v ^ S17_v ^ S22_v + XOR5 \T01_v, \S02_v, \S07_v, \S12_v, \S17_v, \S22_v, \ + \T01_s, \S02_s, \S07_s, \S12_s, \S17_s, \S22_s + # D1 = C0 ^ ROL(C2, 1) + ROL1 \T02_v, \T01_v, \T03_v, \ + \T02_s, \T01_s, \T03_s, \T04_s + xor \T02_s, \T02_s, \T00_s + vxor.vv \T02_v, \T02_v, \T00_v + # T00_s=C0 T01_s=C2 T02_s=D1 + + # C1 = S01_v ^ S06_v ^ S11_v ^ S16_v ^ S21_v + XOR5 \T03_v, \S01_v, \S06_v, \S11_v, \S16_v, \S21_v, \ + \T03_s, \S01_s, \S06_s, \S11_s, \S16_s, \S21_s + # S06_v ^= D1; S16_v ^= D1; S01_v ^= D1; S11_v ^= D1; S21_v ^= D1 + EachXOR \S01_v, \S06_v, \S11_v, \S16_v, \S21_v, \T02_v, \ + \S01_s, \S06_s, \S11_s, \S16_s, \S21_s, \T02_s + + # store S01_s into stack for temporary usage + sd \S01_s, 18*8(sp) + + # C4 = S04_v ^ S09_v ^ S14_v ^ S19_v ^ S24_v + XOR5 \T02_v, \S04_v, \S09_v, \S14_v, \S19_v, \S24_v, \ + \T02_s, \S04_s, \S09_s, \S14_s, \S19_s, \S24_s + # D3 = C2 ^ ROL(C4, 1); C2 can be overwritten + # T00_s=C0 T01_s=D3 T03_s=C1 T02_s=C4 + slli \T04_s, \T02_s, 1 + vsll.vi \T04_v, \T02_v, 1 + xor \T01_s, \T01_s, \T04_s + vxor.vv \T01_v, \T01_v, \T04_v + li \S01_s, 63 + srli \T04_s, \T02_s, 63 + vsrl.vx \T04_v, \T02_v, \S01_s + xor \T01_s, \T01_s, \T04_s + vxor.vv \T01_v, \T01_v, \T04_v + + # C3 = S03_v ^ S08_v ^ S13_v ^ S18_v ^ S23_v + XOR5 \T04_v, \S03_v, \S08_v, \S13_v, \S18_v, \S23_v, \ + \T04_s, \S03_s, \S08_s, \S13_s, \S18_s, \S23_s + # S18_v ^= D3; S03_v ^= D3; S13_v ^= D3; S23_v ^= D3; S08_v ^= D3 + EachXOR \S03_v, \S08_v, \S13_v, \S18_v, \S23_v, \T01_v, \ + \S03_s, \S08_s, \S13_s, \S18_s, \S23_s, \T01_s + # T00_s=C0 T03_s=C1 T02_s=C4 T04_s=C3 + + # D4 = C3 ^ ROL(C0, 1); C0 can be overwritten + ROL1 \T00_v, \T00_v, \T01_v, \ + \T00_s, \T00_s, \T01_s, \S01_s + xor \T00_s, \T00_s, \T04_s + vxor.vv \T00_v, \T00_v, \T04_v + # S24_v ^= D4; S09_v ^= D4; S19_v ^= D4; S04_v ^= D4; S14_v ^= D4 + EachXOR \S04_v, \S09_v, \S14_v, \S19_v, \S24_v, \T00_v, \ + \S04_s, \S09_s, \S14_s, \S19_s, \S24_s, \T00_s + + # D2 = C1 ^ ROL(C3, 1) + ROL1 \T04_v, \T04_v, \T01_v, \ + \T04_s, \T04_s, \T01_s, \S01_s + xor \T04_s, \T04_s, \T03_s + vxor.vv \T04_v, \T04_v, \T03_v + # S12_v ^= D2; S22_v ^= D2; S07_v ^= D2; S17_v ^= D2; S02_v ^= D2 + EachXOR \S02_v, \S07_v, \S12_v, \S17_v, \S22_v, \T04_v, \ + \S02_s, \S07_s, \S12_s, \S17_s, \S22_s, \T04_s + + # D0 = C4 ^ ROL(C1, 1) + ROL1 \T03_v, \T03_v, \T01_v, \ + \T03_s, \T03_s, \T01_s, \S01_s + xor \T03_s, \T03_s, \T02_s + vxor.vv \T03_v, \T03_v, \T02_v + # S00_v ^= D0; S05_v ^= D0; S10_v ^= D0; S15_v ^= D0; S20_v ^= D0 + # EachXOR \S00_v, \S05_v, \S10_v, \S15_v, \S20_v, \T03_v + xor \S05_s, \S05_s, \T03_s + vxor.vv \S05_v, \S05_v, \T03_v + xor \S10_s, \S10_s, \T03_s + vxor.vv \S10_v, \S10_v, \T03_v + xor \S15_s, \S15_s, \T03_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \S20_s, \S20_s, \T03_s + vxor.vv \S20_v, \S20_v, \T03_v + xor \T00_s, \S00_s, \T03_s + vxor.vv \T00_v, \S00_v, \T03_v + # theta - end + + # restore S01_s from stack + ld \S01_s, 18*8(sp) + + # Rho & Pi & Chi - start + ROLn \T01_v, \S06_v, \T02_v, \T01_s, \S06_s, \T02_s, \T03_s, 44 + ROLn \S00_v, \S02_v, \T03_v, \S00_s, \S02_s, \T02_s, \T03_s, 62 + ROLn \S02_v, \S12_v, \T02_v, \S02_s, \S12_s, \T02_s, \T03_s, 43 + ROLn \S12_v, \S13_v, \T03_v, \S12_s, \S13_s, \T02_s, \T03_s, 25 + ROLn \S13_v, \S19_v, \T02_v, \S13_s, \S19_s, \T02_s, \T03_s, 8 + ROLn \S19_v, \S23_v, \T03_v, \S19_s, \S23_s, \T02_s, \T03_s, 56 + ROLn \S23_v, \S15_v, \T02_v, \S23_s, \S15_s, \T02_s, \T03_s, 41 + ROLn \S15_v, \S01_v, \T03_v, \S15_s, \S01_s, \T02_s, \T03_s, 1 + ROLn \S01_v, \S08_v, \T02_v, \S01_s, \S08_s, \T02_s, \T03_s, 55 + ROLn \S08_v, \S16_v, \T03_v, \S08_s, \S16_s, \T02_s, \T03_s, 45 + ROLn \S16_v, \S07_v, \T02_v, \S16_s, \S07_s, \T02_s, \T03_s, 6 + ROLn \S07_v, \S10_v, \T03_v, \S07_s, \S10_s, \T02_s, \T03_s, 3 + ROLn \S10_v, \S03_v, \T02_v, \S10_s, \S03_s, \T02_s, \T03_s, 28 + ROLn \S03_v, \S18_v, \T03_v, \S03_s, \S18_s, \T02_s, \T03_s, 21 + ROLn \S18_v, \S17_v, \T02_v, \S18_s, \S17_s, \T02_s, \T03_s, 15 + ROLn \S17_v, \S11_v, \T03_v, \S17_s, \S11_s, \T02_s, \T03_s, 10 + ROLn \S11_v, \S09_v, \T02_v, \S11_s, \S09_s, \T02_s, \T03_s, 20 + ROLn \S09_v, \S22_v, \T03_v, \S09_s, \S22_s, \T02_s, \T03_s, 61 + ROLn \S22_v, \S14_v, \T02_v, \S22_s, \S14_s, \T02_s, \T03_s, 39 + ROLn \S14_v, \S20_v, \T03_v, \S14_s, \S20_s, \T02_s, \T03_s, 18 + ROLn \S20_v, \S04_v, \T02_v, \S20_s, \S04_s, \T02_s, \T03_s, 27 + ROLn \S04_v, \S24_v, \T03_v, \S04_s, \S24_s, \T02_s, \T03_s, 14 + ROLn \S24_v, \S21_v, \T02_v, \S24_s, \S21_s, \T02_s, \T03_s, 2 + ROLn \S21_v, \S05_v, \T03_v, \S21_s, \S05_s, \T02_s, \T03_s, 36 + + xoror \S05_v, \S10_v, \S11_v, \S07_v, \T02_v, \S05_s, \S10_s, \S11_s, \S07_s, \T02_s + xorand \S06_v, \S11_v, \S07_v, \S08_v, \T03_v, \S06_s, \S11_s, \S07_s, \S08_s, \T03_s + xorornot \S07_v, \S07_v, \S08_v, \S09_v, \T02_v, \S07_s, \S07_s, \S08_s, \S09_s, \T02_s + xoror \S08_v, \S08_v, \S09_v, \S10_v, \T03_v, \S08_s, \S08_s, \S09_s, \S10_s, \T03_s + xorand \S09_v, \S09_v, \S10_v, \S11_v, \T02_v, \S09_s, \S09_s, \S10_s, \S11_s, \T02_s + + xoror \S10_v, \S15_v, \S16_v, \S12_v, \T03_v, \S10_s, \S15_s, \S16_s, \S12_s, \T03_s + xorand \S11_v, \S16_v, \S12_v, \S13_v, \T02_v, \S11_s, \S16_s, \S12_s, \S13_s, \T02_s + xornotand \S12_v, \S12_v, \S13_v, \S14_v, \T03_v, \S12_s, \S12_s, \S13_s, \S14_s, \T03_s + notxoror \S13_v, \S13_v, \S14_v, \S15_v, \T02_v, \T03_v, \S13_s, \S13_s, \S14_s, \S15_s, \T02_s, \T03_s + xorand \S14_v, \S14_v, \S15_v, \S16_v, \T03_v, \S14_s, \S14_s, \S15_s, \S16_s, \T03_s + + xorand \S15_v, \S20_v, \S21_v, \S17_v, \T02_v, \S15_s, \S20_s, \S21_s, \S17_s, \T02_s + xoror \S16_v, \S21_v, \S17_v, \S18_v, \T03_v, \S16_s, \S21_s, \S17_s, \S18_s, \T03_s + xornotor \S17_v, \S17_v, \S18_v, \S19_v, \T02_v, \S17_s, \S17_s, \S18_s, \S19_s, \T02_s + notxorand \S18_v, \S18_v, \S19_v, \S20_v, \T03_v, \T02_v, \S18_s, \S18_s, \S19_s, \S20_s, \T03_s, \T02_s + xoror \S19_v, \S19_v, \S20_v, \S21_v, \T02_v, \S19_s, \S19_s, \S20_s, \S21_s, \T02_s + + xornotand \S20_v, \S00_v, \S01_v, \S22_v, \T03_v, \S20_s, \S00_s, \S01_s, \S22_s, \T03_s + notxoror \S21_v, \S01_v, \S22_v, \S23_v, \T02_v, \T03_v, \S21_s, \S01_s, \S22_s, \S23_s, \T02_s, \T03_s + xorand \S22_v, \S22_v, \S23_v, \S24_v, \T03_v, \S22_s, \S22_s, \S23_s, \S24_s, \T03_s + xoror \S23_v, \S23_v, \S24_v, \S00_v, \T02_v, \S23_s, \S23_s, \S24_s, \S00_s, \T02_s + xorand \S24_v, \S24_v, \S00_v, \S01_v, \T03_v, \S24_s, \S24_s, \S00_s, \S01_s, \T03_s + + xoror \S00_v, \T00_v, \T01_v, \S02_v, \T02_v, \S00_s, \T00_s, \T01_s, \S02_s, \T02_s + xornotor \S01_v, \T01_v, \S02_v, \S03_v, \T03_v, \S01_s, \T01_s, \S02_s, \S03_s, \T03_s + xorand \S02_v, \S02_v, \S03_v, \S04_v, \T02_v, \S02_s, \S02_s, \S03_s, \S04_s, \T02_s + xoror \S03_v, \S03_v, \S04_v, \T00_v, \T03_v, \S03_s, \S03_s, \S04_s, \T00_s, \T03_s + xorand \S04_v, \S04_v, \T00_v, \T01_v, \T02_v, \S04_s, \S04_s, \T00_s, \T01_s, \T02_s + + # Iota + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + vxor.vx \S00_v, \S00_v, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + # Rho & Pi & Chi - end +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index +# 18*8(sp): temp +.globl KeccakF1600_StatePermute_RV64V_3x +.align 2 +KeccakF1600_StatePermute_RV64V_3x: + addi sp, sp, -8*19 + SaveRegs + sd a0, 15*8(sp) + + la a1, constants_keccak + sd a1, 17*8(sp) + + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + LoadStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + + li a0, 24 + +loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, loop + + ld a0, 15*8(sp) + StoreStates \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + + RestoreRegs + addi sp, sp, 8*19 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x4.s b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x4.s new file mode 100644 index 000000000..af874d236 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x4.s @@ -0,0 +1,1058 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + not \S20, \S20 + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + # lane complement: 1,2,8,12,17,20 + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + not \S20, \S20 + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + # The first scalar impl + # theta - start + # C0 = S00_s ^ S05_s ^ S10_s ^ S15_s ^ S20_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vxor.vv \T00_v, \T00_v, \S10_v + # C2 = S02_s ^ S07_s ^ S12_s ^ S17_s ^ S22_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \T00_v, \T00_v, \S15_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vxor.vv \T00_v, \T00_v, \S20_v + # D1 = C0 ^ ROL(C2, 1) + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + vxor.vv \T01_v, \S02_v, \S07_v + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + vxor.vv \T01_v, \T01_v, \S12_v + # C1 = S01_s ^ S06_s ^ S11_s ^ S16_s ^ S21_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \T01_v, \T01_v, \S17_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vxor.vv \T01_v, \T01_v, \S22_v + # S06_s ^= D1; S16_s ^= D1; S01_s ^= D1; S11_s ^= D1; S21_s ^= D1 + # T00=C0 T01=C2 T02=D1 T03=C1 + xor \S01_s, \S01_s, \T02_s + li \T04_s, 64-1 + xor \S06_s, \S06_s, \T02_s + vsll.vi \T03_v, \T01_v, 1 + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + vsrl.vx \T02_v, \T01_v, \T04_s + xor \S21_s, \S21_s, \T02_s + # C4 = S04_s ^ S09_s ^ S14_s ^ S19_s ^ S24_s + xor \T02_s, \S04_s, \S09_s + vxor.vv \T02_v, \T02_v, \T03_v + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vxor.vv \T02_v, \T02_v, \T00_v + xor \T02_s, \T02_s, \S24_s + # D3 = C2 ^ ROL(C4, 1); C2 can be overwritten + slli \T04_s, \T02_s, 1 + vxor.vv \T03_v, \S01_v, \S06_v + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + vxor.vv \T03_v, \T03_v, \S11_v + xor \T01_s, \T01_s, \T04_s + # C3 = S03_s ^ S08_s ^ S13_s ^ S18_s ^ S23_s + xor \T04_s, \S03_s, \S08_s + vxor.vv \T03_v, \T03_v, \S16_v + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vxor.vv \T03_v, \T03_v, \S21_v + xor \T04_s, \T04_s, \S23_s + # S18_s ^= D3; S03_s ^= D3; S13_s ^= D3; S23_s ^= D3; S08_s ^= D3 + xor \S03_s, \S03_s, \T01_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \S06_v, \S06_v, \T02_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vxor.vv \S11_v, \S11_v, \T02_v + # D4 = C3 ^ ROL(C0, 1); C0 can be overwritten + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + vxor.vv \S16_v, \S16_v, \T02_v + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + vxor.vv \S21_v, \S21_v, \T02_v + # S24_s ^= D4; S09_s ^= D4; S19_s ^= D4; S04_s ^= D4; S14_s ^= D4 + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \T02_v, \S04_v, \S09_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + vxor.vv \T02_v, \T02_v, \S14_v + xor \S24_s, \S24_s, \T00_s + # D2 = C1 ^ ROL(C3, 1) + slli \T01_s, \T04_s, 1 + vxor.vv \T02_v, \T02_v, \S19_v + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + vxor.vv \T02_v, \T02_v, \S24_v + xor \T04_s, \T04_s, \T03_s + # S12_s ^= D2; S22_s ^= D2; S07_s ^= D2; S17_s ^= D2; S02_s ^= D2 + # T03=C1 T02=C4 T04=D2 + xor \S02_s, \S02_s, \T04_s + vsll.vi \T04_v, \T02_v, 1 + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \S17_s, \S17_s, \T04_s + li \T00_s, 63 + xor \S22_s, \S22_s, \T04_s + vsrl.vx \T04_v, \T02_v, \T00_s + # D0 = C4 ^ ROL(C1, 1) + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + vxor.vv \T01_v, \T01_v, \T04_v + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + vxor.vv \T04_v, \S03_v, \S08_v + # S00_s ^= D0; S05_s ^= D0; S10_s ^= D0; S15_s ^= D0; S20_s ^= D0 + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + vxor.vv \T04_v, \T04_v, \S13_v + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vxor.vv \T04_v, \T04_v, \S18_v + xor \T00_s, \S00_s, \T03_s + # theta - end + # Rho & Pi & Chi - start + slli \T02_s, \S06_s, 44 + vxor.vv \T04_v, \T04_v, \S23_v + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + vxor.vv \S03_v, \S03_v, \T01_v + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + vxor.vv \S08_v, \S08_v, \T01_v + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + vxor.vv \S13_v, \S13_v, \T01_v + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + vxor.vv \S18_v, \S18_v, \T01_v + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + vxor.vv \S23_v, \S23_v, \T01_v + xor \S12_s, \S12_s, \T03_s + li \T04_s, 64-1 + slli \T02_s, \S19_s, 8 + vsll.vi \T01_v, \T00_v, 1 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + vsrl.vx \T00_v, \T00_v, \T04_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + vxor.vv \T00_v, \T00_v, \T01_v + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + vxor.vv \T00_v, \T00_v, \T04_v + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + vxor.vv \S04_v, \S04_v, \T00_v + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + vxor.vv \S09_v, \S09_v, \T00_v + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + vxor.vv \S14_v, \S14_v, \T00_v + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + vxor.vv \S19_v, \S19_v, \T00_v + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + vxor.vv \S24_v, \S24_v, \T00_v + xor \S08_s, \S08_s, \T03_s + li \T04_s, 64-1 + slli \T02_s, \S07_s, 6 + vsll.vi \T01_v, \T04_v, 1 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + vsrl.vx \T04_v, \T04_v, \T04_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + vxor.vv \T04_v, \T04_v, \T01_v + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + vxor.vv \T04_v, \T04_v, \T03_v + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + vxor.vv \S02_v, \S02_v, \T04_v + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + vxor.vv \S07_v, \S07_v, \T04_v + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + vxor.vv \S12_v, \S12_v, \T04_v + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + vxor.vv \S17_v, \S17_v, \T04_v + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + vxor.vv \S22_v, \S22_v, \T04_v + xor \S17_s, \S17_s, \T03_s + li \T04_s, 64-1 + slli \T02_s, \S09_s, 20 + vsll.vi \T01_v, \T03_v, 1 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + vsrl.vx \T03_v, \T03_v, \T04_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + vxor.vv \T03_v, \T03_v, \T01_v + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + vxor.vv \T03_v, \T03_v, \T02_v + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + vxor.vv \S05_v, \S05_v, \T03_v + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + vxor.vv \S10_v, \S10_v, \T03_v + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + vxor.vv \S15_v, \S15_v, \T03_v + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + vxor.vv \S20_v, \S20_v, \T03_v + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + vxor.vv \T00_v, \S00_v, \T03_v + xor \S04_s, \S04_s, \T03_s + li \T04_s, 44 + slli \T02_s, \S21_s, 2 + vsll.vx \T02_v, \S06_v, \T04_s + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + vsrl.vi \T01_v, \S06_v, 64-44 + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + vxor.vv \T01_v, \T01_v, \T02_v + xor \S21_s, \S21_s, \T03_s + li \T04_s, 62 + # Chi + or \T02_s, \S11_s, \S07_s + vsll.vx \T03_v, \S02_v, \T04_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + vsrl.vi \S00_v, \S02_v, 64-62 + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + vxor.vv \S00_v, \S00_v, \T03_v + or \T02_s, \T02_s, \S08_s + li \T04_s, 43 + xor \S07_s, \S07_s, \T02_s + vsll.vx \T02_v, \S12_v, \T04_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + vsrl.vi \S02_v, \S12_v, 64-43 + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + vxor.vv \S02_v, \S02_v, \T02_v + or \T03_s, \S16_s, \S12_s + li \T04_s, 64-25 + xor \S10_s, \S15_s, \T03_s + vsll.vi \T03_v, \S13_v, 25 + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + vsrl.vx \S12_v, \S13_v, \T04_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S12_s, \S12_s, \T03_s + li \T04_s, 64-8 + not \T03_s, \S13_s + vsll.vi \T02_v, \S19_v, 8 + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + vsrl.vx \S13_v, \S19_v, \T04_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + vxor.vv \S13_v, \S13_v, \T02_v + and \T02_s, \S21_s, \S17_s + li \T04_s, 56 + xor \S15_s, \S20_s, \T02_s + vsll.vx \T03_v, \S23_v, \T04_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + vsrl.vi \S19_v, \S23_v, 64-56 + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + vxor.vv \S19_v, \S19_v, \T03_v + xor \S17_s, \S17_s, \T02_s + li \T04_s, 41 + not \T02_s, \S18_s + vsll.vx \T02_v, \S15_v, \T04_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + vsrl.vi \S23_v, \S15_v, 64-41 + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + vxor.vv \S23_v, \S23_v, \T02_v + not \T03_s, \S01_s + li \T04_s, 64-1 + and \T03_s, \T03_s, \S22_s + vsll.vi \T03_v, \S01_v, 1 + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + vsrl.vx \S15_v, \S01_v, \T04_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + vxor.vv \S15_v, \S15_v, \T03_v + and \T03_s, \S23_s, \S24_s + li \T04_s, 55 + xor \S22_s, \S22_s, \T03_s + vsll.vx \T02_v, \S08_v, \T04_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + vsrl.vi \S01_v, \S08_v, 64-55 + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + vxor.vv \S01_v, \S01_v, \T02_v + or \T02_s, \T01_s, \S02_s + li \T04_s, 45 + xor \S00_s, \T00_s, \T02_s + vsll.vx \T03_v, \S16_v, \T04_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + vsrl.vi \S08_v, \S16_v, 64-45 + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \S02_s, \S02_s, \T02_s + li \T04_s, 64-6 + or \T03_s, \S04_s, \T00_s + vsll.vi \T02_v, \S07_v, 6 + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + vsrl.vx \S16_v, \S07_v, \T04_s + xor \S04_s, \S04_s, \T02_s + # Iota + ld \T04_s, 17*8(sp) + vxor.vv \S16_v, \S16_v, \T02_v + ld \T03_s, 0(\T04_s) + li \T01_s, 64-3 + xor \S00_s, \S00_s, \T03_s + vsll.vi \T03_v, \S10_v, 3 + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + vsrl.vx \S07_v, \S10_v, \T01_s + # Rho & Pi & Chi - end + + # The second scalar impl + # theta - start + # C0 = S00_s ^ S05_s ^ S10_s ^ S15_s ^ S20_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vxor.vv \S07_v, \S07_v, \T03_v + xor \T00_s, \T00_s, \S15_s + li \T04_s, 64-28 + xor \T00_s, \T00_s, \S20_s + vsll.vi \T02_v, \S03_v, 28 + # C2 = S02_s ^ S07_s ^ S12_s ^ S17_s ^ S22_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vsrl.vx \S10_v, \S03_v, \T04_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vxor.vv \S10_v, \S10_v, \T02_v + # D1 = C0 ^ ROL(C2, 1) + slli \T03_s, \T01_s, 1 + li \T04_s, 64-21 + srli \T02_s, \T01_s, 64-1 + vsll.vi \T03_v, \S18_v, 21 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + vsrl.vx \S03_v, \S18_v, \T04_s + # C1 = S01_s ^ S06_s ^ S11_s ^ S16_s ^ S21_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \T03_s, \T03_s, \S16_s + li \T04_s, 64-15 + xor \T03_s, \T03_s, \S21_s + vsll.vi \T02_v, \S17_v, 15 + # S06_s ^= D1; S16_s ^= D1; S01_s ^= D1; S11_s ^= D1; S21_s ^= D1 + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vsrl.vx \S18_v, \S17_v, \T04_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + vxor.vv \S18_v, \S18_v, \T02_v + xor \S21_s, \S21_s, \T02_s + li \T04_s, 64-10 + # C4 = S04_s ^ S09_s ^ S14_s ^ S19_s ^ S24_s + xor \T02_s, \S04_s, \S09_s + vsll.vi \T03_v, \S11_v, 10 + xor \T02_s, \T02_s, \S14_s + sd \S01_s, 19*8(sp) # for temporary usage + xor \T02_s, \T02_s, \S19_s + vsrl.vx \S17_v, \S11_v, \T04_s + xor \T02_s, \T02_s, \S24_s + # D3 = C2 ^ ROL(C4, 1); C2 can be overwritten + slli \T04_s, \T02_s, 1 + vxor.vv \S17_v, \S17_v, \T03_v + xor \T01_s, \T01_s, \T04_s + li \S01_s, 64-20 + srli \T04_s, \T02_s, 63 + vsll.vi \T02_v, \S09_v, 20 + xor \T01_s, \T01_s, \T04_s + # C3 = S03_s ^ S08_s ^ S13_s ^ S18_s ^ S23_s + xor \T04_s, \S03_s, \S08_s + vsrl.vx \S11_v, \S09_v, \S01_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \T04_s, \T04_s, \S23_s + li \S01_s, 61 + # S18_s ^= D3; S03_s ^= D3; S13_s ^= D3; S23_s ^= D3; S08_s ^= D3 + xor \S03_s, \S03_s, \T01_s + vsll.vx \T03_v, \S22_v, \S01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vsrl.vi \S09_v, \S22_v, 64-61 + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + vxor.vv \S09_v, \S09_v, \T03_v + # D4 = C3 ^ ROL(C0, 1); C0 can be overwritten + slli \T01_s, \T00_s, 1 + li \S01_s, 39 + srli \T00_s, \T00_s, 64-1 + vsll.vx \T02_v, \S14_v, \S01_s + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + vsrl.vi \S22_v, \S14_v, 64-39 + # S24_s ^= D4; S09_s ^= D4; S19_s ^= D4; S04_s ^= D4; S14_s ^= D4 + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \S22_v, \S22_v, \T02_v + xor \S14_s, \S14_s, \T00_s + li \S01_s, 64-18 + xor \S19_s, \S19_s, \T00_s + vsll.vi \T03_v, \S20_v, 18 + xor \S24_s, \S24_s, \T00_s + # D2 = C1 ^ ROL(C3, 1) + slli \T01_s, \T04_s, 1 + vsrl.vx \S14_v, \S20_v, \S01_s + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + vxor.vv \S14_v, \S14_v, \T03_v + xor \T04_s, \T04_s, \T03_s + li \S01_s, 64-27 + # S12_s ^= D2; S22_s ^= D2; S07_s ^= D2; S17_s ^= D2; S02_s ^= D2 + xor \S02_s, \S02_s, \T04_s + vsll.vi \T02_v, \S04_v, 27 + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + vsrl.vx \S20_v, \S04_v, \S01_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + vxor.vv \S20_v, \S20_v, \T02_v + # D0 = C4 ^ ROL(C1, 1) + slli \T01_s, \T03_s, 1 + li \S01_s, 64-14 + srli \T03_s, \T03_s, 64-1 + vsll.vi \T03_v, \S24_v, 14 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + vsrl.vx \S04_v, \S24_v, \S01_s + # S00_s ^= D0; S05_s ^= D0; S10_s ^= D0; S15_s ^= D0; S20_s ^= D0 + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + vxor.vv \S04_v, \S04_v, \T03_v + xor \S15_s, \S15_s, \T03_s + li \S01_s, 64-2 + xor \S20_s, \S20_s, \T03_s + vsll.vi \T02_v, \S21_v, 2 + xor \T00_s, \S00_s, \T03_s + # theta - end + # Rho & Pi & Chi - start + slli \T02_s, \S06_s, 44 + vsrl.vx \S24_v, \S21_v, \S01_s + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + vxor.vv \S24_v, \S24_v, \T02_v + slli \T03_s, \S02_s, 62 + li \S01_s, 36 + srli \S00_s, \S02_s, 64-62 + vsll.vx \T03_v, \S05_v, \S01_s + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + vsrl.vi \S21_v, \S05_v, 64-36 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + vxor.vv \S21_v, \S21_v, \T03_v + slli \T03_s, \S13_s, 25 + ld \S01_s, 19*8(sp) # restore it from stack + srli \S12_s, \S13_s, 64-25 + vor.vv \T02_v, \S11_v, \S07_v + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + vxor.vv \S05_v, \S10_v, \T02_v + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + vand.vv \T03_v, \S07_v, \S08_v + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + vxor.vv \S06_v, \S11_v, \T03_v + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + vnot.v \T02_v, \S09_v + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + vor.vv \T02_v, \T02_v, \S08_v + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + vxor.vv \S07_v, \S07_v, \T02_v + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + vor.vv \T03_v, \S09_v, \S10_v + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + vxor.vv \S08_v, \S08_v, \T03_v + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + vand.vv \T02_v, \S10_v, \S11_v + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + vxor.vv \S09_v, \S09_v, \T02_v + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + vor.vv \T03_v, \S16_v, \S12_v + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + vxor.vv \S10_v, \S15_v, \T03_v + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + vand.vv \T02_v, \S12_v, \S13_v + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + vxor.vv \S11_v, \S16_v, \T02_v + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + vnot.v \T03_v, \S13_v + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + vand.vv \T03_v, \T03_v, \S14_v + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + vxor.vv \S12_v, \S12_v, \T03_v + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + vnot.v \T03_v, \S13_v + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + vor.vv \T02_v, \S14_v, \S15_v + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + vxor.vv \S13_v, \T03_v, \T02_v + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + vand.vv \T03_v, \S15_v, \S16_v + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + vxor.vv \S14_v, \S14_v, \T03_v + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + vand.vv \T02_v, \S21_v, \S17_v + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + vxor.vv \S15_v, \S20_v, \T02_v + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + vor.vv \T03_v, \S17_v, \S18_v + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + vxor.vv \S16_v, \S21_v, \T03_v + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + vnot.v \T02_v, \S18_v + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + vor.vv \T02_v, \T02_v, \S19_v + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + vxor.vv \S17_v, \S17_v, \T02_v + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + vnot.v \T02_v, \S18_v + xor \S21_s, \S21_s, \T03_s + # Chi + or \T02_s, \S11_s, \S07_s + vand.vv \T03_v, \S19_v, \S20_v + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + vxor.vv \S18_v, \T02_v, \T03_v + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + vor.vv \T02_v, \S20_v, \S21_v + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + vxor.vv \S19_v, \S19_v, \T02_v + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + vnot.v \T03_v, \S01_v + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + vand.vv \T03_v, \T03_v, \S22_v + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + vxor.vv \S20_v, \S00_v, \T03_v + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + vnot.v \T03_v, \S01_v + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + vor.vv \T02_v, \S22_v, \S23_v + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + vxor.vv \S21_v, \T03_v, \T02_v + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + vand.vv \T03_v, \S23_v, \S24_v + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + vxor.vv \S22_v, \S22_v, \T03_v + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + vor.vv \T02_v, \S24_v, \S00_v + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + vxor.vv \S23_v, \S23_v, \T02_v + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + vand.vv \T03_v, \S00_v, \S01_v + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + vxor.vv \S24_v, \S24_v, \T03_v + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + vor.vv \T02_v, \T01_v, \S02_v + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + vxor.vv \S00_v, \T00_v, \T02_v + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + vnot.v \T03_v, \S02_v + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + vor.vv \T03_v, \T03_v, \S03_v + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + vxor.vv \S01_v, \T01_v, \T03_v + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + vand.vv \T02_v, \S03_v, \S04_v + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + vxor.vv \S02_v, \S02_v, \T02_v + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + vor.vv \T03_v, \S04_v, \T00_v + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + vxor.vv \S03_v, \S03_v, \T03_v + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + vand.vv \T02_v, \T00_v, \T01_v + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + vxor.vv \S04_v, \S04_v, \T02_v + xor \S02_s, \S02_s, \T02_s + # Iota for vector impl + or \T02_s, \S04_s, \T00_s + ld \T03_s, 18*8(sp) + xor \S03_s, \S03_s, \T02_s + ld \T04_s, 0(\T03_s) + and \T02_s, \T00_s, \T01_s + vxor.vx \S00_v, \S00_v, \T04_s + xor \S04_s, \S04_s, \T02_s + addi \T03_s, \T03_s, 8 + # Iota + ld \T00_s, 17*8(sp) + ld \T01_s, 0(\T00_s) + xor \S00_s, \S00_s, \T01_s + sd \T03_s, 18*8(sp) + addi \T00_s, \T00_s, 8 + sd \T00_s, 17*8(sp) + # Rho & Pi & Chi - end +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_4x +.align 2 +KeccakF1600_StatePermute_RV64V_4x: + addi sp, sp, -8*21 + SaveRegs + # save a0 + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + # load 1-th scalar impl inputs and vector impl inputs + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 12 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + # outer loop control + ld a0, 15*8(sp) + ld s11, 20*8(sp) + bnez s11, final_1th_loop +final_0th_loop: + addi a0, a0, 25*16 + j final_end +final_1th_loop: + StoreStates_v + addi a0, a0, 25*8 +final_end: + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 2 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x5.s b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x5.s new file mode 100644 index 000000000..da4cdd8e5 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x5.s @@ -0,0 +1,1214 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + not \S20, \S20 + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + # lane complement: 1,2,8,12,17,20 + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + not \S20, \S20 + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + vxor.vv \T00_v, \T00_v, \S15_v + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + vxor.vv \T00_v, \T00_v, \S20_v + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vxor.vv \T01_v, \T01_v, \S12_v + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vxor.vv \T01_v, \T01_v, \S17_v + xor \S16_s, \S16_s, \T02_s + sd \S01_s, 19*8(sp) + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + vxor.vv \T01_v, \T01_v, \S22_v + xor \T02_s, \T02_s, \S14_s + li \S01_s, 64-1 + xor \T02_s, \T02_s, \S19_s + vsll.vi \T03_v, \T01_v, 1 + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + vsrl.vx \T02_v, \T01_v, \S01_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + vxor.vv \T02_v, \T02_v, \T03_v + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vxor.vv \T02_v, \T02_v, \T00_v + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \T03_v, \S01_v, \S06_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + vxor.vv \T03_v, \T03_v, \S11_v + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + vxor.vv \T03_v, \T03_v, \S16_v + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vxor.vv \T03_v, \T03_v, \S21_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + vxor.vv \S01_v, \S01_v, \T02_v + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + vxor.vv \S06_v, \S06_v, \T02_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + vxor.vv \S11_v, \S11_v, \T02_v + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + vxor.vv \S16_v, \S16_v, \T02_v + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + vxor.vv \S21_v, \S21_v, \T02_v + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vxor.vv \T02_v, \S04_v, \S09_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + vxor.vv \T02_v, \T02_v, \S14_v + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + vxor.vv \T02_v, \T02_v, \S19_v + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + vxor.vv \T02_v, \T02_v, \S24_v + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + vsll.vi \T04_v, \T02_v, 1 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + vxor.vv \T01_v, \T01_v, \T04_v + srli \S13_s, \S19_s, 64-8 + li \S01_s, 63 + xor \S13_s, \S13_s, \T02_s + vsrl.vx \T04_v, \T02_v, \S01_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + vxor.vv \T01_v, \T01_v, \T04_v + slli \T02_s, \S15_s, 41 + ld \S01_s, 19*8(sp) + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + vxor.vv \T04_v, \S03_v, \S08_v + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + vxor.vv \T04_v, \T04_v, \S13_v + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + vxor.vv \T04_v, \T04_v, \S18_v + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + vxor.vv \T04_v, \T04_v, \S23_v + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + vxor.vv \S03_v, \S03_v, \T01_v + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + vxor.vv \S08_v, \S08_v, \T01_v + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + vxor.vv \S13_v, \S13_v, \T01_v + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + vxor.vv \S18_v, \S18_v, \T01_v + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + vxor.vv \S23_v, \S23_v, \T01_v + slli \T03_s, \S11_s, 10 + li \T04_s, 64-1 + srli \S17_s, \S11_s, 64-10 + vsll.vi \T01_v, \T00_v, 1 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + vsrl.vx \T00_v, \T00_v, \T04_s + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + vxor.vv \T00_v, \T00_v, \T01_v + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + vxor.vv \T00_v, \T00_v, \T04_v + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + vxor.vv \S04_v, \S04_v, \T00_v + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + vxor.vv \S09_v, \S09_v, \T00_v + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + vxor.vv \S14_v, \S14_v, \T00_v + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + vxor.vv \S19_v, \S19_v, \T00_v + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + vxor.vv \S24_v, \S24_v, \T00_v + xor \S21_s, \S21_s, \T03_s + li \T04_s, 64-1 + or \T02_s, \S11_s, \S07_s + vsll.vi \T01_v, \T04_v, 1 + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + vsrl.vx \T04_v, \T04_v, \T04_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + vxor.vv \T04_v, \T04_v, \T01_v + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + vxor.vv \T04_v, \T04_v, \T03_v + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + vxor.vv \S02_v, \S02_v, \T04_v + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + vxor.vv \S07_v, \S07_v, \T04_v + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + vxor.vv \S12_v, \S12_v, \T04_v + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + vxor.vv \S17_v, \S17_v, \T04_v + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + vxor.vv \S22_v, \S22_v, \T04_v + or \T03_s, \S17_s, \S18_s + li \T04_s, 64-1 + xor \S16_s, \S21_s, \T03_s + vsll.vi \T01_v, \T03_v, 1 + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + vsrl.vx \T03_v, \T03_v, \T04_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + vxor.vv \T03_v, \T03_v, \T01_v + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + vxor.vv \T03_v, \T03_v, \T02_v + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + vxor.vv \S05_v, \S05_v, \T03_v + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + vxor.vv \S10_v, \S10_v, \T03_v + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + vxor.vv \S15_v, \S15_v, \T03_v + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + vxor.vv \S20_v, \S20_v, \T03_v + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + vxor.vv \T00_v, \S00_v, \T03_v + xor \S01_s, \T01_s, \T03_s + li \T04_s, 44 + and \T02_s, \S03_s, \S04_s + vsll.vx \T02_v, \S06_v, \T04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + vsrl.vi \T01_v, \S06_v, 64-44 + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T00_s, 17*8(sp) + vxor.vv \T01_v, \T01_v, \T02_v + ld \T01_s, 0(\T00_s) + li \T04_s, 62 + xor \S00_s, \S00_s, \T01_s + vsll.vx \T03_v, \S02_v, \T04_s + addi \T00_s, \T00_s, 8 + sd \T00_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vsrl.vi \S00_v, \S02_v, 64-62 + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \T01_s, \S02_s, \S07_s + li \T04_s, 43 + xor \T01_s, \T01_s, \S12_s + vsll.vx \T02_v, \S12_v, \T04_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + vsrl.vi \S02_v, \S12_v, 64-43 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \T03_s, \S01_s, \S06_s + li \T04_s, 64-25 + xor \T03_s, \T03_s, \S11_s + vsll.vi \T03_v, \S13_v, 25 + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vsrl.vx \S12_v, \S13_v, \T04_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + sd \S01_s, 19*8(sp) + xor \S16_s, \S16_s, \T02_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S21_s, \S21_s, \T02_s + li \T04_s, 64-8 + xor \T02_s, \S04_s, \S09_s + vsll.vi \T02_v, \S19_v, 8 + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vsrl.vx \S13_v, \S19_v, \T04_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + vxor.vv \S13_v, \S13_v, \T02_v + xor \T01_s, \T01_s, \T04_s + li \S01_s, 56 + xor \T04_s, \S03_s, \S08_s + vsll.vx \T03_v, \S23_v, \S01_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vsrl.vi \S19_v, \S23_v, 64-56 + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \S19_v, \S19_v, \T03_v + xor \S18_s, \S18_s, \T01_s + li \S01_s, 41 + xor \S23_s, \S23_s, \T01_s + vsll.vx \T02_v, \S15_v, \S01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + vsrl.vi \S23_v, \S15_v, 64-41 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \S14_s, \S14_s, \T00_s + li \S01_s, 64-1 + xor \S19_s, \S19_s, \T00_s + vsll.vi \T03_v, \S01_v, 1 + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + vsrl.vx \S15_v, \S01_v, \S01_s + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \S07_s, \S07_s, \T04_s + li \S01_s, 55 + xor \S12_s, \S12_s, \T04_s + vsll.vx \T02_v, \S08_v, \S01_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + vsrl.vi \S01_v, \S08_v, 64-55 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S05_s, \S05_s, \T03_s + li \S01_s, 45 + xor \S10_s, \S10_s, \T03_s + vsll.vx \T03_v, \S16_v, \S01_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vsrl.vi \S08_v, \S16_v, 64-45 + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + vxor.vv \S08_v, \S08_v, \T03_v + slli \T03_s, \S02_s, 62 + li \S01_s, 64-6 + srli \S00_s, \S02_s, 64-62 + vsll.vi \T02_v, \S07_v, 6 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + vsrl.vx \S16_v, \S07_v, \S01_s + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + vxor.vv \S16_v, \S16_v, \T02_v + xor \S12_s, \S12_s, \T03_s + li \S01_s, 64-3 + slli \T02_s, \S19_s, 8 + vsll.vi \T03_v, \S10_v, 3 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + vsrl.vx \S07_v, \S10_v, \S01_s + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + ld \S01_s, 19*8(sp) + slli \T02_s, \S15_s, 41 + vxor.vv \S07_v, \S07_v, \T03_v + srli \S23_s, \S15_s, 64-41 + li \T04_s, 64-28 + xor \S23_s, \S23_s, \T02_s + vsll.vi \T02_v, \S03_v, 28 + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + vsrl.vx \S10_v, \S03_v, \T04_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + vxor.vv \S10_v, \S10_v, \T02_v + slli \T03_s, \S16_s, 45 + li \T04_s, 64-21 + srli \S08_s, \S16_s, 64-45 + vsll.vi \T03_v, \S18_v, 21 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + vsrl.vx \S03_v, \S18_v, \T04_s + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + vxor.vv \S03_v, \S03_v, \T03_v + xor \S07_s, \S07_s, \T03_s + li \T04_s, 64-15 + slli \T02_s, \S03_s, 28 + vsll.vi \T02_v, \S17_v, 15 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + vsrl.vx \S18_v, \S17_v, \T04_s + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + vxor.vv \S18_v, \S18_v, \T02_v + srli \S18_s, \S17_s, 64-15 + li \T04_s, 64-10 + xor \S18_s, \S18_s, \T02_s + vsll.vi \T03_v, \S11_v, 10 + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + vsrl.vx \S17_v, \S11_v, \T04_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + vxor.vv \S17_v, \S17_v, \T03_v + slli \T03_s, \S22_s, 61 + li \T04_s, 64-20 + srli \S09_s, \S22_s, 64-61 + vsll.vi \T02_v, \S09_v, 20 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + vsrl.vx \S11_v, \S09_v, \T04_s + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + vxor.vv \S11_v, \S11_v, \T02_v + xor \S14_s, \S14_s, \T03_s + li \T04_s, 61 + slli \T02_s, \S04_s, 27 + vsll.vx \T03_v, \S22_v, \T04_s + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + vsrl.vi \S09_v, \S22_v, 64-61 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + vxor.vv \S09_v, \S09_v, \T03_v + srli \S24_s, \S21_s, 64-2 + li \T04_s, 39 + xor \S24_s, \S24_s, \T02_s + vsll.vx \T02_v, \S14_v, \T04_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + vsrl.vi \S22_v, \S14_v, 64-39 + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + vxor.vv \S22_v, \S22_v, \T02_v + xor \S06_s, \S11_s, \T03_s + li \T04_s, 64-18 + not \T02_s, \S09_s + vsll.vi \T03_v, \S20_v, 18 + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + vsrl.vx \S14_v, \S20_v, \T04_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + vxor.vv \S14_v, \S14_v, \T03_v + or \T03_s, \S16_s, \S12_s + li \T04_s, 64-27 + xor \S10_s, \S15_s, \T03_s + vsll.vi \T02_v, \S04_v, 27 + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + vsrl.vx \S20_v, \S04_v, \T04_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + vxor.vv \S20_v, \S20_v, \T02_v + or \T02_s, \S14_s, \S15_s + li \T04_s, 64-14 + xor \S13_s, \T03_s, \T02_s + vsll.vi \T03_v, \S24_v, 14 + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + vsrl.vx \S04_v, \S24_v, \T04_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + vxor.vv \S04_v, \S04_v, \T03_v + not \T02_s, \S18_s + li \T04_s, 64-2 + or \T02_s, \T02_s, \S19_s + vsll.vi \T02_v, \S21_v, 2 + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + vsrl.vx \S24_v, \S21_v, \T04_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + vxor.vv \S24_v, \S24_v, \T02_v + not \T03_s, \S01_s + li \T04_s, 36 + and \T03_s, \T03_s, \S22_s + vsll.vx \T03_v, \S05_v, \T04_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + vsrl.vi \S21_v, \S05_v, 64-36 + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + vxor.vv \S21_v, \S21_v, \T03_v + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + vor.vv \T02_v, \S11_v, \S07_v + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + vxor.vv \S05_v, \S10_v, \T02_v + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + vand.vv \T03_v, \S07_v, \S08_v + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + vxor.vv \S06_v, \S11_v, \T03_v + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + vnot.v \T02_v, \S09_v + ld \T00_s, 17*8(sp) + ld \T01_s, 0(\T00_s) + xor \S00_s, \S00_s, \T01_s + vor.vv \T02_v, \T02_v, \S08_v + addi \T00_s, \T00_s, 8 + sd \T00_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vxor.vv \S07_v, \S07_v, \T02_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vor.vv \T03_v, \S09_v, \S10_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + vxor.vv \S08_v, \S08_v, \T03_v + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + vand.vv \T02_v, \S10_v, \S11_v + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vxor.vv \S09_v, \S09_v, \T02_v + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vor.vv \T03_v, \S16_v, \S12_v + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vxor.vv \S10_v, \S15_v, \T03_v + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + vand.vv \T02_v, \S12_v, \S13_v + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vxor.vv \S11_v, \S16_v, \T02_v + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + vnot.v \T03_v, \S13_v + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + vand.vv \T03_v, \T03_v, \S14_v + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + vnot.v \T03_v, \S13_v + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + vor.vv \T02_v, \S14_v, \S15_v + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + vxor.vv \S13_v, \T03_v, \T02_v + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + vand.vv \T03_v, \S15_v, \S16_v + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + vxor.vv \S14_v, \S14_v, \T03_v + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + vand.vv \T02_v, \S21_v, \S17_v + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \S15_v, \S20_v, \T02_v + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + vor.vv \T03_v, \S17_v, \S18_v + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vxor.vv \S16_v, \S21_v, \T03_v + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vnot.v \T02_v, \S18_v + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + vor.vv \T02_v, \T02_v, \S19_v + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + vxor.vv \S17_v, \S17_v, \T02_v + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + vnot.v \T02_v, \S18_v + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + vand.vv \T03_v, \S19_v, \S20_v + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + vxor.vv \S18_v, \T02_v, \T03_v + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + vor.vv \T02_v, \S20_v, \S21_v + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + vxor.vv \S19_v, \S19_v, \T02_v + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + vnot.v \T03_v, \S01_v + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + vand.vv \T03_v, \T03_v, \S22_v + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + vxor.vv \S20_v, \S00_v, \T03_v + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + vnot.v \T03_v, \S01_v + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + vor.vv \T02_v, \S22_v, \S23_v + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + vxor.vv \S21_v, \T03_v, \T02_v + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + vand.vv \T03_v, \S23_v, \S24_v + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + vxor.vv \S22_v, \S22_v, \T03_v + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + vor.vv \T02_v, \S24_v, \S00_v + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + vxor.vv \S23_v, \S23_v, \T02_v + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + vand.vv \T03_v, \S00_v, \S01_v + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + vxor.vv \S24_v, \S24_v, \T03_v + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + vor.vv \T02_v, \T01_v, \S02_v + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + vxor.vv \S00_v, \T00_v, \T02_v + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + vnot.v \T03_v, \S02_v + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + vor.vv \T03_v, \T03_v, \S03_v + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + vxor.vv \S01_v, \T01_v, \T03_v + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + vand.vv \T02_v, \S03_v, \S04_v + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + vxor.vv \S02_v, \S02_v, \T02_v + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + vor.vv \T03_v, \S04_v, \T00_v + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + vxor.vv \S03_v, \S03_v, \T03_v + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + vand.vv \T02_v, \T00_v, \T01_v + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + vxor.vv \S04_v, \S04_v, \T02_v + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + + ld \T04_s, 18*8(sp) + ld \T03_s, 0(\T04_s) + vxor.vx \S00_v, \S00_v, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 18*8(sp) + + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_5x +.align 2 +KeccakF1600_StatePermute_RV64V_5x: + addi sp, sp, -8*21 + SaveRegs + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 8 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + ld a0, 15*8(sp) + ld s11, 20*8(sp) + addi gp, s11, -2 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*16 + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 3 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x6.s b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x6.s new file mode 100644 index 000000000..3195c655f --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x6.s @@ -0,0 +1,1413 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + not \S20, \S20 + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + # lane complement: 1,2,8,12,17,20 + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + not \S20, \S20 + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + vxor.vv \T00_v, \T00_v, \S15_v + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vxor.vv \T00_v, \T00_v, \S20_v + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + sd \S01_s, 19*8(sp) + xor \S21_s, \S21_s, \T02_s + vxor.vv \T01_v, \T01_v, \S12_v + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + vxor.vv \T01_v, \T01_v, \S17_v + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vxor.vv \T01_v, \T01_v, \S22_v + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + li \S01_s, 64-1 + xor \T04_s, \T04_s, \S18_s + vsll.vi \T03_v, \T01_v, 1 + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vsrl.vx \T02_v, \T01_v, \S01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + vxor.vv \T02_v, \T02_v, \T03_v + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + ld \S01_s, 19*8(sp) + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \T02_v, \T02_v, \T00_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + vxor.vv \T03_v, \S01_v, \S06_v + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + vxor.vv \T03_v, \T03_v, \S11_v + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + vxor.vv \T03_v, \T03_v, \S16_v + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + vxor.vv \T03_v, \T03_v, \S21_v + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + vxor.vv \S06_v, \S06_v, \T02_v + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + vxor.vv \S11_v, \S11_v, \T02_v + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + vxor.vv \S16_v, \S16_v, \T02_v + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + vxor.vv \S21_v, \S21_v, \T02_v + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + vxor.vv \T02_v, \S04_v, \S09_v + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + vxor.vv \T02_v, \T02_v, \S14_v + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + vxor.vv \T02_v, \T02_v, \S19_v + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + vxor.vv \T02_v, \T02_v, \S24_v + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + vsll.vi \T04_v, \T02_v, 1 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + vxor.vv \T01_v, \T01_v, \T04_v + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + li \T04_s, 63 + xor \S03_s, \S03_s, \T03_s + vsrl.vx \T04_v, \T02_v, \T04_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + vxor.vv \T01_v, \T01_v, \T04_v + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + vxor.vv \T04_v, \S03_v, \S08_v + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + vxor.vv \T04_v, \T04_v, \S13_v + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + vxor.vv \T04_v, \T04_v, \S18_v + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + vxor.vv \T04_v, \T04_v, \S23_v + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + vxor.vv \S03_v, \S03_v, \T01_v + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + vxor.vv \S08_v, \S08_v, \T01_v + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + vxor.vv \S13_v, \S13_v, \T01_v + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + vxor.vv \S18_v, \S18_v, \T01_v + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + vxor.vv \S23_v, \S23_v, \T01_v + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + li \T04_s, 64-1 + xor \S10_s, \S15_s, \T03_s + vsll.vi \T01_v, \T00_v, 1 + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + vsrl.vx \T00_v, \T00_v, \T04_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + vxor.vv \T00_v, \T00_v, \T01_v + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + vxor.vv \T00_v, \T00_v, \T04_v + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + vxor.vv \S04_v, \S04_v, \T00_v + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + vxor.vv \S09_v, \S09_v, \T00_v + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + vxor.vv \S14_v, \S14_v, \T00_v + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + vxor.vv \S19_v, \S19_v, \T00_v + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + vxor.vv \S24_v, \S24_v, \T00_v + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + li \T04_s, 64-1 + or \T02_s, \T01_s, \S02_s + vsll.vi \T01_v, \T04_v, 1 + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + vsrl.vx \T04_v, \T04_v, \T04_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + vxor.vv \T04_v, \T04_v, \T01_v + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + vxor.vv \T04_v, \T04_v, \T03_v + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + vxor.vv \S02_v, \S02_v, \T04_v + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + vxor.vv \S07_v, \S07_v, \T04_v + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + vxor.vv \S12_v, \S12_v, \T04_v + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vxor.vv \S17_v, \S17_v, \T04_v + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vxor.vv \S22_v, \S22_v, \T04_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + li \T04_s, 64-1 + xor \S16_s, \S16_s, \T02_s + vsll.vi \T01_v, \T03_v, 1 + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vsrl.vx \T03_v, \T03_v, \T04_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + vxor.vv \T03_v, \T03_v, \T01_v + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vxor.vv \T03_v, \T03_v, \T02_v + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \S05_v, \S05_v, \T03_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + vxor.vv \S10_v, \S10_v, \T03_v + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + vxor.vv \S20_v, \S20_v, \T03_v + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + vxor.vv \T00_v, \S00_v, \T03_v + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + li \T01_s, 44 + xor \S17_s, \S17_s, \T04_s + vsll.vx \T02_v, \S06_v, \T01_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + vsrl.vi \T01_v, \S06_v, 64-44 + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vxor.vv \T01_v, \T01_v, \T02_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + li \T04_s, 62 + slli \T02_s, \S06_s, 44 + vsll.vx \T03_v, \S02_v, \T04_s + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + vsrl.vi \S00_v, \S02_v, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + vxor.vv \S00_v, \S00_v, \T03_v + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + li \T04_s, 43 + xor \S12_s, \S12_s, \T03_s + vsll.vx \T02_v, \S12_v, \T04_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + vsrl.vi \S02_v, \S12_v, 64-43 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + vxor.vv \S02_v, \S02_v, \T02_v + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + li \T04_s, 64-25 + srli \S15_s, \S01_s, 64-1 + vsll.vi \T03_v, \S13_v, 25 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + vsrl.vx \S12_v, \S13_v, \T04_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + vxor.vv \S12_v, \S12_v, \T03_v + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + li \T04_s, 64-8 + slli \T03_s, \S10_s, 3 + vsll.vi \T02_v, \S19_v, 8 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + vsrl.vx \S13_v, \S19_v, \T04_s + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + vxor.vv \S13_v, \S13_v, \T02_v + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + li \T04_s, 56 + xor \S18_s, \S18_s, \T02_s + vsll.vx \T03_v, \S23_v, \T04_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + vsrl.vi \S19_v, \S23_v, 64-56 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + vxor.vv \S19_v, \S19_v, \T03_v + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + li \T04_s, 41 + srli \S22_s, \S14_s, 64-39 + vsll.vx \T02_v, \S15_v, \T04_s + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + vsrl.vi \S23_v, \S15_v, 64-41 + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + vxor.vv \S23_v, \S23_v, \T02_v + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + li \T04_s, 64-1 + slli \T02_s, \S21_s, 2 + vsll.vi \T03_v, \S01_v, 1 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + vsrl.vx \S15_v, \S01_v, \T04_s + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + li \T04_s, 55 + or \T02_s, \T02_s, \S08_s + vsll.vx \T02_v, \S08_v, \T04_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + vsrl.vi \S01_v, \S08_v, 64-55 + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + li \T04_s, 45 + and \T03_s, \T03_s, \S14_s + vsll.vx \T03_v, \S16_v, \T04_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + vsrl.vi \S08_v, \S16_v, 64-45 + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + vxor.vv \S08_v, \S08_v, \T03_v + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + li \T04_s, 64-6 + not \T02_s, \S18_s + vsll.vi \T02_v, \S07_v, 6 + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + vsrl.vx \S16_v, \S07_v, \T04_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + vxor.vv \S16_v, \S16_v, \T02_v + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + li \T04_s, 64-3 + not \T03_s, \S01_s + vsll.vi \T03_v, \S10_v, 3 + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + vsrl.vx \S07_v, \S10_v, \T04_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + vxor.vv \S07_v, \S07_v, \T03_v + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + li \T04_s, 64-28 + not \T03_s, \S02_s + vsll.vi \T02_v, \S03_v, 28 + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + vsrl.vx \S10_v, \S03_v, \T04_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + vxor.vv \S10_v, \S10_v, \T02_v + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + li \T01_s, 64-21 + xor \S00_s, \S00_s, \T03_s + vsll.vi \T03_v, \S18_v, 21 + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vsrl.vx \S03_v, \S18_v, \T01_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + li \T04_s, 64-15 + slli \T03_s, \T01_s, 1 + vsll.vi \T02_v, \S17_v, 15 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vsrl.vx \S18_v, \S17_v, \T04_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vxor.vv \S18_v, \S18_v, \T02_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + li \T04_s, 64-10 + xor \S16_s, \S16_s, \T02_s + vsll.vi \T03_v, \S11_v, 10 + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + sd \S01_s, 19*8(sp) + xor \T02_s, \T02_s, \S19_s + vsrl.vx \S17_v, \S11_v, \T04_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + vxor.vv \S17_v, \S17_v, \T03_v + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + li \S01_s, 64-20 + xor \T04_s, \T04_s, \S13_s + vsll.vi \T02_v, \S09_v, 20 + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vsrl.vx \S11_v, \S09_v, \S01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + vxor.vv \S11_v, \S11_v, \T02_v + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + li \S01_s, 61 + xor \T00_s, \T00_s, \T04_s + vsll.vx \T03_v, \S22_v, \S01_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + vsrl.vi \S09_v, \S22_v, 64-61 + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + vxor.vv \S09_v, \S09_v, \T03_v + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + li \S01_s, 39 + xor \S07_s, \S07_s, \T04_s + vsll.vx \T02_v, \S14_v, \S01_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + vsrl.vi \S22_v, \S14_v, 64-39 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vxor.vv \S22_v, \S22_v, \T02_v + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + li \S01_s, 64-18 + xor \S20_s, \S20_s, \T03_s + vsll.vi \T03_v, \S20_v, 18 + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + vsrl.vx \S14_v, \S20_v, \S01_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + vxor.vv \S14_v, \S14_v, \T03_v + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + li \S01_s, 64-27 + slli \T03_s, \S13_s, 25 + vsll.vi \T02_v, \S04_v, 27 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + vsrl.vx \S20_v, \S04_v, \S01_s + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + ld \S01_s, 19*8(sp) + xor \S19_s, \S19_s, \T03_s + vxor.vv \S20_v, \S20_v, \T02_v + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + li \T04_s, 64-14 + xor \S23_s, \S23_s, \T02_s + vsll.vi \T03_v, \S24_v, 14 + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + vsrl.vx \S04_v, \S24_v, \T04_s + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + vxor.vv \S04_v, \S04_v, \T03_v + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + li \T04_s, 64-2 + srli \S16_s, \S07_s, 64-6 + vsll.vi \T02_v, \S21_v, 2 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + vsrl.vx \S24_v, \S21_v, \T04_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + vxor.vv \S24_v, \S24_v, \T02_v + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + li \T04_s, 36 + slli \T02_s, \S17_s, 15 + vsll.vx \T03_v, \S05_v, \T04_s + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + vsrl.vi \S21_v, \S05_v, 64-36 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + vxor.vv \S21_v, \S21_v, \T03_v + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + vor.vv \T02_v, \S11_v, \S07_v + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + vxor.vv \S05_v, \S10_v, \T02_v + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + vand.vv \T03_v, \S07_v, \S08_v + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + vxor.vv \S06_v, \S11_v, \T03_v + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + vnot.v \T02_v, \S09_v + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + vor.vv \T02_v, \T02_v, \S08_v + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + vxor.vv \S07_v, \S07_v, \T02_v + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + vor.vv \T03_v, \S09_v, \S10_v + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + vxor.vv \S08_v, \S08_v, \T03_v + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + vand.vv \T02_v, \S10_v, \S11_v + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + vxor.vv \S09_v, \S09_v, \T02_v + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + vor.vv \T03_v, \S16_v, \S12_v + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + vxor.vv \S10_v, \S15_v, \T03_v + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + vand.vv \T02_v, \S12_v, \S13_v + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + vxor.vv \S11_v, \S16_v, \T02_v + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + vnot.v \T03_v, \S13_v + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + vand.vv \T03_v, \T03_v, \S14_v + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + vnot.v \T03_v, \S13_v + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + vor.vv \T02_v, \S14_v, \S15_v + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + vxor.vv \S13_v, \T03_v, \T02_v + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + vand.vv \T03_v, \S15_v, \S16_v + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vxor.vv \S14_v, \S14_v, \T03_v + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + vand.vv \T02_v, \S21_v, \S17_v + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + vxor.vv \S15_v, \S20_v, \T02_v + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + vor.vv \T03_v, \S17_v, \S18_v + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vxor.vv \S16_v, \S21_v, \T03_v + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + vnot.v \T02_v, \S18_v + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + vor.vv \T02_v, \T02_v, \S19_v + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \S17_v, \S17_v, \T02_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + vnot.v \T02_v, \S18_v + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + vand.vv \T03_v, \S19_v, \S20_v + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + vxor.vv \S18_v, \T02_v, \T03_v + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + vor.vv \T02_v, \S20_v, \S21_v + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + vxor.vv \S19_v, \S19_v, \T02_v + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + vnot.v \T03_v, \S01_v + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vand.vv \T03_v, \T03_v, \S22_v + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + vxor.vv \S20_v, \S00_v, \T03_v + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + vnot.v \T03_v, \S01_v + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + vor.vv \T02_v, \S22_v, \S23_v + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + vxor.vv \S21_v, \T03_v, \T02_v + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + vand.vv \T03_v, \S23_v, \S24_v + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + vxor.vv \S22_v, \S22_v, \T03_v + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + vor.vv \T02_v, \S24_v, \S00_v + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + vxor.vv \S23_v, \S23_v, \T02_v + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + vand.vv \T03_v, \S00_v, \S01_v + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + vxor.vv \S24_v, \S24_v, \T03_v + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + vor.vv \T02_v, \T01_v, \S02_v + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + vxor.vv \S00_v, \T00_v, \T02_v + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + vnot.v \T03_v, \S02_v + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + vor.vv \T03_v, \T03_v, \S03_v + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + vxor.vv \S01_v, \T01_v, \T03_v + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + vand.vv \T02_v, \S03_v, \S04_v + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + vxor.vv \S02_v, \S02_v, \T02_v + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + vor.vv \T03_v, \S04_v, \T00_v + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + vand.vv \T02_v, \T00_v, \T01_v + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + vxor.vv \S04_v, \S04_v, \T02_v + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + # Iota for vector impl + not \T03_s, \S02_s + ld \T04_s, 18*8(sp) + or \T03_s, \T03_s, \S03_s + ld \T02_s, 0(\T04_s) + xor \S01_s, \T01_s, \T03_s + vxor.vx \S00_v, \S00_v, \T02_s + and \T03_s, \S03_s, \S04_s + addi \T04_s, \T04_s, 8 + xor \S02_s, \S02_s, \T03_s + sd \T04_s, 18*8(sp) + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T03_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T03_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_6x +.align 2 +KeccakF1600_StatePermute_RV64V_6x: + addi sp, sp, -8*21 + SaveRegs + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 6 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + ld a0, 15*8(sp) + ld s11, 20*8(sp) + addi gp, s11, -3 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*(16) + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 4 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x8.s b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x8.s new file mode 100644 index 000000000..fb0193a08 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64imv_hybrid_x8.s @@ -0,0 +1,1814 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro SaveRegs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro RestoreRegs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # lane complement: 1,2,8,12,17,20 + # load states for scalar impl + ld \S00, 0*8(a0) + ld \S01, 1*8(a0) + ld \S02, 2*8(a0) + ld \S03, 3*8(a0) + ld \S04, 4*8(a0) + ld \S05, 5*8(a0) + ld \S06, 6*8(a0) + ld \S07, 7*8(a0) + ld \S08, 8*8(a0) + ld \S09, 9*8(a0) + ld \S10, 10*8(a0) + ld \S11, 11*8(a0) + ld \S12, 12*8(a0) + ld \S13, 13*8(a0) + ld \S14, 14*8(a0) + ld \S15, 15*8(a0) + ld \S16, 16*8(a0) + ld \S17, 17*8(a0) + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + ld \S18, 18*8(a0) + ld \S19, 19*8(a0) + ld \S20, 20*8(a0) + ld \S21, 21*8(a0) + ld \S22, 22*8(a0) + ld \S23, 23*8(a0) + not \S20, \S20 + ld \S24, 24*8(a0) +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_s \ + S00, S01, S02, S03, S04, \ + S05, S06, S07, S08, S09, \ + S10, S11, S12, S13, S14, \ + S15, S16, S17, S18, S19, \ + S20, S21, S22, S23, S24 + # store states for scalar impl + # lane complement: 1,2,8,12,17,20 + not \S01, \S01 + not \S02, \S02 + not \S08, \S08 + not \S12, \S12 + not \S17, \S17 + not \S20, \S20 + sd \S00, 0*8(a0) + sd \S01, 1*8(a0) + sd \S02, 2*8(a0) + sd \S03, 3*8(a0) + sd \S04, 4*8(a0) + sd \S05, 5*8(a0) + sd \S06, 6*8(a0) + sd \S07, 7*8(a0) + sd \S08, 8*8(a0) + sd \S09, 9*8(a0) + sd \S10, 10*8(a0) + sd \S11, 11*8(a0) + sd \S12, 12*8(a0) + sd \S13, 13*8(a0) + sd \S14, 14*8(a0) + sd \S15, 15*8(a0) + sd \S16, 16*8(a0) + sd \S17, 17*8(a0) + sd \S18, 18*8(a0) + sd \S19, 19*8(a0) + sd \S20, 20*8(a0) + sd \S21, 21*8(a0) + sd \S22, 22*8(a0) + sd \S23, 23*8(a0) + sd \S24, 24*8(a0) +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + S00_s, S01_s, S02_s, S03_s, S04_s, S05_s, S06_s, S07_s, S08_s, S09_s, \ + S10_s, S11_s, S12_s, S13_s, S14_s, S15_s, S16_s, S17_s, S18_s, S19_s, \ + S20_s, S21_s, S22_s, S23_s, S24_s, T00_s, T01_s, T02_s, T03_s, T04_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \T00_v, \S00_v, \S05_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + vxor.vv \T00_v, \T00_v, \S10_v + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + vxor.vv \T00_v, \T00_v, \S15_v + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + vxor.vv \T00_v, \T00_v, \S20_v + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + vxor.vv \T01_v, \S02_v, \S07_v + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \T01_v, \T01_v, \S12_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + vxor.vv \T01_v, \T01_v, \S17_v + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + vxor.vv \T01_v, \T01_v, \S22_v + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + li \T00_s, 64-1 + xor \S07_s, \S07_s, \T04_s + vsll.vi \T03_v, \T01_v, 1 + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + vsrl.vx \T02_v, \T01_v, \T00_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vxor.vv \T02_v, \T02_v, \T03_v + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + vxor.vv \T02_v, \T02_v, \T00_v + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + vxor.vv \T03_v, \S01_v, \S06_v + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + vxor.vv \T03_v, \T03_v, \S11_v + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + vxor.vv \T03_v, \T03_v, \S16_v + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + vxor.vv \T03_v, \T03_v, \S21_v + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + vxor.vv \S01_v, \S01_v, \T02_v + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + vxor.vv \S06_v, \S06_v, \T02_v + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + vxor.vv \S11_v, \S11_v, \T02_v + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + vxor.vv \S16_v, \S16_v, \T02_v + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + vxor.vv \S21_v, \S21_v, \T02_v + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + vxor.vv \T02_v, \S04_v, \S09_v + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + vxor.vv \T02_v, \T02_v, \S14_v + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + vxor.vv \T02_v, \T02_v, \S19_v + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + vxor.vv \T02_v, \T02_v, \S24_v + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + vsll.vi \T04_v, \T02_v, 1 + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + vxor.vv \T01_v, \T01_v, \T04_v + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + li \T04_s, 63 + or \T02_s, \T02_s, \S19_s + vsrl.vx \T04_v, \T02_v, \T04_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + vxor.vv \T01_v, \T01_v, \T04_v + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + vxor.vv \T04_v, \S03_v, \S08_v + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + vxor.vv \T04_v, \T04_v, \S13_v + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + vxor.vv \T04_v, \T04_v, \S18_v + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + vxor.vv \T04_v, \T04_v, \S23_v + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vxor.vv \S03_v, \S03_v, \T01_v + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + vxor.vv \S08_v, \S08_v, \T01_v + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + vxor.vv \S13_v, \S13_v, \T01_v + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + sd \S01_s, 19*8(sp) + xor \S16_s, \S16_s, \T02_s + vxor.vv \S18_v, \S18_v, \T01_v + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + vxor.vv \S23_v, \S23_v, \T01_v + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + li \S01_s, 64-1 + xor \T04_s, \T04_s, \S13_s + vsll.vi \T01_v, \T00_v, 1 + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + vsrl.vx \T00_v, \T00_v, \S01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + vxor.vv \T00_v, \T00_v, \T01_v + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + vxor.vv \T00_v, \T00_v, \T04_v + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + vxor.vv \S04_v, \S04_v, \T00_v + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + vxor.vv \S09_v, \S09_v, \T00_v + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + vxor.vv \S14_v, \S14_v, \T00_v + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + vxor.vv \S19_v, \S19_v, \T00_v + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + vxor.vv \S24_v, \S24_v, \T00_v + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + ld \S01_s, 19*8(sp) + xor \S19_s, \S19_s, \T03_s + li \T04_s, 64-1 + slli \T02_s, \S15_s, 41 + vsll.vi \T01_v, \T04_v, 1 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + vsrl.vx \T04_v, \T04_v, \T04_s + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + vxor.vv \T04_v, \T04_v, \T01_v + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + vxor.vv \T04_v, \T04_v, \T03_v + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + vxor.vv \S02_v, \S02_v, \T04_v + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + vxor.vv \S07_v, \S07_v, \T04_v + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + vxor.vv \S12_v, \S12_v, \T04_v + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + vxor.vv \S17_v, \S17_v, \T04_v + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + vxor.vv \S22_v, \S22_v, \T04_v + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + li \T04_s, 64-1 + xor \S21_s, \S21_s, \T03_s + vsll.vi \T01_v, \T03_v, 1 + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + vsrl.vx \T03_v, \T03_v, \T04_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + vxor.vv \T03_v, \T03_v, \T01_v + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + vxor.vv \T03_v, \T03_v, \T02_v + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + vxor.vv \S05_v, \S05_v, \T03_v + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + vxor.vv \S10_v, \S10_v, \T03_v + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + vxor.vv \S15_v, \S15_v, \T03_v + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + vxor.vv \S20_v, \S20_v, \T03_v + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + vxor.vv \T00_v, \S00_v, \T03_v + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + li \T04_s, 44 + and \T02_s, \S03_s, \S04_s + vsll.vx \T02_v, \S06_v, \T04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + vsrl.vi \T01_v, \S06_v, 64-44 + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + vxor.vv \T01_v, \T01_v, \T02_v + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + li \T04_s, 62 + xor \T01_s, \T01_s, \S17_s + vsll.vx \T03_v, \S02_v, \T04_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + vsrl.vi \S00_v, \S02_v, 64-62 + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + sd \S01_s, 19*8(sp) + xor \T02_s, \T02_s, \S14_s + li \T04_s, 43 + xor \T02_s, \T02_s, \S19_s + vsll.vx \T02_v, \S12_v, \T04_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + vsrl.vi \S02_v, \S12_v, 64-43 + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + vxor.vv \S02_v, \S02_v, \T02_v + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + li \S01_s, 64-25 + xor \T00_s, \T00_s, \T01_s + vsll.vi \T03_v, \S13_v, 25 + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vsrl.vx \S12_v, \S13_v, \S01_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + vxor.vv \S12_v, \S12_v, \T03_v + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + li \S01_s, 64-8 + srli \T03_s, \T03_s, 64-1 + vsll.vi \T02_v, \S19_v, 8 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + vsrl.vx \S13_v, \S19_v, \S01_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + vxor.vv \S13_v, \S13_v, \T02_v + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + li \S01_s, 56 + slli \T03_s, \S13_s, 25 + vsll.vx \T03_v, \S23_v, \S01_s + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + vsrl.vi \S19_v, \S23_v, 64-56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + ld \S01_s, 19*8(sp) + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + vxor.vv \S19_v, \S19_v, \T03_v + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + li \T04_s, 41 + xor \S01_s, \S01_s, \T02_s + vsll.vx \T02_v, \S15_v, \T04_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + vsrl.vi \S23_v, \S15_v, 64-41 + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + vxor.vv \S23_v, \S23_v, \T02_v + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + li \T04_s, 64-1 + srli \S18_s, \S17_s, 64-15 + vsll.vi \T03_v, \S01_v, 1 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + vsrl.vx \S15_v, \S01_v, \T04_s + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + vxor.vv \S15_v, \S15_v, \T03_v + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + li \T04_s, 55 + slli \T02_s, \S04_s, 27 + vsll.vx \T02_v, \S08_v, \T04_s + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + vsrl.vi \S01_v, \S08_v, 64-55 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + vxor.vv \S01_v, \S01_v, \T02_v + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + li \T04_s, 45 + or \T02_s, \T02_s, \S08_s + vsll.vx \T03_v, \S16_v, \T04_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + vsrl.vi \S08_v, \S16_v, 64-45 + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + vxor.vv \S08_v, \S08_v, \T03_v + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + li \T04_s, 64-6 + xor \S14_s, \S14_s, \T03_s + vsll.vi \T02_v, \S07_v, 6 + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + vsrl.vx \S16_v, \S07_v, \T04_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + vxor.vv \S16_v, \S16_v, \T02_v + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + li \T04_s, 64-3 + or \T02_s, \S22_s, \S23_s + vsll.vi \T03_v, \S10_v, 3 + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + vsrl.vx \S07_v, \S10_v, \T04_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + vxor.vv \S07_v, \S07_v, \T03_v + and \T03_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T03_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + li \T02_s, 64-28 + and \T03_s, \T00_s, \T01_s + vsll.vi \T02_v, \S03_v, 28 + xor \S04_s, \S04_s, \T03_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + vsrl.vx \S10_v, \S03_v, \T02_s + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + vxor.vv \S10_v, \S10_v, \T02_v + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + li \T04_s, 64-21 + xor \T02_s, \T02_s, \T03_s + vsll.vi \T03_v, \S18_v, 21 + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vsrl.vx \S03_v, \S18_v, \T04_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + sd \S01_s, 19*8(sp) + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vxor.vv \S03_v, \S03_v, \T03_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + li \S01_s, 64-15 + srli \T04_s, \T02_s, 63 + vsll.vi \T02_v, \S17_v, 15 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + vsrl.vx \S18_v, \S17_v, \S01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + vxor.vv \S18_v, \S18_v, \T02_v + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + li \S01_s, 64-10 + xor \S14_s, \S14_s, \T00_s + vsll.vi \T03_v, \S11_v, 10 + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + vsrl.vx \S17_v, \S11_v, \S01_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + vxor.vv \S17_v, \S17_v, \T03_v + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + li \S01_s, 64-20 + xor \S10_s, \S10_s, \T03_s + vsll.vi \T02_v, \S09_v, 20 + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + vsrl.vx \S11_v, \S09_v, \S01_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + vxor.vv \S11_v, \S11_v, \T02_v + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + li \S01_s, 61 + srli \S13_s, \S19_s, 64-8 + vsll.vx \T03_v, \S22_v, \S01_s + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + ld \S01_s, 19*8(sp) + srli \S23_s, \S15_s, 64-41 + vsrl.vi \S09_v, \S22_v, 64-61 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + vxor.vv \S09_v, \S09_v, \T03_v + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + li \T04_s, 39 + slli \T02_s, \S07_s, 6 + vsll.vx \T02_v, \S14_v, \T04_s + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + vsrl.vi \S22_v, \S14_v, 64-39 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + vxor.vv \S22_v, \S22_v, \T02_v + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + li \T04_s, 64-18 + xor \S17_s, \S17_s, \T03_s + vsll.vi \T03_v, \S20_v, 18 + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + vsrl.vx \S14_v, \S20_v, \T04_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + vxor.vv \S14_v, \S14_v, \T03_v + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + li \T04_s, 64-27 + srli \S04_s, \S24_s, 64-14 + vsll.vi \T02_v, \S04_v, 27 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + vsrl.vx \S20_v, \S04_v, \T04_s + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + vxor.vv \S20_v, \S20_v, \T02_v + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + li \T04_s, 64-14 + and \T02_s, \S10_s, \S11_s + vsll.vi \T03_v, \S24_v, 14 + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + vsrl.vx \S04_v, \S24_v, \T04_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + vxor.vv \S04_v, \S04_v, \T03_v + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + li \T04_s, 64-2 + xor \S16_s, \S21_s, \T03_s + vsll.vi \T02_v, \S21_v, 2 + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + vsrl.vx \S24_v, \S21_v, \T04_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + vxor.vv \S24_v, \S24_v, \T02_v + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + li \T04_s, 36 + or \T02_s, \S24_s, \S00_s + vsll.vx \T03_v, \S05_v, \T04_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + vsrl.vi \S21_v, \S05_v, 64-36 + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + vxor.vv \S21_v, \S21_v, \T03_v + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + vor.vv \T02_v, \S11_v, \S07_v + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + vxor.vv \S05_v, \S10_v, \T02_v + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + vand.vv \T03_v, \S07_v, \S08_v + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + vxor.vv \S06_v, \S11_v, \T03_v + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + vnot.v \T02_v, \S09_v + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + vor.vv \T02_v, \T02_v, \S08_v + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + vxor.vv \S07_v, \S07_v, \T02_v + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + vor.vv \T03_v, \S09_v, \S10_v + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + vxor.vv \S08_v, \S08_v, \T03_v + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + vand.vv \T02_v, \S10_v, \S11_v + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + vxor.vv \S09_v, \S09_v, \T02_v + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + vor.vv \T03_v, \S16_v, \S12_v + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + vxor.vv \S10_v, \S15_v, \T03_v + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + vand.vv \T02_v, \S12_v, \S13_v + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + vxor.vv \S11_v, \S16_v, \T02_v + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + vnot.v \T03_v, \S13_v + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + vand.vv \T03_v, \T03_v, \S14_v + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + vxor.vv \S12_v, \S12_v, \T03_v + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + vnot.v \T03_v, \S13_v + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + vor.vv \T02_v, \S14_v, \S15_v + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + vxor.vv \S13_v, \T03_v, \T02_v + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + vand.vv \T03_v, \S15_v, \S16_v + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + vxor.vv \S14_v, \S14_v, \T03_v + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + vand.vv \T02_v, \S21_v, \S17_v + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + vxor.vv \S15_v, \S20_v, \T02_v + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + vor.vv \T03_v, \S17_v, \S18_v + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + vxor.vv \S16_v, \S21_v, \T03_v + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + vnot.v \T02_v, \S18_v + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + vor.vv \T02_v, \T02_v, \S19_v + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + vxor.vv \S17_v, \S17_v, \T02_v + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + vnot.v \T02_v, \S18_v + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + vand.vv \T03_v, \S19_v, \S20_v + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + xor \S01_s, \T01_s, \T03_s + and \T02_s, \S03_s, \S04_s + xor \S02_s, \S02_s, \T02_s + vxor.vv \S18_v, \T02_v, \T03_v + or \T03_s, \S04_s, \T00_s + xor \S03_s, \S03_s, \T03_s + and \T02_s, \T00_s, \T01_s + xor \S04_s, \S04_s, \T02_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + vor.vv \T02_v, \S20_v, \S21_v + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) + xor \T00_s, \S00_s, \S05_s + xor \T00_s, \T00_s, \S10_s + xor \T00_s, \T00_s, \S15_s + vxor.vv \S19_v, \S19_v, \T02_v + xor \T00_s, \T00_s, \S20_s + xor \T01_s, \S02_s, \S07_s + xor \T01_s, \T01_s, \S12_s + xor \T01_s, \T01_s, \S17_s + xor \T01_s, \T01_s, \S22_s + slli \T03_s, \T01_s, 1 + vnot.v \T03_v, \S01_v + srli \T02_s, \T01_s, 64-1 + xor \T02_s, \T02_s, \T03_s + xor \T02_s, \T02_s, \T00_s + xor \T03_s, \S01_s, \S06_s + xor \T03_s, \T03_s, \S11_s + xor \T03_s, \T03_s, \S16_s + vand.vv \T03_v, \T03_v, \S22_v + xor \T03_s, \T03_s, \S21_s + xor \S01_s, \S01_s, \T02_s + xor \S06_s, \S06_s, \T02_s + xor \S11_s, \S11_s, \T02_s + xor \S16_s, \S16_s, \T02_s + xor \S21_s, \S21_s, \T02_s + vxor.vv \S20_v, \S00_v, \T03_v + xor \T02_s, \S04_s, \S09_s + xor \T02_s, \T02_s, \S14_s + xor \T02_s, \T02_s, \S19_s + xor \T02_s, \T02_s, \S24_s + slli \T04_s, \T02_s, 1 + xor \T01_s, \T01_s, \T04_s + vnot.v \T03_v, \S01_v + srli \T04_s, \T02_s, 63 + xor \T01_s, \T01_s, \T04_s + xor \T04_s, \S03_s, \S08_s + xor \T04_s, \T04_s, \S13_s + xor \T04_s, \T04_s, \S18_s + xor \T04_s, \T04_s, \S23_s + vor.vv \T02_v, \S22_v, \S23_v + xor \S03_s, \S03_s, \T01_s + xor \S08_s, \S08_s, \T01_s + xor \S13_s, \S13_s, \T01_s + xor \S18_s, \S18_s, \T01_s + xor \S23_s, \S23_s, \T01_s + slli \T01_s, \T00_s, 1 + vxor.vv \S21_v, \T03_v, \T02_v + srli \T00_s, \T00_s, 64-1 + xor \T00_s, \T00_s, \T01_s + xor \T00_s, \T00_s, \T04_s + xor \S04_s, \S04_s, \T00_s + xor \S09_s, \S09_s, \T00_s + xor \S14_s, \S14_s, \T00_s + vand.vv \T03_v, \S23_v, \S24_v + xor \S19_s, \S19_s, \T00_s + xor \S24_s, \S24_s, \T00_s + slli \T01_s, \T04_s, 1 + srli \T04_s, \T04_s, 64-1 + xor \T04_s, \T04_s, \T01_s + xor \T04_s, \T04_s, \T03_s + vxor.vv \S22_v, \S22_v, \T03_v + xor \S02_s, \S02_s, \T04_s + xor \S07_s, \S07_s, \T04_s + xor \S12_s, \S12_s, \T04_s + xor \S17_s, \S17_s, \T04_s + xor \S22_s, \S22_s, \T04_s + slli \T01_s, \T03_s, 1 + vor.vv \T02_v, \S24_v, \S00_v + srli \T03_s, \T03_s, 64-1 + xor \T03_s, \T03_s, \T01_s + xor \T03_s, \T03_s, \T02_s + xor \S05_s, \S05_s, \T03_s + xor \S10_s, \S10_s, \T03_s + xor \S15_s, \S15_s, \T03_s + vxor.vv \S23_v, \S23_v, \T02_v + xor \S20_s, \S20_s, \T03_s + xor \T00_s, \S00_s, \T03_s + slli \T02_s, \S06_s, 44 + srli \T01_s, \S06_s, 64-44 + xor \T01_s, \T01_s, \T02_s + slli \T03_s, \S02_s, 62 + vand.vv \T03_v, \S00_v, \S01_v + srli \S00_s, \S02_s, 64-62 + xor \S00_s, \S00_s, \T03_s + slli \T02_s, \S12_s, 43 + srli \S02_s, \S12_s, 64-43 + xor \S02_s, \S02_s, \T02_s + slli \T03_s, \S13_s, 25 + vxor.vv \S24_v, \S24_v, \T03_v + srli \S12_s, \S13_s, 64-25 + xor \S12_s, \S12_s, \T03_s + slli \T02_s, \S19_s, 8 + srli \S13_s, \S19_s, 64-8 + xor \S13_s, \S13_s, \T02_s + slli \T03_s, \S23_s, 56 + vor.vv \T02_v, \T01_v, \S02_v + srli \S19_s, \S23_s, 64-56 + xor \S19_s, \S19_s, \T03_s + slli \T02_s, \S15_s, 41 + srli \S23_s, \S15_s, 64-41 + xor \S23_s, \S23_s, \T02_s + slli \T03_s, \S01_s, 1 + vxor.vv \S00_v, \T00_v, \T02_v + srli \S15_s, \S01_s, 64-1 + xor \S15_s, \S15_s, \T03_s + slli \T02_s, \S08_s, 55 + srli \S01_s, \S08_s, 64-55 + xor \S01_s, \S01_s, \T02_s + slli \T03_s, \S16_s, 45 + vnot.v \T03_v, \S02_v + srli \S08_s, \S16_s, 64-45 + xor \S08_s, \S08_s, \T03_s + slli \T02_s, \S07_s, 6 + srli \S16_s, \S07_s, 64-6 + xor \S16_s, \S16_s, \T02_s + slli \T03_s, \S10_s, 3 + vor.vv \T03_v, \T03_v, \S03_v + srli \S07_s, \S10_s, 64-3 + xor \S07_s, \S07_s, \T03_s + slli \T02_s, \S03_s, 28 + srli \S10_s, \S03_s, 64-28 + xor \S10_s, \S10_s, \T02_s + slli \T03_s, \S18_s, 21 + vxor.vv \S01_v, \T01_v, \T03_v + srli \S03_s, \S18_s, 64-21 + xor \S03_s, \S03_s, \T03_s + slli \T02_s, \S17_s, 15 + srli \S18_s, \S17_s, 64-15 + xor \S18_s, \S18_s, \T02_s + slli \T03_s, \S11_s, 10 + vand.vv \T02_v, \S03_v, \S04_v + srli \S17_s, \S11_s, 64-10 + xor \S17_s, \S17_s, \T03_s + slli \T02_s, \S09_s, 20 + srli \S11_s, \S09_s, 64-20 + xor \S11_s, \S11_s, \T02_s + slli \T03_s, \S22_s, 61 + vxor.vv \S02_v, \S02_v, \T02_v + srli \S09_s, \S22_s, 64-61 + xor \S09_s, \S09_s, \T03_s + slli \T02_s, \S14_s, 39 + srli \S22_s, \S14_s, 64-39 + xor \S22_s, \S22_s, \T02_s + slli \T03_s, \S20_s, 18 + vor.vv \T03_v, \S04_v, \T00_v + srli \S14_s, \S20_s, 64-18 + xor \S14_s, \S14_s, \T03_s + slli \T02_s, \S04_s, 27 + srli \S20_s, \S04_s, 64-27 + xor \S20_s, \S20_s, \T02_s + slli \T03_s, \S24_s, 14 + vxor.vv \S03_v, \S03_v, \T03_v + srli \S04_s, \S24_s, 64-14 + xor \S04_s, \S04_s, \T03_s + slli \T02_s, \S21_s, 2 + srli \S24_s, \S21_s, 64-2 + xor \S24_s, \S24_s, \T02_s + slli \T03_s, \S05_s, 36 + vand.vv \T02_v, \T00_v, \T01_v + srli \S21_s, \S05_s, 64-36 + xor \S21_s, \S21_s, \T03_s + or \T02_s, \S11_s, \S07_s + xor \S05_s, \S10_s, \T02_s + and \T03_s, \S07_s, \S08_s + xor \S06_s, \S11_s, \T03_s + vxor.vv \S04_v, \S04_v, \T02_v + not \T02_s, \S09_s + or \T02_s, \T02_s, \S08_s + xor \S07_s, \S07_s, \T02_s + or \T03_s, \S09_s, \S10_s + xor \S08_s, \S08_s, \T03_s + and \T02_s, \S10_s, \S11_s + xor \S09_s, \S09_s, \T02_s + or \T03_s, \S16_s, \S12_s + xor \S10_s, \S15_s, \T03_s + and \T02_s, \S12_s, \S13_s + xor \S11_s, \S16_s, \T02_s + not \T03_s, \S13_s + and \T03_s, \T03_s, \S14_s + xor \S12_s, \S12_s, \T03_s + not \T03_s, \S13_s + or \T02_s, \S14_s, \S15_s + xor \S13_s, \T03_s, \T02_s + and \T03_s, \S15_s, \S16_s + xor \S14_s, \S14_s, \T03_s + and \T02_s, \S21_s, \S17_s + xor \S15_s, \S20_s, \T02_s + or \T03_s, \S17_s, \S18_s + xor \S16_s, \S21_s, \T03_s + not \T02_s, \S18_s + or \T02_s, \T02_s, \S19_s + xor \S17_s, \S17_s, \T02_s + not \T02_s, \S18_s + and \T03_s, \S19_s, \S20_s + xor \S18_s, \T02_s, \T03_s + or \T02_s, \S20_s, \S21_s + xor \S19_s, \S19_s, \T02_s + not \T03_s, \S01_s + and \T03_s, \T03_s, \S22_s + xor \S20_s, \S00_s, \T03_s + not \T03_s, \S01_s + or \T02_s, \S22_s, \S23_s + xor \S21_s, \T03_s, \T02_s + and \T03_s, \S23_s, \S24_s + xor \S22_s, \S22_s, \T03_s + or \T02_s, \S24_s, \S00_s + xor \S23_s, \S23_s, \T02_s + and \T03_s, \S00_s, \S01_s + xor \S24_s, \S24_s, \T03_s + or \T02_s, \T01_s, \S02_s + xor \S00_s, \T00_s, \T02_s + not \T03_s, \S02_s + or \T03_s, \T03_s, \S03_s + ld \T04_s, 18*8(sp) + xor \S01_s, \T01_s, \T03_s + and \T03_s, \S03_s, \S04_s + ld \T02_s, 0(\T04_s) + xor \S02_s, \S02_s, \T03_s + or \T03_s, \S04_s, \T00_s + vxor.vx \S00_v, \S00_v, \T02_s + xor \S03_s, \S03_s, \T03_s + addi \T04_s, \T04_s, 8 + and \T03_s, \T00_s, \T01_s + sd \T04_s, 18*8(sp) + xor \S04_s, \S04_s, \T03_s + ld \T04_s, 17*8(sp) + ld \T03_s, 0(\T04_s) + xor \S00_s, \S00_s, \T03_s + addi \T04_s, \T04_s, 8 + sd \T04_s, 17*8(sp) +.endm + +# 15*8(sp): a0 +# 16*8(sp): loop control variable i +# 17*8(sp): table index for scalar impl +# 18*8(sp): table index for vector impl +# 19*8(sp): temp +# 20*8(sp): outer loop control variable j +.globl KeccakF1600_StatePermute_RV64V_8x +.align 2 +KeccakF1600_StatePermute_RV64V_8x: + addi sp, sp, -8*21 + SaveRegs + sd a0, 15*8(sp) + # set VPU + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + li s11, 0 +outer_loop: + sd s11, 20*8(sp) + # prepare table index + la ra, constants_keccak + sd ra, 17*8(sp) + bnez s11, init_1th_loop +init_0th_loop: + sd ra, 18*8(sp) + LoadStates_v + j init_end +init_1th_loop: + addi a0, a0, 25*8 +init_end: + LoadStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + li a0, 4 +inner_loop: + sd a0, 16*8(sp) + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10,s11,ra, gp, tp, a0 + ld a0, 16*8(sp) + addi a0, a0, -1 + bnez a0, inner_loop + + ld a0, 15*8(sp) + ld s11, 20*8(sp) + addi gp, s11, -5 + beqz gp, final_last_loop +final_no_last_loop: + addi a0, a0, 25*(16) + j final_end +final_last_loop: + StoreStates_v +final_end: + li ra, 25*8 + mul ra, ra, s11 + add a0, a0, ra + StoreStates_s \ + a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, \ + t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, \ + s6, s7, s8, s9, s10 + addi s11, s11, 1 + li ra, 6 + blt s11, ra, outer_loop + + RestoreRegs + addi sp, sp, 8*21 + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64v.s b/examples/naive/riscv/keccak/fips202_rv64v.s new file mode 100644 index 000000000..337206992 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64v.s @@ -0,0 +1,378 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +.macro LoadStates + # lane complement: 1,2,8,12,17,20 + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, -24*16 +.endm + +.macro StoreStates + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) +.endm + +.macro XOR5_x2 \ + out_0_v, S0_00_v, S0_01_v, S0_02_v, S0_03_v, S0_04_v, \ + out_1_v, S1_00_v, S1_01_v, S1_02_v, S1_03_v, S1_04_v + vxor.vv \out_0_v, \S0_00_v, \S0_01_v + vxor.vv \out_1_v, \S1_00_v, \S1_01_v + vxor.vv \out_0_v, \out_0_v, \S0_02_v + vxor.vv \out_1_v, \out_1_v, \S1_02_v + vxor.vv \out_0_v, \out_0_v, \S0_03_v + vxor.vv \out_1_v, \out_1_v, \S1_03_v + vxor.vv \out_0_v, \out_0_v, \S0_04_v + vxor.vv \out_1_v, \out_1_v, \S1_04_v +.endm + +.macro XOR5_x3 \ + out_0_v, S0_00_v, S0_01_v, S0_02_v, S0_03_v, S0_04_v, \ + out_1_v, S1_00_v, S1_01_v, S1_02_v, S1_03_v, S1_04_v, \ + out_2_v, S2_00_v, S2_01_v, S2_02_v, S2_03_v, S2_04_v + vxor.vv \out_0_v, \S0_00_v, \S0_01_v + vxor.vv \out_1_v, \S1_00_v, \S1_01_v + vxor.vv \out_2_v, \S2_00_v, \S2_01_v + vxor.vv \out_0_v, \out_0_v, \S0_02_v + vxor.vv \out_1_v, \out_1_v, \S1_02_v + vxor.vv \out_2_v, \out_2_v, \S2_02_v + vxor.vv \out_0_v, \out_0_v, \S0_03_v + vxor.vv \out_1_v, \out_1_v, \S1_03_v + vxor.vv \out_2_v, \out_2_v, \S2_03_v + vxor.vv \out_0_v, \out_0_v, \S0_04_v + vxor.vv \out_1_v, \out_1_v, \S1_04_v + vxor.vv \out_2_v, \out_2_v, \S2_04_v +.endm + +.macro ROLn_li out_0_v, in_0_v, tmp_0_v, n, tmp_0_s +.if \n < 32 + li \tmp_0_s, 64-\n + vsll.vi \tmp_0_v, \in_0_v, \n + vsrl.vx \out_0_v, \in_0_v, \tmp_0_s + vxor.vv \out_0_v, \out_0_v, \tmp_0_v +.else + li \tmp_0_s, \n + vsll.vx \tmp_0_v, \in_0_v, \tmp_0_s + vsrl.vi \out_0_v, \in_0_v, 64-\n + vxor.vv \out_0_v, \out_0_v, \tmp_0_v +.endif +.endm + +# tmp_0_s is ready for using; if n<32: tmp_0_s=64-n; else: tmp_0_s=n +.macro ROLn out_0_v, in_0_v, tmp_0_v, n, tmp_0_s +.if \n < 32 + vsll.vi \tmp_0_v, \in_0_v, \n + vsrl.vx \out_0_v, \in_0_v, \tmp_0_s + vxor.vv \out_0_v, \out_0_v, \tmp_0_v +.else + vsll.vx \tmp_0_v, \in_0_v, \tmp_0_s + vsrl.vi \out_0_v, \in_0_v, 64-\n + vxor.vv \out_0_v, \out_0_v, \tmp_0_v +.endif +.endm + +# out = in0 ^ ROL(in1, 1); tmp_0_s=64-1 is ready for using +.macro ROL1_XOR out_0_v, in_0_0_v, in_0_1_v, tmp_0_v, tmp_0_s + vsll.vi \tmp_0_v, \in_0_1_v, 1 + vsrl.vx \out_0_v, \in_0_1_v, \tmp_0_s + vxor.vv \out_0_v, \out_0_v, \tmp_0_v + vxor.vv \out_0_v, \out_0_v, \in_0_0_v +.endm + +.macro ROL1_XOR_x2 \ + out_0_v, in_0_0_v, in_0_1_v, tmp_0_v, \ + out_1_v, in_1_0_v, in_1_1_v, tmp_1_v, \ + tmp_0_s + vsll.vi \tmp_0_v, \in_0_1_v, 1 + vsll.vi \tmp_1_v, \in_1_1_v, 1 + vsrl.vx \out_0_v, \in_0_1_v, \tmp_0_s + vsrl.vx \out_1_v, \in_1_1_v, \tmp_0_s + vxor.vv \out_0_v, \out_0_v, \tmp_0_v + vxor.vv \out_1_v, \out_1_v, \tmp_1_v + vxor.vv \out_0_v, \out_0_v, \in_0_0_v + vxor.vv \out_1_v, \out_1_v, \in_1_0_v +.endm + +.macro EachXOR S0_00_v, S0_01_v, S0_02_v, S0_03_v, S0_04_v, D_v + vxor.vv \S0_00_v, \S0_00_v, \D_v + vxor.vv \S0_01_v, \S0_01_v, \D_v + vxor.vv \S0_02_v, \S0_02_v, \D_v + vxor.vv \S0_03_v, \S0_03_v, \D_v + vxor.vv \S0_04_v, \S0_04_v, \D_v +.endm + +.macro ARoundInPlace \ + S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, \ + T05_v, T06_v, T07_s + # theta - start + # T00,T01,T02=C1,C4,C3 + XOR5_x3 \ + \T00_v, \S01_v, \S06_v, \S11_v, \S16_v, \S21_v, \ + \T01_v, \S04_v, \S09_v, \S14_v, \S19_v, \S24_v, \ + \T02_v, \S03_v, \S08_v, \S13_v, \S18_v, \S23_v + # T03,T04=D0,D2 + li \T07_s, 64-1 + ROL1_XOR_x2 \ + \T03_v, \T01_v, \T00_v, \T05_v, \ + \T04_v, \T00_v, \T02_v, \T06_v, \T07_s + # T01,T02,T05,T06=C4,C3,C0,C2; T03,T04=D0,D2; T00: empty + XOR5_x2 \ + \T05_v, \S00_v, \S05_v, \S10_v, \S15_v, \S20_v, \ + \T06_v, \S02_v, \S07_v, \S12_v, \S17_v, \S22_v + EachXOR \S00_v, \S05_v, \S10_v, \S15_v, \S20_v, \T03_v + vxor.vv \S02_v, \S02_v, \T04_v + vxor.vv \S07_v, \S07_v, \T04_v + vxor.vv \S12_v, \S12_v, \T04_v + vsll.vi \T03_v, \T01_v, 1 + vsrl.vx \T00_v, \T01_v, \T07_s + vxor.vv \S17_v, \S17_v, \T04_v + vxor.vv \S22_v, \S22_v, \T04_v + vxor.vv \T00_v, \T00_v, \T03_v + vxor.vv \T00_v, \T00_v, \T06_v + # T02,T05,T06=C3,C0,C2; T00:D3; T01,T03,T04: empty + EachXOR \S03_v, \S08_v, \S13_v, \S18_v, \S23_v, \T00_v + # T01,T04=D1,D4 + ROL1_XOR_x2 \ + \T01_v, \T05_v, \T06_v, \T00_v \ + \T04_v, \T02_v, \T05_v, \T03_v, \T07_s + EachXOR \S01_v, \S06_v, \S11_v, \S16_v, \S21_v, \T01_v + EachXOR \S04_v, \S09_v, \S14_v, \S19_v, \S24_v, \T04_v + vmv.v.v \T00_v, \S00_v + # theta - end + # Rho & Pi & Chi - start + li \T07_s, 44 + vsrl.vi \T01_v, \S06_v, 20 + vsll.vx \T02_v, \S06_v, \T07_s + li \T07_s, 62 + vsrl.vi \S00_v, \S02_v, 2 + vsll.vx \T03_v, \S02_v, \T07_s + vxor.vv \T01_v, \T01_v, \T02_v + vxor.vv \S00_v, \S00_v, \T03_v + li \T07_s, 43 + vsrl.vi \S02_v, \S12_v, 21 + vsll.vx \T02_v, \S12_v, \T07_s + li \T07_s, 39 + vsll.vi \T03_v, \S13_v, 25 + vsrl.vx \S12_v, \S13_v, \T07_s + vxor.vv \S02_v, \S02_v, \T02_v + vxor.vv \S12_v, \S12_v, \T03_v + li \T07_s, 56 + vsll.vi \T02_v, \S19_v, 8 + vsrl.vx \S13_v, \S19_v, \T07_s + li \T07_s, 56 + vsrl.vi \S19_v, \S23_v, 8 + vsll.vx \T03_v, \S23_v, \T07_s + vxor.vv \S13_v, \S13_v, \T02_v + vxor.vv \S19_v, \S19_v, \T03_v + li \T07_s, 41 + vsrl.vi \S23_v, \S15_v, 23 + vsll.vx \T02_v, \S15_v, \T07_s + li \T07_s, 63 + vsll.vi \T03_v, \S01_v, 1 + vsrl.vx \S15_v, \S01_v, \T07_s + vxor.vv \S23_v, \S23_v, \T02_v + vxor.vv \S15_v, \S15_v, \T03_v + li \T07_s, 55 + vsrl.vi \S01_v, \S08_v, 9 + vsll.vx \T02_v, \S08_v, \T07_s + li \T07_s, 45 + vsrl.vi \S08_v, \S16_v, 19 + vsll.vx \T03_v, \S16_v, \T07_s + vxor.vv \S01_v, \S01_v, \T02_v + vxor.vv \S08_v, \S08_v, \T03_v + li \T07_s, 58 + vsll.vi \T02_v, \S07_v, 6 + vsrl.vx \S16_v, \S07_v, \T07_s + li \T07_s, 61 + vsll.vi \T03_v, \S10_v, 3 + vsrl.vx \S07_v, \S10_v, \T07_s + vxor.vv \S16_v, \S16_v, \T02_v + vxor.vv \S07_v, \S07_v, \T03_v + li \T07_s, 36 + vsll.vi \T02_v, \S03_v, 28 + vsrl.vx \S10_v, \S03_v, \T07_s + li \T07_s, 43 + vsll.vi \T03_v, \S18_v, 21 + vsrl.vx \S03_v, \S18_v, \T07_s + vxor.vv \S10_v, \S10_v, \T02_v + vxor.vv \S03_v, \S03_v, \T03_v + li \T07_s, 49 + vsll.vi \T02_v, \S17_v, 15 + vsrl.vx \S18_v, \S17_v, \T07_s + li \T07_s, 54 + vsll.vi \T03_v, \S11_v, 10 + vsrl.vx \S17_v, \S11_v, \T07_s + vxor.vv \S18_v, \S18_v, \T02_v + vxor.vv \S17_v, \S17_v, \T03_v + li \T07_s, 44 + vsll.vi \T02_v, \S09_v, 20 + vsrl.vx \S11_v, \S09_v, \T07_s + li \T07_s, 61 + vsrl.vi \S09_v, \S22_v, 3 + vsll.vx \T03_v, \S22_v, \T07_s + vxor.vv \S11_v, \S11_v, \T02_v + vxor.vv \S09_v, \S09_v, \T03_v + li \T07_s, 39 + vsrl.vi \S22_v, \S14_v, 25 + vsll.vx \T02_v, \S14_v, \T07_s + li \T07_s, 46 + vsll.vi \T03_v, \S20_v, 18 + vsrl.vx \S14_v, \S20_v, \T07_s + vxor.vv \S22_v, \S22_v, \T02_v + vxor.vv \S14_v, \S14_v, \T03_v + li \T07_s, 37 + vsll.vi \T02_v, \S04_v, 27 + vsrl.vx \S20_v, \S04_v, \T07_s + li \T07_s, 50 + vsll.vi \T03_v, \S24_v, 14 + vsrl.vx \S04_v, \S24_v, \T07_s + vxor.vv \S20_v, \S20_v, \T02_v + vxor.vv \S04_v, \S04_v, \T03_v + li \T07_s, 62 + vsll.vi \T02_v, \S21_v, 2 + vsrl.vx \S24_v, \S21_v, \T07_s + li \T07_s, 36 + vsrl.vi \S21_v, \S05_v, 28 + vsll.vx \T03_v, \S05_v, \T07_s + vxor.vv \S24_v, \S24_v, \T02_v + vxor.vv \S21_v, \S21_v, \T03_v + vor.vv \T02_v, \S11_v, \S07_v + vand.vv \T03_v, \S07_v, \S08_v + vnot.v \T04_v, \S09_v + vor.vv \T05_v, \S09_v, \S10_v + vxor.vv \S05_v, \S10_v, \T02_v + vor.vv \T04_v, \T04_v, \S08_v + vxor.vv \S06_v, \S11_v, \T03_v + vxor.vv \S07_v, \S07_v, \T04_v + vxor.vv \S08_v, \S08_v, \T05_v + vand.vv \T02_v, \S10_v, \S11_v + vor.vv \T03_v, \S16_v, \S12_v + vnot.v \T05_v, \S13_v + vand.vv \T04_v, \S12_v, \S13_v + vxor.vv \S09_v, \S09_v, \T02_v + vand.vv \T05_v, \T05_v, \S14_v + vxor.vv \S10_v, \S15_v, \T03_v + vxor.vv \S11_v, \S16_v, \T04_v + vxor.vv \S12_v, \S12_v, \T05_v + vnot.v \T03_v, \S13_v + vand.vv \T04_v, \S15_v, \S16_v + vand.vv \T05_v, \S21_v, \S17_v + vor.vv \T02_v, \S14_v, \S15_v + vxor.vv \S14_v, \S14_v, \T04_v + vxor.vv \S15_v, \S20_v, \T05_v + vxor.vv \S13_v, \T03_v, \T02_v + vnot.v \T03_v, \S18_v + vnot.v \T05_v, \S18_v + vor.vv \T02_v, \S17_v, \S18_v + vor.vv \T03_v, \T03_v, \S19_v + vand.vv \T04_v, \S19_v, \S20_v + vxor.vv \S16_v, \S21_v, \T02_v + vxor.vv \S17_v, \S17_v, \T03_v + vxor.vv \S18_v, \T05_v, \T04_v + vnot.v \T03_v, \S01_v + vnot.v \T05_v, \S01_v + vor.vv \T02_v, \S20_v, \S21_v + vand.vv \T03_v, \T03_v, \S22_v + vor.vv \T04_v, \S22_v, \S23_v + vxor.vv \S19_v, \S19_v, \T02_v + vxor.vv \S20_v, \S00_v, \T03_v + vxor.vv \S21_v, \T05_v, \T04_v + vand.vv \T02_v, \S23_v, \S24_v + vor.vv \T03_v, \S24_v, \S00_v + vand.vv \T04_v, \S00_v, \S01_v + vor.vv \T05_v, \T01_v, \S02_v + vxor.vv \S22_v, \S22_v, \T02_v + vxor.vv \S23_v, \S23_v, \T03_v + vxor.vv \S24_v, \S24_v, \T04_v + vxor.vv \S00_v, \T00_v, \T05_v + vnot.v \T02_v, \S02_v + vor.vv \T04_v, \S04_v, \T00_v + vand.vv \T03_v, \S03_v, \S04_v + vand.vv \T05_v, \T00_v, \T01_v + vor.vv \T02_v, \T02_v, \S03_v + ld \T07_s, 0(a3) + vxor.vv \S02_v, \S02_v, \T03_v + vxor.vv \S03_v, \S03_v, \T04_v + vxor.vv \S01_v, \T01_v, \T02_v + vxor.vv \S04_v, \S04_v, \T05_v + vxor.vx \S00_v, \S00_v, \T07_s + addi a3, a3, 8 +.endm + +.globl KeccakF1600_StatePermute_RV64V_2x +.align 2 +KeccakF1600_StatePermute_RV64V_2x: + + vsetivli a2, 2, e64, m1, tu, mu + + LoadStates + + # a2: loop control variable i + # a3: table index + li a2, 24 + la a3, constants_keccak + +loop: + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, \ + v30, v31, a4 + addi a2, a2, -1 + bnez a2, loop + + StoreStates + + ret diff --git a/examples/naive/riscv/keccak/fips202_rv64v_unroll.s b/examples/naive/riscv/keccak/fips202_rv64v_unroll.s new file mode 100644 index 000000000..7c6a3cb89 --- /dev/null +++ b/examples/naive/riscv/keccak/fips202_rv64v_unroll.s @@ -0,0 +1,474 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.text + +#ifdef V0p7 +.macro LoadStates + # lane complement: 1,2,8,12,17,20 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, -24*16 +.endm +#else +.macro LoadStates + # lane complement: 1,2,8,12,17,20 + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, -24*16 +.endm +#endif + +#ifdef V0p7 +.macro StoreStates + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) +.endm +#else +.macro StoreStates + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) +.endm +#endif + +.macro ARoundInPlace S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, \ + S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, \ + S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v + vxor.vv \T00_v, \S00_v, \S05_v + vxor.vv \T00_v, \T00_v, \S10_v + vxor.vv \T00_v, \T00_v, \S15_v + vxor.vv \T00_v, \T00_v, \S20_v + vxor.vv \T01_v, \S02_v, \S07_v + vxor.vv \T01_v, \T01_v, \S12_v + vxor.vv \T01_v, \T01_v, \S17_v + vxor.vv \T01_v, \T01_v, \S22_v + li a4, 64-1 + vsll.vi \T03_v, \T01_v, 1 + vsrl.vx \T02_v, \T01_v, a4 + vxor.vv \T02_v, \T02_v, \T03_v + vxor.vv \T02_v, \T02_v, \T00_v + vxor.vv \T03_v, \S01_v, \S06_v + vxor.vv \T03_v, \T03_v, \S11_v + vxor.vv \T03_v, \T03_v, \S16_v + vxor.vv \T03_v, \T03_v, \S21_v + vxor.vv \S01_v, \S01_v, \T02_v + vxor.vv \S06_v, \S06_v, \T02_v + vxor.vv \S11_v, \S11_v, \T02_v + vxor.vv \S16_v, \S16_v, \T02_v + vxor.vv \S21_v, \S21_v, \T02_v + vxor.vv \T02_v, \S04_v, \S09_v + vxor.vv \T02_v, \T02_v, \S14_v + vxor.vv \T02_v, \T02_v, \S19_v + vxor.vv \T02_v, \T02_v, \S24_v + vsll.vi \T04_v, \T02_v, 1 + vxor.vv \T01_v, \T01_v, \T04_v + li a4, 63 + vsrl.vx \T04_v, \T02_v, a4 + vxor.vv \T01_v, \T01_v, \T04_v + vxor.vv \T04_v, \S03_v, \S08_v + vxor.vv \T04_v, \T04_v, \S13_v + vxor.vv \T04_v, \T04_v, \S18_v + vxor.vv \T04_v, \T04_v, \S23_v + vxor.vv \S03_v, \S03_v, \T01_v + vxor.vv \S08_v, \S08_v, \T01_v + vxor.vv \S13_v, \S13_v, \T01_v + vxor.vv \S18_v, \S18_v, \T01_v + vxor.vv \S23_v, \S23_v, \T01_v + li a4, 64-1 + vsll.vi \T01_v, \T00_v, 1 + vsrl.vx \T00_v, \T00_v, a4 + vxor.vv \T00_v, \T00_v, \T01_v + vxor.vv \T00_v, \T00_v, \T04_v + vxor.vv \S04_v, \S04_v, \T00_v + vxor.vv \S09_v, \S09_v, \T00_v + vxor.vv \S14_v, \S14_v, \T00_v + vxor.vv \S19_v, \S19_v, \T00_v + vxor.vv \S24_v, \S24_v, \T00_v + li a4, 64-1 + vsll.vi \T01_v, \T04_v, 1 + vsrl.vx \T04_v, \T04_v, a4 + vxor.vv \T04_v, \T04_v, \T01_v + vxor.vv \T04_v, \T04_v, \T03_v + vxor.vv \S02_v, \S02_v, \T04_v + vxor.vv \S07_v, \S07_v, \T04_v + vxor.vv \S12_v, \S12_v, \T04_v + vxor.vv \S17_v, \S17_v, \T04_v + vxor.vv \S22_v, \S22_v, \T04_v + li a4, 64-1 + vsll.vi \T01_v, \T03_v, 1 + vsrl.vx \T03_v, \T03_v, a4 + vxor.vv \T03_v, \T03_v, \T01_v + vxor.vv \T03_v, \T03_v, \T02_v + vxor.vv \S05_v, \S05_v, \T03_v + vxor.vv \S10_v, \S10_v, \T03_v + vxor.vv \S15_v, \S15_v, \T03_v + vxor.vv \S20_v, \S20_v, \T03_v + vxor.vv \T00_v, \S00_v, \T03_v + li a4, 44 + vsll.vx \T02_v, \S06_v, a4 + vsrl.vi \T01_v, \S06_v, 64-44 + vxor.vv \T01_v, \T01_v, \T02_v + li a4, 62 + vsll.vx \T03_v, \S02_v, a4 + vsrl.vi \S00_v, \S02_v, 64-62 + vxor.vv \S00_v, \S00_v, \T03_v + li a4, 43 + vsll.vx \T02_v, \S12_v, a4 + vsrl.vi \S02_v, \S12_v, 64-43 + vxor.vv \S02_v, \S02_v, \T02_v + li a4, 64-25 + vsll.vi \T03_v, \S13_v, 25 + vsrl.vx \S12_v, \S13_v, a4 + vxor.vv \S12_v, \S12_v, \T03_v + li a4, 64-8 + vsll.vi \T02_v, \S19_v, 8 + vsrl.vx \S13_v, \S19_v, a4 + vxor.vv \S13_v, \S13_v, \T02_v + li a4, 56 + vsll.vx \T03_v, \S23_v, a4 + vsrl.vi \S19_v, \S23_v, 64-56 + vxor.vv \S19_v, \S19_v, \T03_v + li a4, 41 + vsll.vx \T02_v, \S15_v, a4 + vsrl.vi \S23_v, \S15_v, 64-41 + vxor.vv \S23_v, \S23_v, \T02_v + li a4, 64-1 + vsll.vi \T03_v, \S01_v, 1 + vsrl.vx \S15_v, \S01_v, a4 + vxor.vv \S15_v, \S15_v, \T03_v + li a4, 55 + vsll.vx \T02_v, \S08_v, a4 + vsrl.vi \S01_v, \S08_v, 64-55 + vxor.vv \S01_v, \S01_v, \T02_v + li a4, 45 + vsll.vx \T03_v, \S16_v, a4 + vsrl.vi \S08_v, \S16_v, 64-45 + vxor.vv \S08_v, \S08_v, \T03_v + li a4, 64-6 + vsll.vi \T02_v, \S07_v, 6 + vsrl.vx \S16_v, \S07_v, a4 + vxor.vv \S16_v, \S16_v, \T02_v + li a4, 64-3 + vsll.vi \T03_v, \S10_v, 3 + vsrl.vx \S07_v, \S10_v, a4 + vxor.vv \S07_v, \S07_v, \T03_v + li a4, 64-28 + vsll.vi \T02_v, \S03_v, 28 + vsrl.vx \S10_v, \S03_v, a4 + vxor.vv \S10_v, \S10_v, \T02_v + li a4, 64-21 + vsll.vi \T03_v, \S18_v, 21 + vsrl.vx \S03_v, \S18_v, a4 + vxor.vv \S03_v, \S03_v, \T03_v + li a4, 64-15 + vsll.vi \T02_v, \S17_v, 15 + vsrl.vx \S18_v, \S17_v, a4 + vxor.vv \S18_v, \S18_v, \T02_v + li a4, 64-10 + vsll.vi \T03_v, \S11_v, 10 + vsrl.vx \S17_v, \S11_v, a4 + vxor.vv \S17_v, \S17_v, \T03_v + li a4, 64-20 + vsll.vi \T02_v, \S09_v, 20 + vsrl.vx \S11_v, \S09_v, a4 + vxor.vv \S11_v, \S11_v, \T02_v + li a4, 61 + vsll.vx \T03_v, \S22_v, a4 + vsrl.vi \S09_v, \S22_v, 64-61 + vxor.vv \S09_v, \S09_v, \T03_v + li a4, 39 + vsll.vx \T02_v, \S14_v, a4 + vsrl.vi \S22_v, \S14_v, 64-39 + vxor.vv \S22_v, \S22_v, \T02_v + li a4, 64-18 + vsll.vi \T03_v, \S20_v, 18 + vsrl.vx \S14_v, \S20_v, a4 + vxor.vv \S14_v, \S14_v, \T03_v + li a4, 64-27 + vsll.vi \T02_v, \S04_v, 27 + vsrl.vx \S20_v, \S04_v, a4 + vxor.vv \S20_v, \S20_v, \T02_v + li a4, 64-14 + vsll.vi \T03_v, \S24_v, 14 + vsrl.vx \S04_v, \S24_v, a4 + vxor.vv \S04_v, \S04_v, \T03_v + li a4, 64-2 + vsll.vi \T02_v, \S21_v, 2 + vsrl.vx \S24_v, \S21_v, a4 + vxor.vv \S24_v, \S24_v, \T02_v + li a4, 36 + vsll.vx \T03_v, \S05_v, a4 + vsrl.vi \S21_v, \S05_v, 64-36 + vxor.vv \S21_v, \S21_v, \T03_v + vor.vv \T02_v, \S11_v, \S07_v + vxor.vv \S05_v, \S10_v, \T02_v + vand.vv \T03_v, \S07_v, \S08_v + vxor.vv \S06_v, \S11_v, \T03_v + vnot.v \T02_v, \S09_v + vor.vv \T02_v, \T02_v, \S08_v + vxor.vv \S07_v, \S07_v, \T02_v + vor.vv \T03_v, \S09_v, \S10_v + vxor.vv \S08_v, \S08_v, \T03_v + vand.vv \T02_v, \S10_v, \S11_v + vxor.vv \S09_v, \S09_v, \T02_v + vor.vv \T03_v, \S16_v, \S12_v + vxor.vv \S10_v, \S15_v, \T03_v + vand.vv \T02_v, \S12_v, \S13_v + vxor.vv \S11_v, \S16_v, \T02_v + vnot.v \T03_v, \S13_v + vand.vv \T03_v, \T03_v, \S14_v + vxor.vv \S12_v, \S12_v, \T03_v + vnot.v \T03_v, \S13_v + vor.vv \T02_v, \S14_v, \S15_v + vxor.vv \S13_v, \T03_v, \T02_v + vand.vv \T03_v, \S15_v, \S16_v + vxor.vv \S14_v, \S14_v, \T03_v + vand.vv \T02_v, \S21_v, \S17_v + vxor.vv \S15_v, \S20_v, \T02_v + vor.vv \T03_v, \S17_v, \S18_v + vxor.vv \S16_v, \S21_v, \T03_v + vnot.v \T02_v, \S18_v + vor.vv \T02_v, \T02_v, \S19_v + vxor.vv \S17_v, \S17_v, \T02_v + vnot.v \T02_v, \S18_v + vand.vv \T03_v, \S19_v, \S20_v + vxor.vv \S18_v, \T02_v, \T03_v + vor.vv \T02_v, \S20_v, \S21_v + vxor.vv \S19_v, \S19_v, \T02_v + vnot.v \T03_v, \S01_v + vand.vv \T03_v, \T03_v, \S22_v + vxor.vv \S20_v, \S00_v, \T03_v + vnot.v \T03_v, \S01_v + vor.vv \T02_v, \S22_v, \S23_v + vxor.vv \S21_v, \T03_v, \T02_v + vand.vv \T03_v, \S23_v, \S24_v + vxor.vv \S22_v, \S22_v, \T03_v + vor.vv \T02_v, \S24_v, \S00_v + vxor.vv \S23_v, \S23_v, \T02_v + vand.vv \T03_v, \S00_v, \S01_v + vxor.vv \S24_v, \S24_v, \T03_v + vor.vv \T02_v, \T01_v, \S02_v + vxor.vv \S00_v, \T00_v, \T02_v + vnot.v \T03_v, \S02_v + vor.vv \T03_v, \T03_v, \S03_v + vxor.vv \S01_v, \T01_v, \T03_v + vand.vv \T02_v, \S03_v, \S04_v + vxor.vv \S02_v, \S02_v, \T02_v + vor.vv \T03_v, \S04_v, \T00_v + vxor.vv \S03_v, \S03_v, \T03_v + vand.vv \T02_v, \T00_v, \T01_v + vxor.vv \S04_v, \S04_v, \T02_v + ld a4, 0(a3) + vxor.vx \S00_v, \S00_v, a4 + addi a3, a3, 8 +.endm + +.globl KeccakF1600_StatePermute_RV64V_2x +.align 2 +KeccakF1600_StatePermute_RV64V_2x: + + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + # LoadStates + # lane complement: 1,2,8,12,17,20 + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, -24*16 + + # a2: loop control variable i + # a3: table index + li a2, 24 + la a3, constants_keccak + +loop: + ARoundInPlace \ + v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, \ + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, \ + v20, v21, v22, v23, v24, v25, v26, v27, v28, v29 + addi a2, a2, -1 + bnez a2, loop + + # StoreStates + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + + ret diff --git a/examples/naive/riscv/keccak/ko_fips202_rv32im.s b/examples/naive/riscv/keccak/ko_fips202_rv32im.s new file mode 100644 index 000000000..bfc5c0446 --- /dev/null +++ b/examples/naive/riscv/keccak/ko_fips202_rv32im.s @@ -0,0 +1,497 @@ +.text + +// This code was inspired by the eXtended Keccak Code Package and then modified +// https://github.com/XKCP/XKCP/tree/master/lib/low/KeccakP-1600/Optimized32biAsmARM/KeccakP-1600-inplace-32bi-armv7m-le-gcc.s + +// State offsets +.equ Aba0, 0*4 +.equ Aba1, 1*4 +.equ Abe0, 2*4 +.equ Abe1, 3*4 +.equ Abi0, 4*4 +.equ Abi1, 5*4 +.equ Abo0, 6*4 +.equ Abo1, 7*4 +.equ Abu0, 8*4 +.equ Abu1, 9*4 +.equ Aga0, 10*4 +.equ Aga1, 11*4 +.equ Age0, 12*4 +.equ Age1, 13*4 +.equ Agi0, 14*4 +.equ Agi1, 15*4 +.equ Ago0, 16*4 +.equ Ago1, 17*4 +.equ Agu0, 18*4 +.equ Agu1, 19*4 +.equ Aka0, 20*4 +.equ Aka1, 21*4 +.equ Ake0, 22*4 +.equ Ake1, 23*4 +.equ Aki0, 24*4 +.equ Aki1, 25*4 +.equ Ako0, 26*4 +.equ Ako1, 27*4 +.equ Aku0, 28*4 +.equ Aku1, 29*4 +.equ Ama0, 30*4 +.equ Ama1, 31*4 +.equ Ame0, 32*4 +.equ Ame1, 33*4 +.equ Ami0, 34*4 +.equ Ami1, 35*4 +.equ Amo0, 36*4 +.equ Amo1, 37*4 +.equ Amu0, 38*4 +.equ Amu1, 39*4 +.equ Asa0, 40*4 +.equ Asa1, 41*4 +.equ Ase0, 42*4 +.equ Ase1, 43*4 +.equ Asi0, 44*4 +.equ Asi1, 45*4 +.equ Aso0, 46*4 +.equ Aso1, 47*4 +.equ Asu0, 48*4 +.equ Asu1, 49*4 + +.macro xor5 dst,b,g,k,m,s,tmp + lw \dst, \b(a0) + lw \tmp, \g(a0) + xor \dst, \dst, \tmp + lw \tmp, \k(a0) + xor \dst, \dst, \tmp + lw \tmp, \m(a0) + xor \dst, \dst, \tmp + lw \tmp, \s(a0) + xor \dst, \dst, \tmp +.endm + +.macro ror reg,dist,tmp + srli \tmp, \reg, \dist + slli \reg, \reg, 32-\dist + xor \reg, \reg, \tmp +.endm + +.macro xorrol dst,aa,bb,tmp + srli \tmp, \bb, 31 + slli \dst, \bb, 1 + xor \dst, \dst, \tmp + xor \dst, \dst, \aa +.endm + +.macro xorand dst,aa,bb,cc,tmp + and \tmp, \bb, \cc + xor \tmp, \tmp, \aa + sw \tmp, \dst(a0) +.endm + +.macro xornotand dst,aa,bb,cc,tmp + not \tmp, \bb + and \tmp, \tmp, \cc + xor \tmp, \tmp, \aa + sw \tmp, \dst(a0) +.endm + +.macro notxorand dst,aa,bb,cc,tmp0,tmp1 + not \tmp0, \aa + and \tmp1, \bb, \cc + xor \tmp0, \tmp0, \tmp1 + sw \tmp0, \dst(a0) +.endm + +.macro xoror dst,aa,bb,cc,tmp + or \tmp, \bb, \cc + xor \tmp, \tmp, \aa + sw \tmp, \dst(a0) +.endm + +.macro xornotor dst,aa,bb,cc,tmp + not \tmp, \bb + or \tmp, \tmp, \cc + xor \tmp, \tmp, \aa + sw \tmp, \dst(a0) +.endm + +.macro notxoror dst,aa,bb,cc,tmp0,tmp1 + not \tmp0, \aa + or \tmp1, \bb, \cc + xor \tmp0, \tmp0, \tmp1 + sw \tmp0, \dst(a0) +.endm + +.macro thetarhopifinal aA1,aDax,aA2,aDex,rot2,aA3,aDix,rot3,aA4,aDox,rot4,aA5,aDux,rot5 + lw a2, \aA1(a0) + lw a3, \aA2(a0) + lw a4, \aA3(a0) + lw a5, \aA4(a0) + lw a6, \aA5(a0) + xor a2, a2, \aDax + xor a3, a3, \aDex + xor a4, a4, \aDix + xor a5, a5, \aDox + xor a6, a6, \aDux + ror a3, (32-\rot2), t6 + ror a4, (32-\rot3), t6 + ror a5, (32-\rot4), t6 + ror a6, (32-\rot5), t6 +.endm + +.macro thetarhopi aB1,aA1,aDax,rot1,aB2,aA2,aDex,rot2,aB3,aA3,aDix,rot3,aB4,aA4,aDox,rot4,aB5,aA5,aDux,rot5 + lw \aB1, \aA1(a0) + lw \aB2, \aA2(a0) + lw \aB3, \aA3(a0) + lw \aB4, \aA4(a0) + lw \aB5, \aA5(a0) + xor \aB1, \aB1, \aDax + xor \aB2, \aB2, \aDex + xor \aB3, \aB3, \aDix + xor \aB4, \aB4, \aDox + xor \aB5, \aB5, \aDux + ror \aB1, (32-\rot1), t6 + .if \rot2 > 0 + ror \aB2, (32-\rot2), t6 + .endif + ror \aB3, (32-\rot3), t6 + ror \aB4, (32-\rot4), t6 + ror \aB5, (32-\rot5), t6 +.endm + +.macro chipattern0 aA1,aA2,aA3,aA4,aA5 + xoror \aA1, a2, a3, a4, t6 + xorand \aA2, a3, a4, a5, t6 + xornotor \aA3, a4, a6, a5, t6 + xoror \aA4, a5, a6, a2, t6 + xorand \aA5, a6, a2, a3, t6 +.endm + +.macro chipattern1 aA1,aA2,aA3,aA4,aA5 + xoror \aA1, a2, a3, a4, t6 + xorand \aA2, a3, a4, a5, t6 + xornotand \aA3, a4, a5, a6, t6 + notxoror \aA4, a5, a6, a2, t6, t1 + xorand \aA5, a6, a2, a3, t6 +.endm + +.macro chipattern2 aA1,aA2,aA3,aA4,aA5 + xorand \aA1, a2, a3, a4, t6 + xoror \aA2, a3, a4, a5, t6 + xornotor \aA3, a4, a5, a6, t6 + notxorand \aA4, a5, a6, a2, t6, t1 + xoror \aA5, a6, a2, a3, t6 +.endm + +.macro chipattern3 aA1,aA2,aA3,aA4,aA5 + xornotand \aA1, a2, a3, a4, t6 + notxoror \aA2, a3, a4, a5, t6, t1 + xorand \aA3, a4, a5, a6, t6 + xoror \aA4, a5, a6, a2, t6 + xorand \aA5, a6, a2, a3, t6 +.endm + +.macro chiiota aA1,aA2,aA3,aA4,aA5,offset + xornotor \aA2, a3, a4, a5, t6 + xorand \aA3, a4, a5, a6, t6 + xoror \aA4, a5, a6, a2, t6 + xorand \aA5, a6, a2, a3, t6 + or a4, a4, a3 + lw t6, \offset(a1) + xor a2, a2, a4 + xor a2, a2, t6 + sw a2, \aA1(a0) +.endm + +.macro round0 + xor5 a2, Abu0, Agu0, Aku0, Amu0, Asu0, t6 + xor5 a6, Abe1, Age1, Ake1, Ame1, Ase1, t6 + xorrol s0, a2, a6, t6 + xor5 a5, Abu1, Agu1, Aku1, Amu1, Asu1, t6 + xor5 t5, Abe0, Age0, Ake0, Ame0, Ase0, t6 + xor t0, a5, t5 + + xor5 a4, Abi0, Agi0, Aki0, Ami0, Asi0, t6 + xorrol s4, a4, a5, t6 + xor5 a3, Abi1, Agi1, Aki1, Ami1, Asi1, t6 + xor s1, a2, a3 + + xor5 a2, Aba0, Aga0, Aka0, Ama0, Asa0, t6 + xorrol t2, a2, a3, t6 + xor5 a5, Aba1, Aga1, Aka1, Ama1, Asa1, t6 + xor t3, a5, a4 + + xor5 a3, Abo1, Ago1, Ako1, Amo1, Aso1, t6 + xorrol a7, t5, a3, t6 + xor5 a4, Abo0, Ago0, Ako0, Amo0, Aso0, t6 + xor s2, a6, a4 + + xorrol t4, a4, a5, t6 + xor t5, a3, a2 + +//used for masks: r2,r8,r9,r10,r11,r12,lr,mDa0,mDo1,mDi0,mDa1,mDo0 +// = > a7,t0,t1, t2, t3, t4,t5, s0, s1, s2, s3, s4 + thetarhopi a4, Aka1, t0, 2, a5, Ame1, t3, 23, a6, Asi1, s2, 31, a2, Abo0, s4, 14, a3, Agu0, t4, 10 + chipattern0 Aka1, Ame1, Asi1, Abo0, Agu0 + thetarhopi a6, Asa1, t0, 9, a2, Abe0, t2, 0, a3, Agi1, s2, 3, a4, Ako0, s4, 12, a5, Amu1, t5, 4 + chipattern1 Asa1, Abe0, Agi1, Ako0, Amu1 + thetarhopi a3, Aga0, s0, 18, a4, Ake0, t2, 5, a5, Ami1, s2, 8, a6, Aso0, s4, 28, a2, Abu1, t5, 14 + chipattern2 Aga0, Ake0, Ami1, Aso0, Abu1 + thetarhopi a5, Ama0, s0, 20, a6, Ase1, t3, 1, a2, Abi1, s2, 31, a3, Ago0, s4, 27, a4, Aku0, t4, 19 + chipattern3 Ama0, Ase1, Abi1, Ago0, Aku0 + thetarhopifinal Aba0, s0, Age0, t2, 22, Aki1, s2, 22, Amo1, s1, 11, Asu0, t4, 7 + chiiota Aba0, Age0, Aki1, Amo1, Asu0, 0 + + thetarhopi a4, Aka0, s0, 1, a5, Ame0, t2, 22, a6, Asi0, a7, 30, a2, Abo1, s1, 14, a3, Agu1, t5, 10 + chipattern0 Aka0, Ame0, Asi0, Abo1, Agu1 + thetarhopi a6, Asa0, s0, 9, a2, Abe1, t3, 1, a3, Agi0, a7, 3, a4, Ako1, s1, 13, a5, Amu0, t4, 4 + chipattern1 Asa0, Abe1, Agi0, Ako1, Amu0 + thetarhopi a3, Aga1, t0, 18, a4, Ake1, t3, 5, a5, Ami0, a7, 7, a6, Aso1, s1, 28, a2, Abu0, t4, 13 + chipattern2 Aga1, Ake1, Ami0, Aso1, Abu0 + thetarhopi a5, Ama1, t0, 21, a6, Ase0, t2, 1, a2, Abi0, a7, 31, a3, Ago1, s1, 28, a4, Aku1, t5, 20 + chipattern3 Ama1, Ase0, Abi0, Ago1, Aku1 + thetarhopifinal Aba1, t0, Age1, t3, 22, Aki0, a7, 21, Amo0, s4, 10, Asu1, t5, 7 + chiiota Aba1, Age1, Aki0, Amo0, Asu1, 4 +.endm + +.macro round1 + xor5 a2, Asu0, Agu0, Amu0, Abu1, Aku1, t6 + xor5 a6, Age1, Ame0, Abe0, Ake1, Ase1, t6 + xorrol s0, a2, a6, t6 + xor5 a5, Asu1, Agu1, Amu1, Abu0, Aku0, t6 + xor5 t5, Age0, Ame1, Abe1, Ake0, Ase0, t6 + xor t0, a5, t5 + + xor5 a4, Aki1, Asi1, Agi0, Ami1, Abi0, t6 + xorrol s4, a4, a5, t6 + xor5 a3, Aki0, Asi0, Agi1, Ami0, Abi1, t6 + xor s1, a2, a3 + + xor5 a2, Aba0, Aka1, Asa0, Aga0, Ama1, t6 + xorrol t2, a2, a3, t6 + xor5 a5, Aba1, Aka0, Asa1, Aga1, Ama0, t6 + xor t3, a5, a4 + + xor5 a3, Amo0, Abo1, Ako0, Aso1, Ago0, t6 + xorrol a7, t5, a3, t6 + xor5 a4, Amo1, Abo0, Ako1, Aso0, Ago1, t6 + xor s2, a6, a4 + + xorrol t4, a4, a5, t6 + xor t5, a3, a2 + +//used for masks: r2,r8,r9,r10,r11,r12,lr,mDa0,mDo1,mDi0,mDa1,mDo0 +// = > a7,t0,t1, t2, t3, t4,t5, s0, s1, s2, s3, s4 + thetarhopi a4, Asa1, t0, 2, a5, Ake1, t3, 23, a6, Abi1, s2, 31, a2, Amo1, s4, 14, a3, Agu0, t4, 10 + chipattern0 Asa1, Ake1, Abi1, Amo1, Agu0 + thetarhopi a6, Ama0, t0, 9, a2, Age0, t2, 0, a3, Asi0, s2, 3, a4, Ako1, s4, 12, a5, Abu0, t5, 4 + chipattern1 Ama0, Age0, Asi0, Ako1, Abu0 + thetarhopi a3, Aka1, s0, 18, a4, Abe1, t2, 5, a5, Ami0, s2, 8, a6, Ago1, s4, 28, a2, Asu1, t5, 14 + chipattern2 Aka1, Abe1, Ami0, Ago1, Asu1 + thetarhopi a5, Aga0, s0, 20, a6, Ase1, t3, 1, a2, Aki0, s2, 31, a3, Abo0, s4, 27, a4, Amu0, t4, 19 + chipattern3 Aga0, Ase1, Aki0, Abo0, Amu0 + thetarhopifinal Aba0, s0, Ame1, t2, 22, Agi1, s2, 22, Aso1, s1, 11, Aku1, t4, 7 + chiiota Aba0, Ame1, Agi1, Aso1, Aku1, 8 + + thetarhopi a4, Asa0, s0, 1, a5, Ake0, t2, 22, a6, Abi0, a7, 30, a2, Amo0, s1, 14, a3, Agu1, t5, 10 + chipattern0 Asa0, Ake0, Abi0, Amo0, Agu1 + thetarhopi a6, Ama1, s0, 9, a2, Age1, t3, 1, a3, Asi1, a7, 3, a4, Ako0, s1, 13, a5, Abu1, t4, 4 + chipattern1 Ama1, Age1, Asi1, Ako0, Abu1 + thetarhopi a3, Aka0, t0, 18, a4, Abe0, t3, 5, a5, Ami1, a7, 7, a6, Ago0, s1, 28, a2, Asu0, t4, 13 + chipattern2 Aka0, Abe0, Ami1, Ago0, Asu0 + thetarhopi a5, Aga1, t0, 21, a6, Ase0, t2, 1, a2, Aki1, a7, 31, a3, Abo1, s1, 28, a4, Amu1, t5, 20 + chipattern3 Aga1, Ase0, Aki1, Abo1, Amu1 + thetarhopifinal Aba1, t0, Ame0, t3, 22, Agi0, a7, 21, Aso0, s4, 10, Aku0, t5, 7 + chiiota Aba1, Ame0, Agi0, Aso0, Aku0, 12 +.endm + +.macro round2 + xor5 a2, Aku1, Agu0, Abu1, Asu1, Amu1, t6 + xor5 a6, Ame0, Ake0, Age0, Abe0, Ase1, t6 + xorrol s0, a2, a6, t6 + xor5 a5, Aku0, Agu1, Abu0, Asu0, Amu0, t6 + xor5 t5, Ame1, Ake1, Age1, Abe1, Ase0, t6 + xor t0, a5, t5 + + xor5 a4, Agi1, Abi1, Asi1, Ami0, Aki1, t6 + xorrol s4, a4, a5, t6 + xor5 a3, Agi0, Abi0, Asi0, Ami1, Aki0, t6 + xor s1, a2, a3 + + xor5 a2, Aba0, Asa1, Ama1, Aka1, Aga1, t6 + xorrol t2, a2, a3, t6 + xor5 a5, Aba1, Asa0, Ama0, Aka0, Aga0, t6 + xor t3, a5, a4 + + xor5 a3, Aso0, Amo0, Ako1, Ago0, Abo0, t6 + xorrol a7, t5, a3, t6 + xor5 a4, Aso1, Amo1, Ako0, Ago1, Abo1, t6 + xor s2, a6, a4 + + xorrol t4, a4, a5, t6 + xor t5, a3, a2 + +//used for masks: r2,r8,r9,r10,r11,r12,lr,mDa0,mDo1,mDi0,mDa1,mDo0 +// = > a7,t0,t1, t2, t3, t4,t5, s0, s1, s2, s3, s4 + thetarhopi a4, Ama0, t0, 2, a5, Abe0, t3, 23, a6, Aki0, s2, 31, a2, Aso1, s4, 14, a3, Agu0, t4, 10 + chipattern0 Ama0, Abe0, Aki0, Aso1, Agu0 + thetarhopi a6, Aga0, t0, 9, a2, Ame1, t2, 0, a3, Abi0, s2, 3, a4, Ako0, s4, 12, a5, Asu0, t5, 4 + chipattern1 Aga0, Ame1, Abi0, Ako0, Asu0 + thetarhopi a3, Asa1, s0, 18, a4, Age1, t2, 5, a5, Ami1, s2, 8, a6, Abo1, s4, 28, a2, Aku0, t5, 14 + chipattern2 Asa1, Age1, Ami1, Abo1, Aku0 + thetarhopi a5, Aka1, s0, 20, a6, Ase1, t3, 1, a2, Agi0, s2, 31, a3, Amo1, s4, 27, a4, Abu1, t4, 19 + chipattern3 Aka1, Ase1, Agi0, Amo1, Abu1 + thetarhopifinal Aba0, s0, Ake1, t2, 22, Asi0, s2, 22, Ago0, s1, 11, Amu1, t4, 7 + chiiota Aba0, Ake1, Asi0, Ago0, Amu1, 16 + + thetarhopi a4, Ama1, s0, 1, a5, Abe1, t2, 22, a6, Aki1, a7, 30, a2, Aso0, s1, 14, a3, Agu1, t5, 10 + chipattern0 Ama1, Abe1, Aki1, Aso0, Agu1 + thetarhopi a6, Aga1, s0, 9, a2, Ame0, t3, 1, a3, Abi1, a7, 3, a4, Ako1, s1, 13, a5, Asu1, t4, 4 + chipattern1 Aga1, Ame0, Abi1, Ako1, Asu1 + thetarhopi a3, Asa0, t0, 18, a4, Age0, t3, 5, a5, Ami0, a7, 7, a6, Abo0, s1, 28, a2, Aku1, t4, 13 + chipattern2 Asa0, Age0, Ami0, Abo0, Aku1 + thetarhopi a5, Aka0, t0, 21, a6, Ase0, t2, 1, a2, Agi1, a7, 31, a3, Amo0, s1, 28, a4, Abu0, t5, 20 + chipattern3 Aka0, Ase0, Agi1, Amo0, Abu0 + thetarhopifinal Aba1, t0, Ake0, t3, 22, Asi1, a7, 21, Ago1, s4, 10, Amu0, t5, 7 + chiiota Aba1, Ake0, Asi1, Ago1, Amu0, 20 +.endm + +.macro round3 + xor5 a2, Amu1, Agu0, Asu1, Aku0, Abu0, t6 + xor5 a6, Ake0, Abe1, Ame1, Age0, Ase1, t6 + xorrol s0, a2, a6, t6 + xor5 a5, Amu0, Agu1, Asu0, Aku1, Abu1, t6 + xor5 t5, Ake1, Abe0, Ame0, Age1, Ase0 t6 + xor t0, a5, t5 + + xor5 a4, Asi0, Aki0, Abi1, Ami1, Agi1, t6 + xorrol s4, a4, a5, t6 + xor5 a3, Asi1, Aki1, Abi0, Ami0, Agi0, t6 + xor s1, a2, a3 + + xor5 a2, Aba0, Ama0, Aga1, Asa1, Aka0, t6 + xorrol t2, a2, a3, t6 + xor5 a5, Aba1, Ama1, Aga0, Asa0, Aka1, t6 + xor t3, a5, a4 + + xor5 a3, Ago1, Aso0, Ako0, Abo0, Amo1, t6 + xorrol a7, t5, a3, t6 + xor5 a4, Ago0, Aso1, Ako1, Abo1, Amo0, t6 + xor s2, a6, a4 + + xorrol t4, a4, a5, t6 + xor t5, a3, a2 + +//used for masks: r2,r8,r9,r10,r11,r12,lr,mDa0,mDo1,mDi0,mDa1,mDo0 +// = > a7,t0,t1, t2, t3, t4,t5, s0, s1, s2, s3, s4 + thetarhopi a4, Aga0, t0, 2, a5, Age0, t3, 23, a6, Agi0, s2, 31, a2, Ago0, s4, 14, a3, Agu0, t4, 10 + chipattern0 Aga0, Age0, Agi0, Ago0, Agu0 + thetarhopi a6, Aka1, t0, 9, a2, Ake1, t2, 0, a3, Aki1, s2, 3, a4, Ako1, s4, 12, a5, Aku1, t5, 4 + chipattern1 Aka1, Ake1, Aki1, Ako1, Aku1 + thetarhopi a3, Ama0, s0, 18, a4, Ame0, t2, 5, a5, Ami0, s2, 8, a6, Amo0, s4, 28, a2, Amu0, t5, 14 + chipattern2 Ama0, Ame0, Ami0, Amo0, Amu0 + thetarhopi a5, Asa1, s0, 20, a6, Ase1, t3, 1, a2, Asi1, s2, 31, a3, Aso1, s4, 27, a4, Asu1, t4, 19 + chipattern3 Asa1, Ase1, Asi1, Aso1, Asu1 + thetarhopifinal Aba0, s0, Abe0, t2, 22, Abi0, s2, 22, Abo0, s1, 11, Abu0, t4, 7 + chiiota Aba0, Abe0, Abi0, Abo0, Abu0, 24 + + thetarhopi a4, Aga1, s0, 1, a5, Age1, t2, 22, a6, Agi1, a7, 30, a2, Ago1, s1, 14, a3, Agu1, t5, 10 + chipattern0 Aga1, Age1, Agi1, Ago1, Agu1 + thetarhopi a6, Aka0, s0, 9, a2, Ake0, t3, 1, a3, Aki0, a7, 3, a4, Ako0, s1, 13, a5, Aku0, t4, 4 + chipattern1 Aka0, Ake0, Aki0, Ako0, Aku0 + thetarhopi a3, Ama1, t0, 18, a4, Ame1, t3, 5, a5, Ami1, a7, 7, a6, Amo1, s1, 28, a2, Amu1, t4, 13 + chipattern2 Ama1, Ame1, Ami1, Amo1, Amu1 + thetarhopi a5, Asa0, t0, 21, a6, Ase0, t2, 1, a2, Asi0, a7, 31, a3, Aso0, s1, 28, a4, Asu0, t5, 20 + chipattern3 Asa0, Ase0, Asi0, Aso0, Asu0 + thetarhopifinal Aba1, t0, Abe1, t3, 22, Abi1, a7, 21, Abo1, s4, 10, Abu1, t5, 7 + chiiota Aba1, Abe1, Abi1, Abo1, Abu1, 28 +.endm + +.macro invert dst + lw t6, \dst(a0) + not t6, t6 + sw t6, \dst(a0) +.endm + +.macro complementlanes + invert Abe0 + invert Abe1 + invert Abi0 + invert Abi1 + invert Ago0 + invert Ago1 + invert Aki0 + invert Aki1 + invert Ami0 + invert Ami1 + invert Asa0 + invert Asa1 +.endm + +.data + +.align 3 +keccakf1600_rc24: + .long 0x00000001, 0x00000000 + .long 0x00000000, 0x00000089 + .long 0x00000000, 0x8000008b + .long 0x00000000, 0x80008080 + .long 0x00000001, 0x0000008b + .long 0x00000001, 0x00008000 + .long 0x00000001, 0x80008088 + .long 0x00000001, 0x80000082 + .long 0x00000000, 0x0000000b + .long 0x00000000, 0x0000000a + .long 0x00000001, 0x00008082 + .long 0x00000000, 0x00008003 + .long 0x00000001, 0x0000808b + .long 0x00000001, 0x8000000b + .long 0x00000001, 0x8000008a + .long 0x00000001, 0x80000081 + .long 0x00000000, 0x80000081 + .long 0x00000000, 0x80000008 + .long 0x00000000, 0x00000083 + .long 0x00000000, 0x80008003 + .long 0x00000001, 0x80008088 + .long 0x00000000, 0x80000088 + .long 0x00000001, 0x00008000 + .long 0x00000000, 0x80008082 + +.text + +// void keccakf1600(uint32_t *lanes); +.globl keccakf1600 +.type keccakf1600,%function +.align 3 +keccakf1600: + addi sp, sp, -24 + sw s0, 4(sp) + sw s1, 8(sp) + sw s2, 12(sp) + sw s3, 16(sp) + sw s4, 20(sp) + + la a1, keccakf1600_rc24 + addi s3, zero, 5 + + complementlanes + +// With this loop it still fits in 16 KiB instruction cache +.align 3 +1: round0 + round1 + round2 + round3 + addi a1, a1, 32 + addi s3, s3, -1 + bge s3, zero, 1b + + complementlanes + + lw s0, 4(sp) + lw s1, 8(sp) + lw s2, 12(sp) + lw s3, 16(sp) + lw s4, 20(sp) + addi sp, sp, 24 + + ret +.size keccakf1600,.-keccakf1600 \ No newline at end of file diff --git a/examples/naive/riscv/kyber_basemul/_example.py b/examples/naive/riscv/kyber_basemul/_example.py index 31bd5768b..d0a4cd8ae 100644 --- a/examples/naive/riscv/kyber_basemul/_example.py +++ b/examples/naive/riscv/kyber_basemul/_example.py @@ -3,6 +3,7 @@ from common.OptimizationRunner import OptimizationRunner import slothy.targets.riscv.riscv as RISC_V import slothy.targets.riscv.xuantie_c908 as Target_XuanTieC908 +from slothy.targets.riscv.riscv import BranchLoop SUBFOLDER = os.path.basename(os.path.dirname(__file__)) + "/" @@ -241,6 +242,7 @@ def core(self, slothy): slothy.config.constraints.stalls_first_attempt = 32 slothy.config.inputs_are_outputs = True slothy.config.sw_pipelining.enabled = True + slothy.config.sw_pipelining.halving_heuristic = True r = slothy.config.reserved_regs r += ["x3"] @@ -270,6 +272,7 @@ def core(self, slothy): slothy.config.constraints.stalls_first_attempt = 32 slothy.config.inputs_are_outputs = True slothy.config.sw_pipelining.enabled = True + slothy.config.sw_pipelining.halving_heuristic = True r = slothy.config.reserved_regs r += ["x3"] @@ -277,6 +280,315 @@ def core(self, slothy): slothy.optimize_loop("poly_toplant_rv64im_loop") +# RVV + + +class RISC_V_poly_basemul_acc_cache_init_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_poly_basemul_acc_cache_init_rvv_vlen128" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + var=var, + funcname="poly_basemul_acc_cache_init_rvv_vlen128", + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.constraints.stalls_maximum_attempt = 2048 + slothy.config.inputs_are_outputs = True + + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 7 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + slothy.config.sw_pipelining.enabled = True + slothy.config.sw_pipelining.halving_heuristic = True + slothy.config.timeout = 180 + + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 1 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + + slothy.config.unsafe_address_offset_fixup = False + + # slothy.config.sw_pipelining.enabled = True + + slothy.optimize_loop( + "poly_basemul_acc_cache_init_rvv_vlen128_loop", + forced_loop_type=RISC_V.BranchLoop, + ) + + +class RISC_V_poly_basemul_cache_init_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_poly_basemul_cache_init_rvv_vlen128" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + var=var, + funcname="poly_basemul_cache_init_rvv_vlen128", + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.constraints.stalls_maximum_attempt = 2048 + slothy.config.inputs_are_outputs = True + + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 7 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + slothy.config.sw_pipelining.enabled = True + slothy.config.sw_pipelining.halving_heuristic = True + slothy.config.timeout = 180 + + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 1 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop( + "poly_basemul_cache_init_rvv_vlen128_loop", + forced_loop_type=RISC_V.BranchLoop, + ) + + +class RISC_V_poly_basemul_acc_cached_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_poly_basemul_acc_cached_rvv_vlen128" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + var=var, + funcname="poly_basemul_acc_cached_rvv_vlen128", + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.constraints.stalls_maximum_attempt = 2048 + slothy.config.inputs_are_outputs = True + + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 7 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + slothy.config.sw_pipelining.enabled = True + slothy.config.sw_pipelining.halving_heuristic = True + slothy.config.timeout = 180 + + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 1 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop( + "poly_basemul_acc_cached_rvv_vlen128_loop", + forced_loop_type=RISC_V.BranchLoop, + ) + + +class RISC_V_poly_basemul_cached_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_poly_basemul_cached_rvv_vlen128" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + var=var, + funcname="poly_basemul_cached_rvv_vlen128", + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 1 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop( + "poly_basemul_cached_rvv_vlen128_loop", forced_loop_type=RISC_V.BranchLoop + ) + + +class RISC_V_poly_basemul_acc_rvv_vlen128(OptimizationRunner): + # TODO: needs to be unrolled due to dynamic vset + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_poly_basemul_acc_rvv_vlen128" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + var=var, + funcname="poly_basemul_acc_rvv_vlen128", + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + import slothy.targets.riscv.xuantie_c908 as target_module + target_module.lmul = 1 + target_module.sew = 16 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop( + "poly_basemul_acc_rvv_vlen128_loop", forced_loop_type=RISC_V.BranchLoop + ) + + +class RISC_V_poly_basemul_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_poly_basemul_rvv_vlen128" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + var=var, + funcname="poly_basemul_rvv_vlen128", + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 1 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop( + "poly_basemul_rvv_vlen128_loop", forced_loop_type=RISC_V.BranchLoop + ) + + +class RISC_V_poly_reduce_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_poly_reduce_rvv_vlen128" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + var=var, + funcname="poly_reduce_rvv_vlen128", + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 8 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop("poly_reduce_rvv_vlen128_loop") + + +class RISC_V_poly_tomont_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_poly_tomont_rvv_vlen128" + infile = name + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + timeout=timeout, + var=var, + funcname="poly_tomont_rvv_vlen128", + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 8 + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.sw_pipelining.enabled = True + slothy.config.reserved_regs = r + slothy.optimize_loop( + "poly_tomont_rvv_vlen128_loop", forced_loop_type=BranchLoop + ) + + example_instances = [ RISC_V_poly_basemul_acc_cache_end_rv64im(), RISC_V_poly_basemul_acc_cache_end_rv64im(var="dual", timeout=300), @@ -296,4 +608,13 @@ def core(self, slothy): RISC_V_poly_plantard_rdc_rv64im(var="dual", timeout=300), RISC_V_poly_toplant_rv64im(), RISC_V_poly_toplant_rv64im(var="dual", timeout=300), + # RVV + RISC_V_poly_basemul_acc_cache_init_rvv_vlen128(), + RISC_V_poly_basemul_acc_cached_rvv_vlen128(), + RISC_V_poly_basemul_acc_rvv_vlen128(), + RISC_V_poly_basemul_rvv_vlen128(), + RISC_V_poly_basemul_cached_rvv_vlen128(), + RISC_V_poly_basemul_cache_init_rvv_vlen128(), + RISC_V_poly_reduce_rvv_vlen128(), + RISC_V_poly_tomont_rvv_vlen128(), ] diff --git a/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_acc_cache_init_rvv_vlen128.s b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_acc_cache_init_rvv_vlen128.s new file mode 100644 index 000000000..a06f7aad9 --- /dev/null +++ b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_acc_cache_init_rvv_vlen128.s @@ -0,0 +1,195 @@ +#define _ZETAS_BASEMUL 320 + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +// void poly_basemul_acc_cache_init_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_acc_cache_init_rvv_vlen128 +.align 2 +poly_basemul_acc_cache_init_rvv_vlen128: + addi sp, sp, -8*15 + save_regs + li a7, 32 + li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add a3, a3, t3 + add t3, a6, a7 + addi t2, a1, 256*2 +poly_basemul_acc_cache_init_rvv_vlen128_loop: + vle16.v v0, (a1) + vle16.v v8, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v4, (a1) + vle16.v v12, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v1, (a1) + vle16.v v9, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v5, (a1) + vle16.v v13, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v2, (a1) + vle16.v v10, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v6, (a1) + vle16.v v14, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v3, (a1) + vle16.v v11, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v7, (a1) + vle16.v v15, (a2) + addi a1, a1, 32 + add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + add t4, a0, a7 + add a5, a0, t3 + vle16.v v24, (t4) + vle16.v v25, (a5) + add t4, t4, t5 + add a5, a5, t5 + vle16.v v26, (t4) + vle16.v v27, (a5) + // a0b1 + a1b0 + // then accumulate + vadd.vv v16, v16, v20 + vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22 + vadd.vv v19, v19, v23 + vadd.vv v16, v16, v24 + vadd.vv v17, v17, v25 + vadd.vv v18, v18, v26 + vadd.vv v19, v19, v27 + add t4, a0, a7 + add a5, a0, t3 + vse16.v v16, (t4) + vse16.v v17, (a5) + add t4, t4, t5 + add a5, a5, t5 + vse16.v v18, (t4) + vse16.v v19, (a5) + // load zetas + addi t4, a3, 0 + add a5, a3, a7 + vle16.v v16, (t4) + vle16.v v17, (a5) + add t4, t4, a6 + add a5, a5, a6 + vle16.v v18, (t4) + vle16.v v19, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v24, v25, v26, v27, v12, v13, v14, v15, v16, v17, v18, v19, t0, t1, v28, v29, v30, v31 + // store b1zeta + addi t4, a4, 0*0 + add a5, a4, a7 + vse16.v v24, (t4) + vse16.v v25, (a5) + add t4, t4, a6 + add a5, a5, a6 + vse16.v v26, (t4) + vse16.v v27, (a5) + montmul_x4 v0, v1, v2, v3, v4, v5, v6, v7, v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + addi t4, a0, 0*2 + add a5, a0, a6 + vle16.v v28, (t4) + vle16.v v29, (a5) + add t4, t4, t5 + add a5, a5, t5 + vle16.v v30, (t4) + vle16.v v31, (a5) + // a0b0 + a1 * (b1zeta mod q) + // then accumulate + vadd.vv v20, v20, v0 + vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2 + vadd.vv v23, v23, v3 + vadd.vv v20, v20, v28 + vadd.vv v21, v21, v29 + vadd.vv v22, v22, v30 + vadd.vv v23, v23, v31 + addi t4, a0, 0 + add a5, a0, a6 + vse16.v v20, (t4) + vse16.v v21, (a5) + add t4, t4, t5 + add a5, a5, t5 + vse16.v v22, (t4) + vse16.v v23, (a5) + add a0, a0, t5 + add a3, a3, t5 + add a0, a0, t5 + add a4, a4, t5 + bltu a1, t2, poly_basemul_acc_cache_init_rvv_vlen128_loop + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_acc_cached_rvv_vlen128.s b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_acc_cached_rvv_vlen128.s new file mode 100644 index 000000000..cff9c9092 --- /dev/null +++ b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_acc_cached_rvv_vlen128.s @@ -0,0 +1,188 @@ +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +// void poly_basemul_acc_cached_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_acc_cached_rvv_vlen128 +.align 2 +poly_basemul_acc_cached_rvv_vlen128: + addi sp, sp, -8*15 + save_regs + li a7, 32 + addi t2, a1, 256*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add t3, a6, a7 +poly_basemul_acc_cached_rvv_vlen128_loop: + vle16.v v0, (a1) + vle16.v v8, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v4, (a1) + vle16.v v12, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v1, (a1) + vle16.v v9, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v5, (a1) + vle16.v v13, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v2, (a1) + vle16.v v10, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v6, (a1) + vle16.v v14, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v3, (a1) + vle16.v v11, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v7, (a1) + vle16.v v15, (a2) + addi a1, a1, 32 + add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + add t4, a0, a7 + add a5, a0, t3 + vle16.v v24, (t4) + vle16.v v25, (a5) + add t4, t4, t5 + add a5, a5, t5 + vle16.v v26, (t4) + vle16.v v27, (a5) + // a0b1 + a1b0 + // then accumulate + vadd.vv v16, v16, v20 + vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22 + vadd.vv v19, v19, v23 + vadd.vv v16, v16, v24 + vadd.vv v17, v17, v25 + vadd.vv v18, v18, v26 + vadd.vv v19, v19, v27 + add t4, a0, a7 + add a5, a0, t3 + vse16.v v16, (t4) + vse16.v v17, (a5) + add t4, t4, t5 + add a5, a5, t5 + vse16.v v18, (t4) + vse16.v v19, (a5) + // load b1zeta + addi t4, a4, 0*0 + add a5, a4, a7 + vle16.v v24, (t4) + vle16.v v25, (a5) + add t4, t4, a6 + add a5, a5, a6 + vle16.v v26, (t4) + vle16.v v27, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v0, v1, v2, v3, v4, v5, v6, v7, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + addi t4, a0, 0*2 + add a5, a0, a6 + vle16.v v28, (t4) + vle16.v v29, (a5) + add t4, t4, t5 + add a5, a5, t5 + vle16.v v30, (t4) + vle16.v v31, (a5) + // a0b0 + a1 * (b1zeta mod q) + // then accumulate + vadd.vv v20, v20, v0 + vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2 + vadd.vv v23, v23, v3 + vadd.vv v20, v20, v28 + vadd.vv v21, v21, v29 + vadd.vv v22, v22, v30 + vadd.vv v23, v23, v31 + addi t4, a0, 0 + add a5, a0, a6 + vse16.v v20, (t4) + vse16.v v21, (a5) + add t4, t4, t5 + add a5, a5, t5 + vse16.v v22, (t4) + vse16.v v23, (a5) + add a0, a0, t5 + add a3, a3, t5 + add a0, a0, t5 + add a4, a4, t5 + bltu a1, t2, poly_basemul_acc_cached_rvv_vlen128_loop + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_acc_rvv_vlen128.s b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_acc_rvv_vlen128.s new file mode 100644 index 000000000..91d7748c1 --- /dev/null +++ b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_acc_rvv_vlen128.s @@ -0,0 +1,1077 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 0 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, \ + in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, \ + vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) +// a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) +// a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) +// level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 +// level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu +// shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 +// shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 +// level 3 + ct_bfu_vv_x8 \ + v16, v18, v20, v22, v24, v26, v28, v30, \ + v17, v19, v21, v23, v25, v27, v29, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 +// shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 +// level 4 + ct_bfu_vv_x8 \ + v16, v17, v18, v19, v20, v21, v22, v23, \ + v24, v25, v26, v27, v28, v29, v30, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 +// level 5 + ct_bfu_vv_x8 \ + v16, v24, v18, v26, v20, v28, v22, v30, \ + v17, v25, v19, v27, v21, v29, v23, v31, \ + v1, v0, v1, v0, v1, v0, v1, v0, \ + v3, v2, v3, v2, v3, v2, v3, v2, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 +// level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 +// polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v16, v20, v18, v22, v24, v28, v26, v30, \ + v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v17, v21, v19, v23, v25, v29, v27, v31, \ + v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, \ + vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, \ + vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, \ + vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, \ + vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 \ + vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, \ + vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, \ + vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, \ + vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, \ + vidx8_0122, vidx_low, vidx_high, \ + x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +// void poly_basemul_acc_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table) + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_acc_rvv_vlen128 +.align 2 +poly_basemul_acc_rvv_vlen128: + addi sp, sp, -8*15 + save_regs + li a7, 32 + li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add a3, a3, t3 + add t3, a6, a7 + addi t2, a1, 256*2 +poly_basemul_acc_rvv_vlen128_loop: + vle16.v v0, (a1) + vle16.v v8, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v4, (a1) + vle16.v v12, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v1, (a1) + vle16.v v9, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v5, (a1) + vle16.v v13, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v2, (a1) + vle16.v v10, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v6, (a1) + vle16.v v14, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v3, (a1) + vle16.v v11, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v7, (a1) + vle16.v v15, (a2) + addi a1, a1, 32 + add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + add a4, a0, a7 + add a5, a0, t3 + vle16.v v24, (a4) + vle16.v v25, (a5) + add a4, a4, t5 + add a5, a5, t5 + vle16.v v26, (a4) + vle16.v v27, (a5) + // a0b1 + a1b0 + // then accumulate + vadd.vv v16, v16, v20 + vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22 + vadd.vv v19, v19, v23 + vadd.vv v16, v16, v24 + vadd.vv v17, v17, v25 + vadd.vv v18, v18, v26 + vadd.vv v19, v19, v27 + add a4, a0, a7 + add a5, a0, t3 + vse16.v v16, (a4) + vse16.v v17, (a5) + add a4, a4, t5 + add a5, a5, t5 + vse16.v v18, (a4) + vse16.v v19, (a5) + // load zetas + addi a4, a3, 0 + add a5, a3, a7 + vle16.v v16, (a4) + vle16.v v17, (a5) + add a4, a4, a6 + add a5, a5, a6 + vle16.v v18, (a4) + vle16.v v19, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v24, v25, v26, v27, v4, v5, v6, v7, \ + v16, v17, v18, v19, t0, t1, v28, v29, v30, v31 + montmul_x4 v0, v1, v2, v3, v12, v13, v14, v15, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + addi a4, a0, 0*2 + add a5, a0, a6 + vle16.v v28, (a4) + vle16.v v29, (a5) + add a4, a4, t5 + add a5, a5, t5 + vle16.v v30, (a4) + vle16.v v31, (a5) + // a0b0 + b1 * (a1zeta mod q) + // then accumulate + vadd.vv v20, v20, v0 + vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2 + vadd.vv v23, v23, v3 + vadd.vv v20, v20, v28 + vadd.vv v21, v21, v29 + vadd.vv v22, v22, v30 + vadd.vv v23, v23, v31 + addi a4, a0, 0 + add a5, a0, a6 + vse16.v v20, (a4) + vse16.v v21, (a5) + add a4, a4, t5 + add a5, a5, t5 + vse16.v v22, (a4) + vse16.v v23, (a5) + add a0, a0, t5 + add a3, a3, t5 + add a0, a0, t5 + bltu a1, t2, poly_basemul_acc_rvv_vlen128_loop + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_cache_init_rvv_vlen128.s b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_cache_init_rvv_vlen128.s new file mode 100644 index 000000000..a81469676 --- /dev/null +++ b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_cache_init_rvv_vlen128.s @@ -0,0 +1,177 @@ +#define _ZETAS_BASEMUL 320 + +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +// void poly_basemul_cache_init_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_cache_init_rvv_vlen128 +.align 2 +poly_basemul_cache_init_rvv_vlen128: + addi sp, sp, -8*15 + save_regs + li a7, 32 + li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add a3, a3, t3 + add t3, a6, a7 + addi t2, a1, 256*2 +poly_basemul_cache_init_rvv_vlen128_loop: + vle16.v v0, (a1) + vle16.v v8, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v4, (a1) + vle16.v v12, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v1, (a1) + vle16.v v9, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v5, (a1) + vle16.v v13, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v2, (a1) + vle16.v v10, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v6, (a1) + vle16.v v14, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v3, (a1) + vle16.v v11, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v7, (a1) + vle16.v v15, (a2) + addi a1, a1, 32 + add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + // a0b1 + a1b0 + vadd.vv v16, v16, v20 + vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22 + vadd.vv v19, v19, v23 + add t4, a0, a7 + add a5, a0, t3 + vse16.v v16, (t4) + vse16.v v17, (a5) + add t4, t4, t5 + add a5, a5, t5 + vse16.v v18, (t4) + vse16.v v19, (a5) + // load zetas + addi t4, a3, 0 + add a5, a3, a7 + vle16.v v16, (t4) + vle16.v v17, (a5) + add t4, t4, a6 + add a5, a5, a6 + vle16.v v18, (t4) + vle16.v v19, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v24, v25, v26, v27, v12, v13, v14, v15, \ + v16, v17, v18, v19, t0, t1, v28, v29, v30, v31 + // store b1zeta + addi t4, a4, 0*0 + add a5, a4, a7 + vse16.v v24, (t4) + vse16.v v25, (a5) + add t4, t4, a6 + add a5, a5, a6 + vse16.v v26, (t4) + vse16.v v27, (a5) + montmul_x4 v0, v1, v2, v3, v4, v5, v6, v7, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + // a0b0 + a1 * (b1zeta mod q) + vadd.vv v20, v20, v0 + vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2 + vadd.vv v23, v23, v3 + addi t4, a0, 0 + add a5, a0, a6 + vse16.v v20, (t4) + vse16.v v21, (a5) + add t4, t4, t5 + add a5, a5, t5 + vse16.v v22, (t4) + vse16.v v23, (a5) + add a0, a0, t5 + add a3, a3, t5 + add a0, a0, t5 + add a4, a4, t5 + bltu a1, t2, poly_basemul_cache_init_rvv_vlen128_loop + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_cached_rvv_vlen128.s b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_cached_rvv_vlen128.s new file mode 100644 index 000000000..67133640a --- /dev/null +++ b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_cached_rvv_vlen128.s @@ -0,0 +1,161 @@ +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +// void poly_basemul_cached_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_cached_rvv_vlen128 +.align 2 +poly_basemul_cached_rvv_vlen128: + addi sp, sp, -8*15 + save_regs + li a7, 32 + addi t2, a1, 256*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add t3, a6, a7 +poly_basemul_cached_rvv_vlen128_loop: + vle16.v v0, (a1) + vle16.v v8, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v4, (a1) + vle16.v v12, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v1, (a1) + vle16.v v9, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v5, (a1) + vle16.v v13, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v2, (a1) + vle16.v v10, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v6, (a1) + vle16.v v14, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v3, (a1) + vle16.v v11, (a2) + addi a1, a1, 32 + add a2, a2, a7 + vle16.v v7, (a1) + vle16.v v15, (a2) + addi a1, a1, 32 + add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + // a0b1 + a1b0 + vadd.vv v16, v16, v20 + vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22 + vadd.vv v19, v19, v23 + add t4, a0, a7 + add a5, a0, t3 + vse16.v v16, (t4) + vse16.v v17, (a5) + add t4, t4, t5 + add a5, a5, t5 + vse16.v v18, (t4) + vse16.v v19, (a5) + // load b1zeta + addi t4, a4, 0*0 + add a5, a4, a7 + vle16.v v24, (t4) + vle16.v v25, (a5) + add t4, t4, a6 + add a5, a5, a6 + vle16.v v26, (t4) + vle16.v v27, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v0, v1, v2, v3, v4, v5, v6, v7, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + // a0b0 + a1 * (b1zeta mod q) + vadd.vv v20, v20, v0 + vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2 + vadd.vv v23, v23, v3 + addi t4, a0, 0 + add a5, a0, a6 + vse16.v v20, (t4) + vse16.v v21, (a5) + add t4, t4, t5 + add a5, a5, t5 + vse16.v v22, (t4) + vse16.v v23, (a5) + add a0, a0, t5 + add a0, a0, t5 + add a4, a4, t5 + bltu a1, t2, poly_basemul_cached_rvv_vlen128_loop + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_rvv_vlen128.s b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_rvv_vlen128.s new file mode 100644 index 000000000..c446eee48 --- /dev/null +++ b/examples/naive/riscv/kyber_basemul/kyber_poly_basemul_rvv_vlen128.s @@ -0,0 +1,168 @@ +#define _ZETAS_BASEMUL 0 + +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +// void poly_basemul_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table); +// (a0b0 + b1 * (a1zeta mod q)) mod q + ((a0b1 + a1b0) mod q)x + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_rvv_vlen128 +.align 2 +poly_basemul_rvv_vlen128: + addi sp, sp, -8*15 + save_regs + li a7, 32 + li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add a3, a3, t3 + add t3, a6, a7 + addi t2, a1, 256*2 +poly_basemul_rvv_vlen128_loop: + vle16.v v0, (a1) + vle16.v v8, (a2) + add a1, a1, a7 + add a2, a2, a7 + vle16.v v4, (a1) + vle16.v v12, (a2) + add a1, a1, a7 + add a2, a2, a7 + vle16.v v1, (a1) + vle16.v v9, (a2) + add a1, a1, a7 + add a2, a2, a7 + vle16.v v5, (a1) + vle16.v v13, (a2) + add a1, a1, a7 + add a2, a2, a7 + vle16.v v2, (a1) + vle16.v v10, (a2) + add a1, a1, a7 + add a2, a2, a7 + vle16.v v6, (a1) + vle16.v v14, (a2) + add a1, a1, a7 + add a2, a2, a7 + vle16.v v3, (a1) + vle16.v v11, (a2) + add a1, a1, a7 + add a2, a2, a7 + vle16.v v7, (a1) + vle16.v v15, (a2) + add a1, a1, a7 + add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + // a0b1 + a1b0 + vadd.vv v16, v16, v20 + vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22 + vadd.vv v19, v19, v23 + add a4, a0, a7 + add a5, a0, t3 + vse16.v v16, (a4) + vse16.v v17, (a5) + add a4, a4, t5 + add a5, a5, t5 + vse16.v v18, (a4) + vse16.v v19, (a5) + // load zetas + addi a4, a3, 0 + add a5, a3, a7 + vle16.v v16, (a4) + vle16.v v17, (a5) + add a4, a4, a6 + add a5, a5, a6 + vle16.v v18, (a4) + vle16.v v19, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v24, v25, v26, v27, v4, v5, v6, v7, \ + v16, v17, v18, v19, t0, t1, v28, v29, v30, v31 + montmul_x4 v0, v1, v2, v3, v12, v13, v14, v15, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + // a0b0 + b1 * (a1zeta mod q) + vadd.vv v20, v20, v0 + vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2 + vadd.vv v23, v23, v3 + addi a4, a0, 0 + add a5, a0, a6 + vse16.v v20, (a4) + vse16.v v21, (a5) + add a4, a4, t5 + add a5, a5, t5 + vse16.v v22, (a4) + vse16.v v23, (a5) + add a0, a0, t5 + add a3, a3, t5 + add a0, a0, t5 + bltu a1, t2, poly_basemul_rvv_vlen128_loop + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_basemul/kyber_poly_plantard_rdc_rv64im_dual.s b/examples/naive/riscv/kyber_basemul/kyber_poly_plantard_rdc_rv64im_dual.s index 6397f0e66..d24394be6 100644 --- a/examples/naive/riscv/kyber_basemul/kyber_poly_plantard_rdc_rv64im_dual.s +++ b/examples/naive/riscv/kyber_basemul/kyber_poly_plantard_rdc_rv64im_dual.s @@ -63,6 +63,7 @@ .endm .macro save_regs + addi sp, sp, -8*15 sd s0, 0*8(sp) sd s1, 1*8(sp) sd s2, 2*8(sp) @@ -96,6 +97,7 @@ ld gp, 12*8(sp) ld tp, 13*8(sp) ld ra, 14*8(sp) + addi sp, sp, 8*15 .endm // a <- a*b*(-2^{-32}) mod+- q @@ -630,8 +632,7 @@ .global poly_plantard_rdc_rv64im_dual .align 2 poly_plantard_rdc_rv64im_dual: - addi sp, sp, -8*1 - sd s0, 0(sp) + save_regs li t6, plantconst li t5, q48 addi t4, x0, 16 @@ -683,6 +684,5 @@ poly_plantard_rdc_rv64im_dual: addi a0, a0, 2*16 addi t4, t4, -1 bne t4, zero, poly_plantard_rdc_rv64im_loop - ld s0, 0(sp) - addi sp, sp, 8*1 + restore_regs ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_basemul/kyber_poly_reduce_rvv_vlen128.s b/examples/naive/riscv/kyber_basemul/kyber_poly_reduce_rvv_vlen128.s new file mode 100644 index 000000000..72d675a60 --- /dev/null +++ b/examples/naive/riscv/kyber_basemul/kyber_poly_reduce_rvv_vlen128.s @@ -0,0 +1,69 @@ +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + //vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_reduce_rvv_vlen128 +.align 2 +poly_reduce_rvv_vlen128: + addi sp, sp, -8*15 + save_regs + li a7, 16*8 + li t0, 3329 + vsetvli a7, a7, e16, m8, tu, mu + csrwi vxrm, 0 // round-to-nearest-up (add +0.5 LSB) + li a6, 20159 + add t4, a0, 256*2 + slli t3, a7, 2 + slli a7, a7, 1 +poly_reduce_rvv_vlen128_loop: + add a1, a0, a7 + vle16.v v0, (a0) + vle16.v v8, (a1) + barrettRdc v0, v16, a6, t0 + barrettRdc v8, v24, a6, t0 + vse16.v v0, (a0) + vse16.v v8, (a1) + addi a0, a0, 256 + bltu a0, t4, poly_reduce_rvv_vlen128_loop + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_basemul/kyber_poly_tomont_rvv_vlen128.s b/examples/naive/riscv/kyber_basemul/kyber_poly_tomont_rvv_vlen128.s new file mode 100644 index 000000000..295131e8b --- /dev/null +++ b/examples/naive/riscv/kyber_basemul/kyber_poly_tomont_rvv_vlen128.s @@ -0,0 +1,70 @@ +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_tomont_rvv_vlen128 +.align 2 +poly_tomont_rvv_vlen128: + addi sp, sp, -8*15 + save_regs + li a7, 16*8 + li t0, 3329 + vsetvli a7, a7, e16, m8, tu, mu + // mont^2 and qinv*mont^2 + li t1, 1353 + li t2, 20553 + slli t3, a7, 2 + slli a7, a7, 1 + addi t4, a0, 256*2 +poly_tomont_rvv_vlen128_loop: + add a1, a0, a7 + vle16.v v0, (a0) + vle16.v v8, (a1) + montmul_const v16, v0, t1, t2, t0, v24 + montmul_const v24, v8, t1, t2, t0, v0 + vse16.v v16, (a0) + vse16.v v24, (a1) + add a0, a0, t3 + bltu a0, t4, poly_tomont_rvv_vlen128_loop + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_basemul/kyber_poly_toplant_rv64im_dual.s b/examples/naive/riscv/kyber_basemul/kyber_poly_toplant_rv64im_dual.s index 509456d03..faaa75703 100644 --- a/examples/naive/riscv/kyber_basemul/kyber_poly_toplant_rv64im_dual.s +++ b/examples/naive/riscv/kyber_basemul/kyber_poly_toplant_rv64im_dual.s @@ -63,6 +63,7 @@ .endm .macro save_regs + addi sp, sp, -8*15 sd s0, 0*8(sp) sd s1, 1*8(sp) sd s2, 2*8(sp) @@ -96,6 +97,7 @@ ld gp, 12*8(sp) ld tp, 13*8(sp) ld ra, 14*8(sp) + addi sp, sp, 8*15 .endm // a <- a*b*(-2^{-32}) mod+- q @@ -630,8 +632,7 @@ .global poly_toplant_rv64im_dual .align 2 poly_toplant_rv64im_dual: - addi sp, sp, -8*1 - sd s0, 0(sp) + save_regs li t6, plantconst2 li t5, q48 addi t4, x0, 16 @@ -683,6 +684,5 @@ poly_toplant_rv64im_dual: addi a0, a0, 2*16 addi t4, t4, -1 bne t4, zero, poly_toplant_rv64im_loop - ld s0, 0(sp) - addi sp, sp, 8*1 + restore_regs ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_sampling/_example.py b/examples/naive/riscv/kyber_sampling/_example.py new file mode 100644 index 000000000..24a71b5d6 --- /dev/null +++ b/examples/naive/riscv/kyber_sampling/_example.py @@ -0,0 +1,136 @@ +import os + +from common.OptimizationRunner import OptimizationRunner +import slothy.targets.riscv.riscv as RISC_V +import slothy.targets.riscv.xuantie_c908 as Target_XuanTieC908 + +SUBFOLDER = os.path.basename(os.path.dirname(__file__)) + "/" + + +class RISC_V_cbd2_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_cbd2_rvv_vlen128" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="cbd2_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + import slothy.targets.riscv.xuantie_c908 as target_module + + #target_module.lmul = 8 + #target_module.sew = 16 + + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + #slothy.config.sw_pipelining.enabled = True + #slothy.config.sw_pipelining.halving_heuristic = True + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 5 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop("cbd2_rvv_vlen128_loop") + + +class RISC_V_cbd3_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_cbd3_rvv_vlen128" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="cbd3_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + slothy.config.sw_pipelining.enabled = True + slothy.config.sw_pipelining.halving_heuristic = True + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 5 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop("cbd3_rvv_vlen128_loop") + + +class RISC_V_rej_uniform_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_rej_uniform_rvv_vlen128" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="rej_uniform_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + slothy.config.with_preprocessor = True + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + + slothy.config.allow_useless_instructions = True + + # Straight-line scheduling of the rejection-sampling bodies. The + # surrounding loops (data-dependent counter, multi-branch exits) are not + # SLOTHY-recognizable loops, so optimize only the branchless body regions + # (x4 is the hot path; x2/x1 are the tail). + slothy.optimize(start="start", end="end") + slothy.optimize(start="start_x2", end="end_x2") + slothy.optimize(start="start_x1", end="end_x1") + + +example_instances = [ + RISC_V_cbd2_rvv_vlen128(), + RISC_V_cbd3_rvv_vlen128(), + RISC_V_rej_uniform_rvv_vlen128(), +] diff --git a/examples/naive/riscv/kyber_sampling/kyber_cbd2_rvv_vlen128.s b/examples/naive/riscv/kyber_sampling/kyber_cbd2_rvv_vlen128.s new file mode 100644 index 000000000..317aafb49 --- /dev/null +++ b/examples/naive/riscv/kyber_sampling/kyber_cbd2_rvv_vlen128.s @@ -0,0 +1,978 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, \ + in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, \ + vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 \ + v16, v18, v20, v22, v24, v26, v28, v30, \ + v17, v19, v21, v23, v25, v27, v29, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 \ + v16, v17, v18, v19, v20, v21, v22, v23, \ + v24, v25, v26, v27, v28, v29, v30, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 \ + v16, v24, v18, v26, v20, v28, v22, v30, \ + v17, v25, v19, v27, v21, v29, v23, v31, \ + v1, v0, v1, v0, v1, v0, v1, v0, \ + v3, v2, v3, v2, v3, v2, v3, v2, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v16, v20, v18, v22, v24, v28, v26, v30, \ + v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v17, v21, v19, v23, v25, v29, v27, v31, \ + v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, \ + vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, \ + vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, \ + vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, \ + vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 \ + vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, \ + vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, \ + vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, \ + vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, \ + vidx8_0122, vidx_low, vidx_high, \ + x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +// void cbd2_rvv_vlen128(int16_t *r, const uint8_t *buf, const int16_t *table) +.globl cbd2_rvv_vlen128 +.align 2 +cbd2_rvv_vlen128: + save_regs + li t0, 0x55 + li t1, 0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a2, _CBD2_MASK_E8_01*2 + addi t3, a2, _CBD2_IDX8_LOW*2 + addi t4, a2, _CBD2_IDX8_HIGH*2 + vle8.v v29, (t2) + vle8.v v30, (t3) + vle8.v v31, (t4) + li a4, 2 + vmseq.vi v0, v29, 1 +cbd2_rvv_vlen128_loop: + cbd2_core_x4 v1, v2, v3, v4, v5, v6, v7, v8, \ + v10, v11, v12, v13, v14, v15, v16, v17, \ + v18, v19, v20, v21, v22, v23, v24, v25, \ + v30, v31, t0, t1 + addi a4, a4, -1 + bnez a4, cbd2_rvv_vlen128_loop + restore_regs +ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_sampling/kyber_cbd3_rvv_vlen128.s b/examples/naive/riscv/kyber_sampling/kyber_cbd3_rvv_vlen128.s new file mode 100644 index 000000000..972f0e7b0 --- /dev/null +++ b/examples/naive/riscv/kyber_sampling/kyber_cbd3_rvv_vlen128.s @@ -0,0 +1,983 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, \ + in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, \ + vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 \ + v16, v18, v20, v22, v24, v26, v28, v30, \ + v17, v19, v21, v23, v25, v27, v29, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 \ + v16, v17, v18, v19, v20, v21, v22, v23, \ + v24, v25, v26, v27, v28, v29, v30, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 \ + v16, v24, v18, v26, v20, v28, v22, v30, \ + v17, v25, v19, v27, v21, v29, v23, v31, \ + v1, v0, v1, v0, v1, v0, v1, v0, \ + v3, v2, v3, v2, v3, v2, v3, v2, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v16, v20, v18, v22, v24, v28, v26, v30, \ + v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v17, v21, v19, v23, v25, v29, v27, v31, \ + v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, \ + vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, \ + vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, \ + vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, \ + vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 \ + vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, \ + vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, \ + vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, \ + vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, \ + vidx8_0122, vidx_low, vidx_high, \ + x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +// void cbd3_rvv_vlen128(int16_t *r, const uint8_t *buf, const int16_t *table) +.globl cbd3_rvv_vlen128 +.align 2 +cbd3_rvv_vlen128: + save_regs + li t0, 0x249249 + li t1, 0x6DB6DB + li a3, 0x70000 + li a4, 4 + vsetivli a7, 8, e16, m1, tu, mu + addi t2, a2, _CBD3_MASK_E16_1100*2 + addi t3, a2, _CBD3_MASK_E8_0122*2 + addi t4, a2, _CBD3_IDX16_LOW*2 + addi t5, a2, _CBD3_IDX16_HIGH*2 + vle16.v v28, (t2) + vle16.v v29, (t3) + vle16.v v30, (t4) + vle16.v v31, (t5) + vmseq.vi v0, v28, 1 +cbd3_rvv_vlen128_loop: + cbd3_core_x4 \ + v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,\ + v14,v15,v16,v17,v18,v19,\ + v20,v21,v22,v23,v24,v25,\ + v29, v30, v31, t0, t1, a3 + addi a4, a4, -1 + bnez a4, cbd3_rvv_vlen128_loop + restore_regs +ret \ No newline at end of file diff --git a/examples/naive/riscv/kyber_sampling/kyber_rej_uniform_rvv_vlen128.s b/examples/naive/riscv/kyber_sampling/kyber_rej_uniform_rvv_vlen128.s new file mode 100644 index 000000000..1d12ae3cc --- /dev/null +++ b/examples/naive/riscv/kyber_sampling/kyber_rej_uniform_rvv_vlen128.s @@ -0,0 +1,1014 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, \ + in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, \ + vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 \ + v16, v18, v20, v22, v24, v26, v28, v30, \ + v17, v19, v21, v23, v25, v27, v29, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 \ + v16, v17, v18, v19, v20, v21, v22, v23, \ + v24, v25, v26, v27, v28, v29, v30, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 \ + v16, v24, v18, v26, v20, v28, v22, v30, \ + v17, v25, v19, v27, v21, v29, v23, v31, \ + v1, v0, v1, v0, v1, v0, v1, v0, \ + v3, v2, v3, v2, v3, v2, v3, v2, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v16, v20, v18, v22, v24, v28, v26, v30, \ + v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v17, v21, v19, v23, v25, v29, v27, v31, \ + v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, \ + vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, \ + vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, \ + vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, \ + vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 \ + vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, \ + vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, \ + vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, \ + vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, \ + vidx8_0122, vidx_low, vidx_high, \ + x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +// void rej_uniform_rvv_vlen128(int16_t *r, const uint8_t *buf, const int16_t *table, uint32_t *ctr_p, uint32_t *pos_p) +.globl rej_uniform_rvv_vlen128 +.align 2 +rej_uniform_rvv_vlen128: + save_regs + li t0, 0xfff + li t1, 3329 + vsetivli a7, 8, e16, m1, tu, mu + addi t2, a2, _REJ_UNIFORM_IDX8*2 + addi t3, a2, _REJ_UNIFORM_MASK_01*2 + vle16.v v30, (t2) + vle16.v v31, (t3) + vmseq.vi v0, v31, 1 + addi a5, a0, 0 + addi a6, a1, 0 +// do...while(ctr <= KYBER_N - 8*4 && pos <= REJ_UNIFORM_VECTOR_BUFLEN - 12*4) +rej_uniform_rvv_vlen128_loop_x4: +start: + rej_core_x4 v8, v9, v10, v11, v12, v13, v14, v15, \ + v16, v17, v18, v19, v30, t0, t1 +end: + sub t2, a0, a5 + li t4, 256-8*4 + srli t2, t2, 1 + sub t3, a1, a6 + li t5, 504-12*4 + bgtu t2, t4, rej_uniform_rvv_vlen128_loopend_x4 + bleu t3, t5, rej_uniform_rvv_vlen128_loop_x4 +rej_uniform_rvv_vlen128_loopend_x4: +// while(ctr <= KYBER_N - 8*2 && pos <= REJ_UNIFORM_VECTOR_BUFLEN - 12*2) +rej_uniform_rvv_vlen128_loop_x2: + sub t2, a0, a5 + li t4, 256-8*2 + srli t2, t2, 1 + sub t3, a1, a6 + li t5, 504-12*2 + bgtu t2, t4, rej_uniform_rvv_vlen128_loopend_x2 + bgtu t3, t5, rej_uniform_rvv_vlen128_loopend_x2 +start_x2: + rej_core_x2 v8, v9, v12, v13, v16, v17, v30, t0, t1 +end_x2: + j rej_uniform_rvv_vlen128_loop_x2 +rej_uniform_rvv_vlen128_loopend_x2: +// while(ctr <= KYBER_N - 8 && pos <= REJ_UNIFORM_VECTOR_BUFLEN - 12) +rej_uniform_rvv_vlen128_loop_x1: + sub t2, a0, a5 + li t4, 256-8 + srli t2, t2, 1 + sub t3, a1, a6 + li t5, 504-12 + bgtu t2, t4, rej_uniform_rvv_vlen128_loopend_x1 + bgtu t3, t5, rej_uniform_rvv_vlen128_loopend_x1 +start_x1: + rej_core v8, v12, v16, v30, t0, t1 +end_x1: + j rej_uniform_rvv_vlen128_loop_x1 +rej_uniform_rvv_vlen128_loopend_x1: + sw t2, (a3) + sw t3, (a4) + restore_regs +ret \ No newline at end of file diff --git a/examples/naive/riscv/ntt_dilithium/_example.py b/examples/naive/riscv/ntt_dilithium/_example.py index 21455c3af..3f2f05777 100644 --- a/examples/naive/riscv/ntt_dilithium/_example.py +++ b/examples/naive/riscv/ntt_dilithium/_example.py @@ -132,9 +132,191 @@ def core(self, slothy): slothy.optimize_loop("intt_rv64im_loop2") +class RISC_V_ntt_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "ntt_dilithium_rvv_vlen128" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + # name += f"_{target_label_dict[target]}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="ntt_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 34 + slothy.config.constraints.stalls_maximum_attempt = 2048 + slothy.config.inputs_are_outputs = True + + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 60 + slothy.config.split_heuristic_stepsize = 0.05 + slothy.config.timeout = 180 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_estimate_performance = False + + slothy.config.with_preprocessor = True + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.config.compiler_include_paths = ( + "examples/naive/riscv/ntt_dilithium/include" + ) + # slothy.config.allow_useless_instructions = True + # slothy.fusion_region("start", "end", ssa=False) + slothy.optimize("start", "end") + + +class RISC_V_normal2ntt_order_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "dilithium_normal2ntt_order_rvv_vlen128" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + # name += f"_{target_label_dict[target]}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="normal2ntt_order_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 1 + + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + # slothy.config.sw_pipelining.enabled = True + # slothy.config.sw_pipelining.halving_heuristic = True + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 10 + slothy.config.split_heuristic_repeat = 1 + slothy.config.split_heuristic_stepsize = 0.05 + + slothy.config.constraints.allow_renaming = False + slothy.config.constraints.allow_reordering = False + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop("normal2ntt_order_rvv_vlen128_loop") + #slothy.optimize("start", "end") + + +class RISC_V_ntt2normal_order_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "dilithium_ntt2normal_order_rvv_vlen128" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + # name += f"_{target_label_dict[target]}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="ntt2normal_order_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 1 + + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + slothy.config.sw_pipelining.enabled = True + slothy.config.sw_pipelining.halving_heuristic = True + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 5 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop("ntt2normal_order_rvv_vlen128_loop") + + +class RISC_V_poly_reduce_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "dilithium_poly_reduce_rvv_vlen128" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="poly_reduce_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 8 + + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + slothy.config.sw_pipelining.enabled = True + slothy.config.sw_pipelining.halving_heuristic = True + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 5 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + slothy.optimize_loop("poly_reduce_rvv_vlen128_loop") + + example_instances = [ RISC_V_ntt8l_singleissue_plant_rv64im(target=Target_XuanTieC908, timeout=300), RISC_V_ntt8l_dualissue_plant_rv64im(timeout=300), RISC_V_intt8l_plant_rv64im(timeout=300), RISC_V_intt8l_plant_rv64im(timeout=300, var="dual"), + RISC_V_ntt_rvv_vlen128(target=Target_XuanTieC908), + RISC_V_normal2ntt_order_rvv_vlen128(), + RISC_V_ntt2normal_order_rvv_vlen128(), + RISC_V_poly_reduce_rvv_vlen128(), ] diff --git a/examples/naive/riscv/ntt_dilithium/dilithium_normal2ntt_order_rvv_vlen128.s b/examples/naive/riscv/ntt_dilithium/dilithium_normal2ntt_order_rvv_vlen128.s new file mode 100644 index 000000000..879b5c832 --- /dev/null +++ b/examples/naive/riscv/ntt_dilithium/dilithium_normal2ntt_order_rvv_vlen128.s @@ -0,0 +1,886 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 \ + va0, va1, va2, va3, va4, va5, va6, va7, \ + xb, xbqinv, xq, \ + vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level0 + ct_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + # level4 + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, \ + t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + # level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + # level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + # level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8,v9,v10,v11,v12,v13,v14,v15 + # shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23, \ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + # level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + # level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + t1, t2, t1, t2, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 \ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t2, t3, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +# q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +# inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +# inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl normal2ntt_order_rvv_vlen128 +.align 2 +normal2ntt_order_rvv_vlen128: + vsetivli a7, 4, e32, m1, tu, mu + # for vgather + li t0, _MASK_0101*4 + li t1, _MASK_2323*4 + add t0, t0, a1 + add t1, t1, a1 + vle32.v v1, (t0) + vle32.v v2, (t1) + li t2, _MASK_1032*4 + li t3, _MASK_1100*4 + li t4, _MASK_1010*4 + add t2, t2, a1 + add t3, t3, a1 + add t4, t4, a1 + vle32.v v3, (t2) + vle32.v v4, (t3) + vle32.v v5, (t4) + li a2, 4 +normal2ntt_order_rvv_vlen128_loop: + addi t0, a0, 4*8*4 + vl8re32.v v16, (a0) + vl8re32.v v24, (t0) + vmv.v.v v0, v4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + vmv.v.v v0, v5 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v3 + vs8r.v v16, (a0) + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v3 + vs8r.v v24, (t0) + addi a2, a2, -1 + addi a0, a0, 16*4*4 + bnez a2, normal2ntt_order_rvv_vlen128_loop +ret +end: \ No newline at end of file diff --git a/examples/naive/riscv/ntt_dilithium/dilithium_ntt2normal_order_rvv_vlen128.s b/examples/naive/riscv/ntt_dilithium/dilithium_ntt2normal_order_rvv_vlen128.s new file mode 100644 index 000000000..725a4f47c --- /dev/null +++ b/examples/naive/riscv/ntt_dilithium/dilithium_ntt2normal_order_rvv_vlen128.s @@ -0,0 +1,884 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 \ + va0, va1, va2, va3, va4, va5, va6, va7, \ + xb, xbqinv, xq, \ + vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level0 + ct_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + # level4 + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, \ + t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + # level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + # level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + # level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8,v9,v10,v11,v12,v13,v14,v15 + # shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23, \ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + # level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + # level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + t1, t2, t1, t2, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 \ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t2, t3, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +# q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +# inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +# inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl ntt2normal_order_rvv_vlen128 +.align 2 +ntt2normal_order_rvv_vlen128: + vsetivli a7, 4, e32, m1, tu, mu + li t1, _MASK_0101*4 + li t2, _MASK_2323*4 + add t1, t1, a1 + add t2, t2, a1 + vle32.v v1, (t1) + vle32.v v2, (t2) + li t3, _MASK_1032*4 + li t4, _MASK_1100*4 + li t5, _MASK_1010*4 + add t3, t3, a1 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v3, (t3) + vle32.v v4, (t4) + vle32.v v5, (t5) + li a2, 4 +ntt2normal_order_rvv_vlen128_loop: + addi t0, a0, 4*8*4 + vl8re32.v v16, (a0) + vl8re32.v v24, (t0) + vmv.v.v v0, v5 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v3 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v3 + vmv.v.v v0, v4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + vs8r.v v16, (a0) + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + vs8r.v v24, (t0) + addi a2, a2, -1 + addi a0, a0, 16*4*4 + bnez a2, ntt2normal_order_rvv_vlen128_loop +ret \ No newline at end of file diff --git a/examples/naive/riscv/ntt_dilithium/dilithium_poly_reduce_rvv_vlen128.s b/examples/naive/riscv/ntt_dilithium/dilithium_poly_reduce_rvv_vlen128.s new file mode 100644 index 000000000..df69703dd --- /dev/null +++ b/examples/naive/riscv/ntt_dilithium/dilithium_poly_reduce_rvv_vlen128.s @@ -0,0 +1,870 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 \ + va0, va1, va2, va3, va4, va5, va6, va7, \ + xb, xbqinv, xq, \ + vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level0 + ct_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + # level4 + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, \ + t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + # level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + # level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + # level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8,v9,v10,v11,v12,v13,v14,v15 + # shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23, \ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + # level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + # level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + t1, t2, t1, t2, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 \ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + # level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t2, t3, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +# q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +# inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +# inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl poly_reduce_rvv_vlen128 +.align 2 +poly_reduce_rvv_vlen128: + li a7, 4*8 + li a3, 4 + vsetvli a7, a7, e32, m8, tu, mu + li a1, 4194304 + li a2, q + addi a4, a0, 0 +poly_reduce_rvv_vlen128_loop: + addi t0, a0, 4*4*8 + vle32.v v0, (a0) + vle32.v v8, (t0) + + addi a0, a0, 4*4*8*2 + vadd.vx v16, v0, a1 + vadd.vx v24, v8, a1 + vsra.vi v16, v16, 23 + vsra.vi v24, v24, 23 + vmul.vx v16, v16, a2 + vmul.vx v24, v24, a2 + vsub.vv v0, v0, v16 + vsub.vv v8, v8, v24 + addi t1, a4, 4*4*8 + vse32.v v0, (a4) + vse32.v v8, (t1) + addi a3, a3, -1 + addi a4, a4, 4*4*8*2 + bnez a3, poly_reduce_rvv_vlen128_loop +ret \ No newline at end of file diff --git a/examples/naive/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128.s b/examples/naive/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128.s new file mode 100644 index 000000000..5f3022aba --- /dev/null +++ b/examples/naive/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128.s @@ -0,0 +1,864 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 \ + in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 \ + va0, va1, va2, va3, va4, va5, va6, va7, \ + xb, xbqinv, xq, \ + vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 // step 1 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 // step 4 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq // step 3 + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 // step 5 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, \ + vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, \ + vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level0 + ct_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + // level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + // level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + // level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + // level4 + ct_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, \ + t0, \ + v0, v1, v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,v14,v15 + // level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + // level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + // level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v9, v8, v11,v10,v13,v12,v15,v14,t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + // level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8,v9,v10,v11,v12,v13,v14,v15 + // shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23, \ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15, v1 + // level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v1, v0, v3, v2, v5, v4, v7, v6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + // shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + // level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + // level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + t1, t2, t1, t2, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 \ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 \ + v24,v25,v26,v27,v28,v29,v30,v31,\ + t1, t2, t3, t4, t5, t6, a5, a6, t0,\ + v8, v9, v10,v11,v12,v13,v14,v15 + // level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 \ + v16,v18,v17,v19,v20,v22,v21,v23,\ + v24,v26,v25,v27,v28,v30,v29,v31,\ + t1, t2, t1, t2, t3, t4, t3, t4, \ + t5, t6, t5, t6, a5, a6, a5, a6, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + // level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 \ + v16,v20,v17,v21,v18,v22,v19,v23,\ + v24,v28,v25,v29,v26,v30,v27,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + // level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 \ + v16,v24,v17,v25,v18,v26,v19,v27,\ + v20,v28,v21,v29,v22,v30,v23,v31,\ + t1, t2, t1, t2, t1, t2, t1, t2, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0,\ + v0, v1, v2, v3, v4, v5, v6, v7,\ + v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 \ + v16,v17,v18,v19,v20,v21,v22,v23,\ + t2, t3, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +// q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +// inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +// inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl ntt_rvv_vlen128 +.align 2 +ntt_rvv_vlen128: +start: + vsetivli t2, 4, e32, m1, tu, mu + li t0, q + ntt_level0to3_rvv 0 + ntt_level0to3_rvv 1 + ntt_level0to3_rvv 2 + ntt_level0to3_rvv 3 + ntt_level4to7_rvv 0, \ + _ZETA_EXP_4TO7_P0_L4, _ZETA_EXP_4TO7_P0_L5, \ + _ZETA_EXP_4TO7_P0_L6, _ZETA_EXP_4TO7_P0_L7 + ntt_level4to7_rvv 1, \ + _ZETA_EXP_4TO7_P1_L4, _ZETA_EXP_4TO7_P1_L5, \ + _ZETA_EXP_4TO7_P1_L6, _ZETA_EXP_4TO7_P1_L7 + ntt_level4to7_rvv 2, \ + _ZETA_EXP_4TO7_P2_L4, _ZETA_EXP_4TO7_P2_L5, \ + _ZETA_EXP_4TO7_P2_L6, _ZETA_EXP_4TO7_P2_L7 + ntt_level4to7_rvv 3, \ + _ZETA_EXP_4TO7_P3_L4, _ZETA_EXP_4TO7_P3_L5, \ + _ZETA_EXP_4TO7_P3_L6, _ZETA_EXP_4TO7_P3_L7 +end: +ret \ No newline at end of file diff --git a/examples/naive/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128_unfolded.s b/examples/naive/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128_unfolded.s new file mode 100644 index 000000000..0050a1255 --- /dev/null +++ b/examples/naive/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128_unfolded.s @@ -0,0 +1,3216 @@ +#define _ZETA_EXP_0TO3_L0 (0 * 2) +#define _ZETA_EXP_0TO3_L1 (_ZETA_EXP_0TO3_L0 + 1 * 2) +#define _ZETA_EXP_0TO3_L2 (_ZETA_EXP_0TO3_L1 + 2 * 2) +#define _ZETA_EXP_0TO3_L3 (_ZETA_EXP_0TO3_L2 + 4 * 2) +#define _ZETA_EXP_4TO7_P0_L4 (_ZETA_EXP_0TO3_L3 + 8 * 2) +#define _ZETA_EXP_4TO7_P0_L5 (_ZETA_EXP_4TO7_P0_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P0_L6 (_ZETA_EXP_4TO7_P0_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P0_L7 (_ZETA_EXP_4TO7_P0_L6 + 16 * 2 * 2) +#define _ZETA_EXP_4TO7_P1_L4 (_ZETA_EXP_4TO7_P0_L7 + 32 * 2) +#define _ZETA_EXP_4TO7_P1_L5 (_ZETA_EXP_4TO7_P1_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P1_L6 (_ZETA_EXP_4TO7_P1_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P1_L7 (_ZETA_EXP_4TO7_P1_L6 + 16 * 2 * 2) +#define _ZETA_EXP_4TO7_P2_L4 (_ZETA_EXP_4TO7_P1_L7 + 32 * 2) +#define _ZETA_EXP_4TO7_P2_L5 (_ZETA_EXP_4TO7_P2_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P2_L6 (_ZETA_EXP_4TO7_P2_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P2_L7 (_ZETA_EXP_4TO7_P2_L6 + 16 * 2 * 2) +#define _ZETA_EXP_4TO7_P3_L4 (_ZETA_EXP_4TO7_P2_L7 + 32 * 2) +#define _ZETA_EXP_4TO7_P3_L5 (_ZETA_EXP_4TO7_P3_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P3_L6 (_ZETA_EXP_4TO7_P3_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P3_L7 (_ZETA_EXP_4TO7_P3_L6 + 16 * 2 * 2) +#define _MASK_1100 (_ZETA_EXP_4TO7_P3_L7 + 32 * 2) +#define _MASK_1010 (_MASK_1100 + 4) +#define _MASK_0101 (_MASK_1010 + 4) +#define _MASK_2323 (_MASK_0101 + 4) +#define _MASK_1032 (_MASK_2323 + 4) +#define _ZETA_EXP_INTT_0TO3_P0_L0 (_MASK_1032 + 4) +#define _ZETA_EXP_INTT_0TO3_P0_L1 (_ZETA_EXP_INTT_0TO3_P0_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P0_L2 (_ZETA_EXP_INTT_0TO3_P0_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P0_L3 (_ZETA_EXP_INTT_0TO3_P0_L2 + 8 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L0 (_ZETA_EXP_INTT_0TO3_P0_L3 + 4 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L1 (_ZETA_EXP_INTT_0TO3_P1_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L2 (_ZETA_EXP_INTT_0TO3_P1_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L3 (_ZETA_EXP_INTT_0TO3_P1_L2 + 8 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L0 (_ZETA_EXP_INTT_0TO3_P1_L3 + 4 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L1 (_ZETA_EXP_INTT_0TO3_P2_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L2 (_ZETA_EXP_INTT_0TO3_P2_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L3 (_ZETA_EXP_INTT_0TO3_P2_L2 + 8 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L0 (_ZETA_EXP_INTT_0TO3_P2_L3 + 4 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L1 (_ZETA_EXP_INTT_0TO3_P3_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L2 (_ZETA_EXP_INTT_0TO3_P3_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L3 (_ZETA_EXP_INTT_0TO3_P3_L2 + 8 * 2) +#define _ZETA_EXP_INTT_4TO7_L4 (_ZETA_EXP_INTT_0TO3_P3_L3 + 4 * 2) +#define _ZETA_EXP_INTT_4TO7_L5 (_ZETA_EXP_INTT_4TO7_L4 + 8 * 2) +#define _ZETA_EXP_INTT_4TO7_L6 (_ZETA_EXP_INTT_4TO7_L5 + 4 * 2) +#define _ZETA_EXP_INTT_4TO7_L7 (_ZETA_EXP_INTT_4TO7_L6 + 2 * 2) + +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 va0, va1, va2, va3, va4, va5, va6, va7, xb, xbqinv, xq, vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level0 + ct_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + // level4 + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + // level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + // level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + // level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8,v9,v10,v11,v12,v13,v14,v15 + // shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, v1 + // level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + // shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + // level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + // level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v18,v17,v19,v20,v22,v21,v23, t1, t2, t1, t2, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 v24,v26,v25,v27,v28,v30,v29,v31, t5, t6, t5, t6, a5, a6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + // level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 v16,v17,v18,v19,v20,v21,v22,v23, t2, t3, t0, v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +// q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +// inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +// inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl ntt_rvv_vlen128 +.align 2 +ntt_rvv_vlen128: +start: + save_regs + vsetivli t2, 4, e32, m1, tu, mu + li t0, q + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*0)*4 + addi a3, a0, (4*0+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level0 + vmul.vx v0, v24, t2 + vmul.vx v2, v25, t2 + vmul.vx v4, v26, t2 + vmul.vx v6, v27, t2 + vmul.vx v8, v28, t2 + vmul.vx v10, v29, t2 + vmul.vx v12, v30, t2 + vmul.vx v14, v31, t2 + vmulh.vx v1, v24, t1 + vmulh.vx v3, v25, t1 + vmulh.vx v5, v26, t1 + vmulh.vx v7, v27, t1 + vmulh.vx v9, v28, t1 + vmulh.vx v11, v29, t1 + vmulh.vx v13, v30, t1 + vmulh.vx v15, v31, t1 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v24, v16, v0 + vsub.vv v25, v17, v2 + vsub.vv v26, v18, v4 + vsub.vv v27, v19, v6 + vsub.vv v28, v20, v8 + vsub.vv v29, v21, v10 + vsub.vv v30, v22, v12 + vsub.vv v31, v23, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v18, v18, v4 + vadd.vv v19, v19, v6 + vadd.vv v20, v20, v8 + vadd.vv v21, v21, v10 + vadd.vv v22, v22, v12 + vadd.vv v23, v23, v14 + // level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + vmul.vx v0, v20, t2 + vmul.vx v2, v21, t2 + vmul.vx v4, v22, t2 + vmul.vx v6, v23, t2 + vmul.vx v8, v28, t4 + vmul.vx v10, v29, t4 + vmul.vx v12, v30, t4 + vmul.vx v14, v31, t4 + vmulh.vx v1, v20, t1 + vmulh.vx v3, v21, t1 + vmulh.vx v5, v22, t1 + vmulh.vx v7, v23, t1 + vmulh.vx v9, v28, t3 + vmulh.vx v11, v29, t3 + vmulh.vx v13, v30, t3 + vmulh.vx v15, v31, t3 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v20, v16, v0 + vsub.vv v21, v17, v2 + vsub.vv v22, v18, v4 + vsub.vv v23, v19, v6 + vsub.vv v28, v24, v8 + vsub.vv v29, v25, v10 + vsub.vv v30, v26, v12 + vsub.vv v31, v27, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v18, v18, v4 + vadd.vv v19, v19, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v26, v26, v12 + vadd.vv v27, v27, v14 + // level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + vmul.vx v0, v18, t2 + vmul.vx v2, v19, t2 + vmul.vx v4, v22, t4 + vmul.vx v6, v23, t4 + vmul.vx v8, v26, t6 + vmul.vx v10, v27, t6 + vmul.vx v12, v30, a6 + vmul.vx v14, v31, a6 + vmulh.vx v1, v18, t1 + vmulh.vx v3, v19, t1 + vmulh.vx v5, v22, t3 + vmulh.vx v7, v23, t3 + vmulh.vx v9, v26, t5 + vmulh.vx v11, v27, t5 + vmulh.vx v13, v30, a5 + vmulh.vx v15, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v18, v16, v0 + vsub.vv v19, v17, v2 + vsub.vv v22, v20, v4 + vsub.vv v23, v21, v6 + vsub.vv v26, v24, v8 + vsub.vv v27, v25, v10 + vsub.vv v30, v28, v12 + vsub.vv v31, v29, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v20, v20, v4 + vadd.vv v21, v21, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v28, v28, v12 + vadd.vv v29, v29, v14 + // level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + vmul.vx v0, v17, t2 + vmul.vx v2, v19, t4 + vmul.vx v4, v21, t6 + vmul.vx v6, v23, a6 + vmulh.vx v1, v17, t1 + vmulh.vx v3, v19, t3 + vmulh.vx v5, v21, t5 + vmulh.vx v7, v23, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*0)*4 + addi a3, a0, (4*0+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vmul.vx v0, v25, t2 + vmul.vx v2, v27, t4 + vmul.vx v4, v29, t6 + vmul.vx v6, v31, a6 + vmulh.vx v1, v25, t1 + vmulh.vx v3, v27, t3 + vmulh.vx v5, v29, t5 + vmulh.vx v7, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*1)*4 + addi a3, a0, (4*1+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level0 + vmul.vx v0, v24, t2 + vmul.vx v2, v25, t2 + vmul.vx v4, v26, t2 + vmul.vx v6, v27, t2 + vmul.vx v8, v28, t2 + vmul.vx v10, v29, t2 + vmul.vx v12, v30, t2 + vmul.vx v14, v31, t2 + vmulh.vx v1, v24, t1 + vmulh.vx v3, v25, t1 + vmulh.vx v5, v26, t1 + vmulh.vx v7, v27, t1 + vmulh.vx v9, v28, t1 + vmulh.vx v11, v29, t1 + vmulh.vx v13, v30, t1 + vmulh.vx v15, v31, t1 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v24, v16, v0 + vsub.vv v25, v17, v2 + vsub.vv v26, v18, v4 + vsub.vv v27, v19, v6 + vsub.vv v28, v20, v8 + vsub.vv v29, v21, v10 + vsub.vv v30, v22, v12 + vsub.vv v31, v23, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v18, v18, v4 + vadd.vv v19, v19, v6 + vadd.vv v20, v20, v8 + vadd.vv v21, v21, v10 + vadd.vv v22, v22, v12 + vadd.vv v23, v23, v14 + // level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + vmul.vx v0, v20, t2 + vmul.vx v2, v21, t2 + vmul.vx v4, v22, t2 + vmul.vx v6, v23, t2 + vmul.vx v8, v28, t4 + vmul.vx v10, v29, t4 + vmul.vx v12, v30, t4 + vmul.vx v14, v31, t4 + vmulh.vx v1, v20, t1 + vmulh.vx v3, v21, t1 + vmulh.vx v5, v22, t1 + vmulh.vx v7, v23, t1 + vmulh.vx v9, v28, t3 + vmulh.vx v11, v29, t3 + vmulh.vx v13, v30, t3 + vmulh.vx v15, v31, t3 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v20, v16, v0 + vsub.vv v21, v17, v2 + vsub.vv v22, v18, v4 + vsub.vv v23, v19, v6 + vsub.vv v28, v24, v8 + vsub.vv v29, v25, v10 + vsub.vv v30, v26, v12 + vsub.vv v31, v27, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v18, v18, v4 + vadd.vv v19, v19, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v26, v26, v12 + vadd.vv v27, v27, v14 + // level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + vmul.vx v0, v18, t2 + vmul.vx v2, v19, t2 + vmul.vx v4, v22, t4 + vmul.vx v6, v23, t4 + vmul.vx v8, v26, t6 + vmul.vx v10, v27, t6 + vmul.vx v12, v30, a6 + vmul.vx v14, v31, a6 + vmulh.vx v1, v18, t1 + vmulh.vx v3, v19, t1 + vmulh.vx v5, v22, t3 + vmulh.vx v7, v23, t3 + vmulh.vx v9, v26, t5 + vmulh.vx v11, v27, t5 + vmulh.vx v13, v30, a5 + vmulh.vx v15, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v18, v16, v0 + vsub.vv v19, v17, v2 + vsub.vv v22, v20, v4 + vsub.vv v23, v21, v6 + vsub.vv v26, v24, v8 + vsub.vv v27, v25, v10 + vsub.vv v30, v28, v12 + vsub.vv v31, v29, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v20, v20, v4 + vadd.vv v21, v21, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v28, v28, v12 + vadd.vv v29, v29, v14 + // level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + vmul.vx v0, v17, t2 + vmul.vx v2, v19, t4 + vmul.vx v4, v21, t6 + vmul.vx v6, v23, a6 + vmulh.vx v1, v17, t1 + vmulh.vx v3, v19, t3 + vmulh.vx v5, v21, t5 + vmulh.vx v7, v23, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*1)*4 + addi a3, a0, (4*1+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vmul.vx v0, v25, t2 + vmul.vx v2, v27, t4 + vmul.vx v4, v29, t6 + vmul.vx v6, v31, a6 + vmulh.vx v1, v25, t1 + vmulh.vx v3, v27, t3 + vmulh.vx v5, v29, t5 + vmulh.vx v7, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*2)*4 + addi a3, a0, (4*2+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level0 + vmul.vx v0, v24, t2 + vmul.vx v2, v25, t2 + vmul.vx v4, v26, t2 + vmul.vx v6, v27, t2 + vmul.vx v8, v28, t2 + vmul.vx v10, v29, t2 + vmul.vx v12, v30, t2 + vmul.vx v14, v31, t2 + vmulh.vx v1, v24, t1 + vmulh.vx v3, v25, t1 + vmulh.vx v5, v26, t1 + vmulh.vx v7, v27, t1 + vmulh.vx v9, v28, t1 + vmulh.vx v11, v29, t1 + vmulh.vx v13, v30, t1 + vmulh.vx v15, v31, t1 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v24, v16, v0 + vsub.vv v25, v17, v2 + vsub.vv v26, v18, v4 + vsub.vv v27, v19, v6 + vsub.vv v28, v20, v8 + vsub.vv v29, v21, v10 + vsub.vv v30, v22, v12 + vsub.vv v31, v23, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v18, v18, v4 + vadd.vv v19, v19, v6 + vadd.vv v20, v20, v8 + vadd.vv v21, v21, v10 + vadd.vv v22, v22, v12 + vadd.vv v23, v23, v14 + // level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + vmul.vx v0, v20, t2 + vmul.vx v2, v21, t2 + vmul.vx v4, v22, t2 + vmul.vx v6, v23, t2 + vmul.vx v8, v28, t4 + vmul.vx v10, v29, t4 + vmul.vx v12, v30, t4 + vmul.vx v14, v31, t4 + vmulh.vx v1, v20, t1 + vmulh.vx v3, v21, t1 + vmulh.vx v5, v22, t1 + vmulh.vx v7, v23, t1 + vmulh.vx v9, v28, t3 + vmulh.vx v11, v29, t3 + vmulh.vx v13, v30, t3 + vmulh.vx v15, v31, t3 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v20, v16, v0 + vsub.vv v21, v17, v2 + vsub.vv v22, v18, v4 + vsub.vv v23, v19, v6 + vsub.vv v28, v24, v8 + vsub.vv v29, v25, v10 + vsub.vv v30, v26, v12 + vsub.vv v31, v27, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v18, v18, v4 + vadd.vv v19, v19, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v26, v26, v12 + vadd.vv v27, v27, v14 + // level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + vmul.vx v0, v18, t2 + vmul.vx v2, v19, t2 + vmul.vx v4, v22, t4 + vmul.vx v6, v23, t4 + vmul.vx v8, v26, t6 + vmul.vx v10, v27, t6 + vmul.vx v12, v30, a6 + vmul.vx v14, v31, a6 + vmulh.vx v1, v18, t1 + vmulh.vx v3, v19, t1 + vmulh.vx v5, v22, t3 + vmulh.vx v7, v23, t3 + vmulh.vx v9, v26, t5 + vmulh.vx v11, v27, t5 + vmulh.vx v13, v30, a5 + vmulh.vx v15, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v18, v16, v0 + vsub.vv v19, v17, v2 + vsub.vv v22, v20, v4 + vsub.vv v23, v21, v6 + vsub.vv v26, v24, v8 + vsub.vv v27, v25, v10 + vsub.vv v30, v28, v12 + vsub.vv v31, v29, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v20, v20, v4 + vadd.vv v21, v21, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v28, v28, v12 + vadd.vv v29, v29, v14 + // level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + vmul.vx v0, v17, t2 + vmul.vx v2, v19, t4 + vmul.vx v4, v21, t6 + vmul.vx v6, v23, a6 + vmulh.vx v1, v17, t1 + vmulh.vx v3, v19, t3 + vmulh.vx v5, v21, t5 + vmulh.vx v7, v23, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*2)*4 + addi a3, a0, (4*2+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vmul.vx v0, v25, t2 + vmul.vx v2, v27, t4 + vmul.vx v4, v29, t6 + vmul.vx v6, v31, a6 + vmulh.vx v1, v25, t1 + vmulh.vx v3, v27, t3 + vmulh.vx v5, v29, t5 + vmulh.vx v7, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*3)*4 + addi a3, a0, (4*3+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level0 + vmul.vx v0, v24, t2 + vmul.vx v2, v25, t2 + vmul.vx v4, v26, t2 + vmul.vx v6, v27, t2 + vmul.vx v8, v28, t2 + vmul.vx v10, v29, t2 + vmul.vx v12, v30, t2 + vmul.vx v14, v31, t2 + vmulh.vx v1, v24, t1 + vmulh.vx v3, v25, t1 + vmulh.vx v5, v26, t1 + vmulh.vx v7, v27, t1 + vmulh.vx v9, v28, t1 + vmulh.vx v11, v29, t1 + vmulh.vx v13, v30, t1 + vmulh.vx v15, v31, t1 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v24, v16, v0 + vsub.vv v25, v17, v2 + vsub.vv v26, v18, v4 + vsub.vv v27, v19, v6 + vsub.vv v28, v20, v8 + vsub.vv v29, v21, v10 + vsub.vv v30, v22, v12 + vsub.vv v31, v23, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v18, v18, v4 + vadd.vv v19, v19, v6 + vadd.vv v20, v20, v8 + vadd.vv v21, v21, v10 + vadd.vv v22, v22, v12 + vadd.vv v23, v23, v14 + // level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + vmul.vx v0, v20, t2 + vmul.vx v2, v21, t2 + vmul.vx v4, v22, t2 + vmul.vx v6, v23, t2 + vmul.vx v8, v28, t4 + vmul.vx v10, v29, t4 + vmul.vx v12, v30, t4 + vmul.vx v14, v31, t4 + vmulh.vx v1, v20, t1 + vmulh.vx v3, v21, t1 + vmulh.vx v5, v22, t1 + vmulh.vx v7, v23, t1 + vmulh.vx v9, v28, t3 + vmulh.vx v11, v29, t3 + vmulh.vx v13, v30, t3 + vmulh.vx v15, v31, t3 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v20, v16, v0 + vsub.vv v21, v17, v2 + vsub.vv v22, v18, v4 + vsub.vv v23, v19, v6 + vsub.vv v28, v24, v8 + vsub.vv v29, v25, v10 + vsub.vv v30, v26, v12 + vsub.vv v31, v27, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v18, v18, v4 + vadd.vv v19, v19, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v26, v26, v12 + vadd.vv v27, v27, v14 + // level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + vmul.vx v0, v18, t2 + vmul.vx v2, v19, t2 + vmul.vx v4, v22, t4 + vmul.vx v6, v23, t4 + vmul.vx v8, v26, t6 + vmul.vx v10, v27, t6 + vmul.vx v12, v30, a6 + vmul.vx v14, v31, a6 + vmulh.vx v1, v18, t1 + vmulh.vx v3, v19, t1 + vmulh.vx v5, v22, t3 + vmulh.vx v7, v23, t3 + vmulh.vx v9, v26, t5 + vmulh.vx v11, v27, t5 + vmulh.vx v13, v30, a5 + vmulh.vx v15, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v18, v16, v0 + vsub.vv v19, v17, v2 + vsub.vv v22, v20, v4 + vsub.vv v23, v21, v6 + vsub.vv v26, v24, v8 + vsub.vv v27, v25, v10 + vsub.vv v30, v28, v12 + vsub.vv v31, v29, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v20, v20, v4 + vadd.vv v21, v21, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v28, v28, v12 + vadd.vv v29, v29, v14 + // level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + vmul.vx v0, v17, t2 + vmul.vx v2, v19, t4 + vmul.vx v4, v21, t6 + vmul.vx v6, v23, a6 + vmulh.vx v1, v17, t1 + vmulh.vx v3, v19, t3 + vmulh.vx v5, v21, t5 + vmulh.vx v7, v23, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*3)*4 + addi a3, a0, (4*3+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vmul.vx v0, v25, t2 + vmul.vx v2, v27, t4 + vmul.vx v4, v29, t6 + vmul.vx v6, v31, a6 + vmulh.vx v1, v25, t1 + vmulh.vx v3, v27, t3 + vmulh.vx v5, v29, t5 + vmulh.vx v7, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) + li a4, _ZETA_EXP_4TO7_P0_L4*4 + addi a2, a0, (64*0)*4 + add a4, a4, a1 + addi a3, a0, (64*0+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, _ZETA_EXP_4TO7_P0_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + // level4 + vmul.vx v0, v18, t2 + vmul.vx v2, v19, t2 + vmul.vx v4, v22, t4 + vmul.vx v6, v23, t4 + vmul.vx v8, v26, t6 + vmul.vx v10, v27, t6 + vmul.vx v12, v30, a6 + vmul.vx v14, v31, a6 + vmulh.vx v1, v18, t1 + vmulh.vx v3, v19, t1 + vmulh.vx v5, v22, t3 + vmulh.vx v7, v23, t3 + vmulh.vx v9, v26, t5 + vmulh.vx v11, v27, t5 + vmulh.vx v13, v30, a5 + vmulh.vx v15, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v18, v16, v0 + vsub.vv v19, v17, v2 + vsub.vv v22, v20, v4 + vsub.vv v23, v21, v6 + vsub.vv v26, v24, v8 + vsub.vv v27, v25, v10 + vsub.vv v30, v28, v12 + vsub.vv v31, v29, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v20, v20, v4 + vadd.vv v21, v21, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v28, v28, v12 + vadd.vv v29, v29, v14 + // level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vmul.vx v0, v17, t2 + vmul.vx v2, v19, t4 + vmul.vx v4, v21, t6 + vmul.vx v6, v23, a6 + vmulh.vx v1, v17, t1 + vmulh.vx v3, v19, t3 + vmulh.vx v5, v21, t5 + vmulh.vx v7, v23, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + vmul.vx v0, v25, t2 + vmul.vx v2, v27, t4 + vmul.vx v4, v29, t6 + vmul.vx v6, v31, a6 + vmulh.vx v1, v25, t1 + vmulh.vx v3, v27, t3 + vmulh.vx v5, v29, t5 + vmulh.vx v7, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + // level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, _ZETA_EXP_4TO7_P0_L6*4 + vrgather.vv v8, v17, v1 + vrgather.vv v9, v16, v2 + vrgather.vv v10, v19, v1 + vrgather.vv v11, v18, v2 + vrgather.vv v12, v21, v1 + vrgather.vv v13, v20, v2 + vrgather.vv v14, v23, v1 + vrgather.vv v15, v22, v2 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v17, v17, v9, v0 + vmerge.vvm v18, v10, v18, v0 + vmerge.vvm v19, v19, v11, v0 + vmerge.vvm v20, v12, v20, v0 + vmerge.vvm v21, v21, v13, v0 + vmerge.vvm v22, v14, v22, v0 + vmerge.vvm v23, v23, v15, v0 + add t4, t4, a1 + vrgather.vv v8, v25, v1 + vrgather.vv v9, v24, v2 + vrgather.vv v10, v27, v1 + vrgather.vv v11, v26, v2 + vrgather.vv v12, v29, v1 + vrgather.vv v13, v28, v2 + vrgather.vv v14, v31, v1 + vrgather.vv v15, v30, v2 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v25, v25, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v27, v27, v11, v0 + vmerge.vvm v28, v12, v28, v0 + vmerge.vvm v29, v29, v13, v0 + vmerge.vvm v30, v14, v30, v0 + vmerge.vvm v31, v31, v15, v0 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + vmul.vv v0, v17, v8 + vmul.vv v2, v19, v10 + vmul.vv v4, v21, v12 + vmul.vv v6, v23, v14 + vmulh.vv v1, v17, v9 + vmulh.vv v3, v19, v11 + vmulh.vv v5, v21, v13 + vmulh.vv v7, v23, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + vl8re32.v v8, (t4) + vmul.vv v0, v25, v8 + vmul.vv v2, v27, v10 + vmul.vv v4, v29, v12 + vmul.vv v6, v31, v14 + vmulh.vv v1, v25, v9 + vmulh.vv v3, v27, v11 + vmulh.vv v5, v29, v13 + vmulh.vv v7, v31, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + // level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, _ZETA_EXP_4TO7_P0_L7*4 + vrgather.vv v8, v17, v1 + vrgather.vv v9, v16, v1 + vrgather.vv v10, v19, v1 + vrgather.vv v11, v18, v1 + vrgather.vv v12, v21, v1 + vrgather.vv v13, v20, v1 + vrgather.vv v14, v23, v1 + vrgather.vv v15, v22, v1 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v17, v17, v9, v0 + vmerge.vvm v18, v10, v18, v0 + vmerge.vvm v19, v19, v11, v0 + vmerge.vvm v20, v12, v20, v0 + vmerge.vvm v21, v21, v13, v0 + vmerge.vvm v22, v14, v22, v0 + vmerge.vvm v23, v23, v15, v0 + add t4, t4, a1 + vrgather.vv v8, v25, v1 + vrgather.vv v9, v24, v1 + vrgather.vv v10, v27, v1 + vrgather.vv v11, v26, v1 + vrgather.vv v12, v29, v1 + vrgather.vv v13, v28, v1 + vrgather.vv v14, v31, v1 + vrgather.vv v15, v30, v1 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v25, v25, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v27, v27, v11, v0 + vmerge.vvm v28, v12, v28, v0 + vmerge.vvm v29, v29, v13, v0 + vmerge.vvm v30, v14, v30, v0 + vmerge.vvm v31, v31, v15, v0 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + vmul.vv v0, v17, v8 + vmul.vv v2, v19, v10 + vmul.vv v4, v21, v12 + vmul.vv v6, v23, v14 + vmulh.vv v1, v17, v9 + vmulh.vv v3, v19, v11 + vmulh.vv v5, v21, v13 + vmulh.vv v7, v23, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + vmul.vv v0, v25, v8 + vmul.vv v2, v27, v10 + vmul.vv v4, v29, v12 + vmul.vv v6, v31, v14 + vmulh.vv v1, v25, v9 + vmulh.vv v3, v27, v11 + vmulh.vv v5, v29, v13 + vmulh.vv v7, v31, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + vs8r.v v24, (a3) + li a4, _ZETA_EXP_4TO7_P1_L4*4 + addi a2, a0, (64*1)*4 + add a4, a4, a1 + addi a3, a0, (64*1+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, _ZETA_EXP_4TO7_P1_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + // level4 + vmul.vx v0, v18, t2 + vmul.vx v2, v19, t2 + vmul.vx v4, v22, t4 + vmul.vx v6, v23, t4 + vmul.vx v8, v26, t6 + vmul.vx v10, v27, t6 + vmul.vx v12, v30, a6 + vmul.vx v14, v31, a6 + vmulh.vx v1, v18, t1 + vmulh.vx v3, v19, t1 + vmulh.vx v5, v22, t3 + vmulh.vx v7, v23, t3 + vmulh.vx v9, v26, t5 + vmulh.vx v11, v27, t5 + vmulh.vx v13, v30, a5 + vmulh.vx v15, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v18, v16, v0 + vsub.vv v19, v17, v2 + vsub.vv v22, v20, v4 + vsub.vv v23, v21, v6 + vsub.vv v26, v24, v8 + vsub.vv v27, v25, v10 + vsub.vv v30, v28, v12 + vsub.vv v31, v29, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v20, v20, v4 + vadd.vv v21, v21, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v28, v28, v12 + vadd.vv v29, v29, v14 + // level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vmul.vx v0, v17, t2 + vmul.vx v2, v19, t4 + vmul.vx v4, v21, t6 + vmul.vx v6, v23, a6 + vmulh.vx v1, v17, t1 + vmulh.vx v3, v19, t3 + vmulh.vx v5, v21, t5 + vmulh.vx v7, v23, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + vmul.vx v0, v25, t2 + vmul.vx v2, v27, t4 + vmul.vx v4, v29, t6 + vmul.vx v6, v31, a6 + vmulh.vx v1, v25, t1 + vmulh.vx v3, v27, t3 + vmulh.vx v5, v29, t5 + vmulh.vx v7, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + // level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, _ZETA_EXP_4TO7_P1_L6*4 + vrgather.vv v8, v17, v1 + vrgather.vv v9, v16, v2 + vrgather.vv v10, v19, v1 + vrgather.vv v11, v18, v2 + vrgather.vv v12, v21, v1 + vrgather.vv v13, v20, v2 + vrgather.vv v14, v23, v1 + vrgather.vv v15, v22, v2 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v17, v17, v9, v0 + vmerge.vvm v18, v10, v18, v0 + vmerge.vvm v19, v19, v11, v0 + vmerge.vvm v20, v12, v20, v0 + vmerge.vvm v21, v21, v13, v0 + vmerge.vvm v22, v14, v22, v0 + vmerge.vvm v23, v23, v15, v0 + add t4, t4, a1 + vrgather.vv v8, v25, v1 + vrgather.vv v9, v24, v2 + vrgather.vv v10, v27, v1 + vrgather.vv v11, v26, v2 + vrgather.vv v12, v29, v1 + vrgather.vv v13, v28, v2 + vrgather.vv v14, v31, v1 + vrgather.vv v15, v30, v2 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v25, v25, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v27, v27, v11, v0 + vmerge.vvm v28, v12, v28, v0 + vmerge.vvm v29, v29, v13, v0 + vmerge.vvm v30, v14, v30, v0 + vmerge.vvm v31, v31, v15, v0 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + vmul.vv v0, v17, v8 + vmul.vv v2, v19, v10 + vmul.vv v4, v21, v12 + vmul.vv v6, v23, v14 + vmulh.vv v1, v17, v9 + vmulh.vv v3, v19, v11 + vmulh.vv v5, v21, v13 + vmulh.vv v7, v23, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + vl8re32.v v8, (t4) + vmul.vv v0, v25, v8 + vmul.vv v2, v27, v10 + vmul.vv v4, v29, v12 + vmul.vv v6, v31, v14 + vmulh.vv v1, v25, v9 + vmulh.vv v3, v27, v11 + vmulh.vv v5, v29, v13 + vmulh.vv v7, v31, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + // level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, _ZETA_EXP_4TO7_P1_L7*4 + vrgather.vv v8, v17, v1 + vrgather.vv v9, v16, v1 + vrgather.vv v10, v19, v1 + vrgather.vv v11, v18, v1 + vrgather.vv v12, v21, v1 + vrgather.vv v13, v20, v1 + vrgather.vv v14, v23, v1 + vrgather.vv v15, v22, v1 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v17, v17, v9, v0 + vmerge.vvm v18, v10, v18, v0 + vmerge.vvm v19, v19, v11, v0 + vmerge.vvm v20, v12, v20, v0 + vmerge.vvm v21, v21, v13, v0 + vmerge.vvm v22, v14, v22, v0 + vmerge.vvm v23, v23, v15, v0 + add t4, t4, a1 + vrgather.vv v8, v25, v1 + vrgather.vv v9, v24, v1 + vrgather.vv v10, v27, v1 + vrgather.vv v11, v26, v1 + vrgather.vv v12, v29, v1 + vrgather.vv v13, v28, v1 + vrgather.vv v14, v31, v1 + vrgather.vv v15, v30, v1 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v25, v25, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v27, v27, v11, v0 + vmerge.vvm v28, v12, v28, v0 + vmerge.vvm v29, v29, v13, v0 + vmerge.vvm v30, v14, v30, v0 + vmerge.vvm v31, v31, v15, v0 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + vmul.vv v0, v17, v8 + vmul.vv v2, v19, v10 + vmul.vv v4, v21, v12 + vmul.vv v6, v23, v14 + vmulh.vv v1, v17, v9 + vmulh.vv v3, v19, v11 + vmulh.vv v5, v21, v13 + vmulh.vv v7, v23, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + vmul.vv v0, v25, v8 + vmul.vv v2, v27, v10 + vmul.vv v4, v29, v12 + vmul.vv v6, v31, v14 + vmulh.vv v1, v25, v9 + vmulh.vv v3, v27, v11 + vmulh.vv v5, v29, v13 + vmulh.vv v7, v31, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + vs8r.v v24, (a3) + li a4, _ZETA_EXP_4TO7_P2_L4*4 + addi a2, a0, (64*2)*4 + add a4, a4, a1 + addi a3, a0, (64*2+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, _ZETA_EXP_4TO7_P2_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + // level4 + vmul.vx v0, v18, t2 + vmul.vx v2, v19, t2 + vmul.vx v4, v22, t4 + vmul.vx v6, v23, t4 + vmul.vx v8, v26, t6 + vmul.vx v10, v27, t6 + vmul.vx v12, v30, a6 + vmul.vx v14, v31, a6 + vmulh.vx v1, v18, t1 + vmulh.vx v3, v19, t1 + vmulh.vx v5, v22, t3 + vmulh.vx v7, v23, t3 + vmulh.vx v9, v26, t5 + vmulh.vx v11, v27, t5 + vmulh.vx v13, v30, a5 + vmulh.vx v15, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v18, v16, v0 + vsub.vv v19, v17, v2 + vsub.vv v22, v20, v4 + vsub.vv v23, v21, v6 + vsub.vv v26, v24, v8 + vsub.vv v27, v25, v10 + vsub.vv v30, v28, v12 + vsub.vv v31, v29, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v20, v20, v4 + vadd.vv v21, v21, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v28, v28, v12 + vadd.vv v29, v29, v14 + // level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vmul.vx v0, v17, t2 + vmul.vx v2, v19, t4 + vmul.vx v4, v21, t6 + vmul.vx v6, v23, a6 + vmulh.vx v1, v17, t1 + vmulh.vx v3, v19, t3 + vmulh.vx v5, v21, t5 + vmulh.vx v7, v23, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + vmul.vx v0, v25, t2 + vmul.vx v2, v27, t4 + vmul.vx v4, v29, t6 + vmul.vx v6, v31, a6 + vmulh.vx v1, v25, t1 + vmulh.vx v3, v27, t3 + vmulh.vx v5, v29, t5 + vmulh.vx v7, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + // level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, _ZETA_EXP_4TO7_P2_L6*4 + vrgather.vv v8, v17, v1 + vrgather.vv v9, v16, v2 + vrgather.vv v10, v19, v1 + vrgather.vv v11, v18, v2 + vrgather.vv v12, v21, v1 + vrgather.vv v13, v20, v2 + vrgather.vv v14, v23, v1 + vrgather.vv v15, v22, v2 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v17, v17, v9, v0 + vmerge.vvm v18, v10, v18, v0 + vmerge.vvm v19, v19, v11, v0 + vmerge.vvm v20, v12, v20, v0 + vmerge.vvm v21, v21, v13, v0 + vmerge.vvm v22, v14, v22, v0 + vmerge.vvm v23, v23, v15, v0 + add t4, t4, a1 + vrgather.vv v8, v25, v1 + vrgather.vv v9, v24, v2 + vrgather.vv v10, v27, v1 + vrgather.vv v11, v26, v2 + vrgather.vv v12, v29, v1 + vrgather.vv v13, v28, v2 + vrgather.vv v14, v31, v1 + vrgather.vv v15, v30, v2 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v25, v25, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v27, v27, v11, v0 + vmerge.vvm v28, v12, v28, v0 + vmerge.vvm v29, v29, v13, v0 + vmerge.vvm v30, v14, v30, v0 + vmerge.vvm v31, v31, v15, v0 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + vmul.vv v0, v17, v8 + vmul.vv v2, v19, v10 + vmul.vv v4, v21, v12 + vmul.vv v6, v23, v14 + vmulh.vv v1, v17, v9 + vmulh.vv v3, v19, v11 + vmulh.vv v5, v21, v13 + vmulh.vv v7, v23, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + vl8re32.v v8, (t4) + vmul.vv v0, v25, v8 + vmul.vv v2, v27, v10 + vmul.vv v4, v29, v12 + vmul.vv v6, v31, v14 + vmulh.vv v1, v25, v9 + vmulh.vv v3, v27, v11 + vmulh.vv v5, v29, v13 + vmulh.vv v7, v31, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + // level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, _ZETA_EXP_4TO7_P2_L7*4 + vrgather.vv v8, v17, v1 + vrgather.vv v9, v16, v1 + vrgather.vv v10, v19, v1 + vrgather.vv v11, v18, v1 + vrgather.vv v12, v21, v1 + vrgather.vv v13, v20, v1 + vrgather.vv v14, v23, v1 + vrgather.vv v15, v22, v1 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v17, v17, v9, v0 + vmerge.vvm v18, v10, v18, v0 + vmerge.vvm v19, v19, v11, v0 + vmerge.vvm v20, v12, v20, v0 + vmerge.vvm v21, v21, v13, v0 + vmerge.vvm v22, v14, v22, v0 + vmerge.vvm v23, v23, v15, v0 + add t4, t4, a1 + vrgather.vv v8, v25, v1 + vrgather.vv v9, v24, v1 + vrgather.vv v10, v27, v1 + vrgather.vv v11, v26, v1 + vrgather.vv v12, v29, v1 + vrgather.vv v13, v28, v1 + vrgather.vv v14, v31, v1 + vrgather.vv v15, v30, v1 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v25, v25, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v27, v27, v11, v0 + vmerge.vvm v28, v12, v28, v0 + vmerge.vvm v29, v29, v13, v0 + vmerge.vvm v30, v14, v30, v0 + vmerge.vvm v31, v31, v15, v0 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + vmul.vv v0, v17, v8 + vmul.vv v2, v19, v10 + vmul.vv v4, v21, v12 + vmul.vv v6, v23, v14 + vmulh.vv v1, v17, v9 + vmulh.vv v3, v19, v11 + vmulh.vv v5, v21, v13 + vmulh.vv v7, v23, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + vmul.vv v0, v25, v8 + vmul.vv v2, v27, v10 + vmul.vv v4, v29, v12 + vmul.vv v6, v31, v14 + vmulh.vv v1, v25, v9 + vmulh.vv v3, v27, v11 + vmulh.vv v5, v29, v13 + vmulh.vv v7, v31, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + vs8r.v v24, (a3) + li a4, _ZETA_EXP_4TO7_P3_L4*4 + addi a2, a0, (64*3)*4 + add a4, a4, a1 + addi a3, a0, (64*3+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, _ZETA_EXP_4TO7_P3_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + // level4 + vmul.vx v0, v18, t2 + vmul.vx v2, v19, t2 + vmul.vx v4, v22, t4 + vmul.vx v6, v23, t4 + vmul.vx v8, v26, t6 + vmul.vx v10, v27, t6 + vmul.vx v12, v30, a6 + vmul.vx v14, v31, a6 + vmulh.vx v1, v18, t1 + vmulh.vx v3, v19, t1 + vmulh.vx v5, v22, t3 + vmulh.vx v7, v23, t3 + vmulh.vx v9, v26, t5 + vmulh.vx v11, v27, t5 + vmulh.vx v13, v30, a5 + vmulh.vx v15, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vmulh.vx v8, v8, t0 + vmulh.vx v10, v10, t0 + vmulh.vx v12, v12, t0 + vmulh.vx v14, v14, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v8, v9, v8 + vsub.vv v10, v11, v10 + vsub.vv v12, v13, v12 + vsub.vv v14, v15, v14 + vsub.vv v18, v16, v0 + vsub.vv v19, v17, v2 + vsub.vv v22, v20, v4 + vsub.vv v23, v21, v6 + vsub.vv v26, v24, v8 + vsub.vv v27, v25, v10 + vsub.vv v30, v28, v12 + vsub.vv v31, v29, v14 + vadd.vv v16, v16, v0 + vadd.vv v17, v17, v2 + vadd.vv v20, v20, v4 + vadd.vv v21, v21, v6 + vadd.vv v24, v24, v8 + vadd.vv v25, v25, v10 + vadd.vv v28, v28, v12 + vadd.vv v29, v29, v14 + // level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vmul.vx v0, v17, t2 + vmul.vx v2, v19, t4 + vmul.vx v4, v21, t6 + vmul.vx v6, v23, a6 + vmulh.vx v1, v17, t1 + vmulh.vx v3, v19, t3 + vmulh.vx v5, v21, t5 + vmulh.vx v7, v23, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + vmul.vx v0, v25, t2 + vmul.vx v2, v27, t4 + vmul.vx v4, v29, t6 + vmul.vx v6, v31, a6 + vmulh.vx v1, v25, t1 + vmulh.vx v3, v27, t3 + vmulh.vx v5, v29, t5 + vmulh.vx v7, v31, a5 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + // level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, _ZETA_EXP_4TO7_P3_L6*4 + vrgather.vv v8, v17, v1 + vrgather.vv v9, v16, v2 + vrgather.vv v10, v19, v1 + vrgather.vv v11, v18, v2 + vrgather.vv v12, v21, v1 + vrgather.vv v13, v20, v2 + vrgather.vv v14, v23, v1 + vrgather.vv v15, v22, v2 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v17, v17, v9, v0 + vmerge.vvm v18, v10, v18, v0 + vmerge.vvm v19, v19, v11, v0 + vmerge.vvm v20, v12, v20, v0 + vmerge.vvm v21, v21, v13, v0 + vmerge.vvm v22, v14, v22, v0 + vmerge.vvm v23, v23, v15, v0 + add t4, t4, a1 + vrgather.vv v8, v25, v1 + vrgather.vv v9, v24, v2 + vrgather.vv v10, v27, v1 + vrgather.vv v11, v26, v2 + vrgather.vv v12, v29, v1 + vrgather.vv v13, v28, v2 + vrgather.vv v14, v31, v1 + vrgather.vv v15, v30, v2 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v25, v25, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v27, v27, v11, v0 + vmerge.vvm v28, v12, v28, v0 + vmerge.vvm v29, v29, v13, v0 + vmerge.vvm v30, v14, v30, v0 + vmerge.vvm v31, v31, v15, v0 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + vmul.vv v0, v17, v8 + vmul.vv v2, v19, v10 + vmul.vv v4, v21, v12 + vmul.vv v6, v23, v14 + vmulh.vv v1, v17, v9 + vmulh.vv v3, v19, v11 + vmulh.vv v5, v21, v13 + vmulh.vv v7, v23, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + vl8re32.v v8, (t4) + vmul.vv v0, v25, v8 + vmul.vv v2, v27, v10 + vmul.vv v4, v29, v12 + vmul.vv v6, v31, v14 + vmulh.vv v1, v25, v9 + vmulh.vv v3, v27, v11 + vmulh.vv v5, v29, v13 + vmulh.vv v7, v31, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + // level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, _ZETA_EXP_4TO7_P3_L7*4 + vrgather.vv v8, v17, v1 + vrgather.vv v9, v16, v1 + vrgather.vv v10, v19, v1 + vrgather.vv v11, v18, v1 + vrgather.vv v12, v21, v1 + vrgather.vv v13, v20, v1 + vrgather.vv v14, v23, v1 + vrgather.vv v15, v22, v1 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v17, v17, v9, v0 + vmerge.vvm v18, v10, v18, v0 + vmerge.vvm v19, v19, v11, v0 + vmerge.vvm v20, v12, v20, v0 + vmerge.vvm v21, v21, v13, v0 + vmerge.vvm v22, v14, v22, v0 + vmerge.vvm v23, v23, v15, v0 + add t4, t4, a1 + vrgather.vv v8, v25, v1 + vrgather.vv v9, v24, v1 + vrgather.vv v10, v27, v1 + vrgather.vv v11, v26, v1 + vrgather.vv v12, v29, v1 + vrgather.vv v13, v28, v1 + vrgather.vv v14, v31, v1 + vrgather.vv v15, v30, v1 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v25, v25, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v27, v27, v11, v0 + vmerge.vvm v28, v12, v28, v0 + vmerge.vvm v29, v29, v13, v0 + vmerge.vvm v30, v14, v30, v0 + vmerge.vvm v31, v31, v15, v0 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + vmul.vv v0, v17, v8 + vmul.vv v2, v19, v10 + vmul.vv v4, v21, v12 + vmul.vv v6, v23, v14 + vmulh.vv v1, v17, v9 + vmulh.vv v3, v19, v11 + vmulh.vv v5, v21, v13 + vmulh.vv v7, v23, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v17, v16, v0 + vsub.vv v19, v18, v2 + vsub.vv v21, v20, v4 + vsub.vv v23, v22, v6 + vadd.vv v16, v16, v0 + vadd.vv v18, v18, v2 + vadd.vv v20, v20, v4 + vadd.vv v22, v22, v6 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + vmul.vv v0, v25, v8 + vmul.vv v2, v27, v10 + vmul.vv v4, v29, v12 + vmul.vv v6, v31, v14 + vmulh.vv v1, v25, v9 + vmulh.vv v3, v27, v11 + vmulh.vv v5, v29, v13 + vmulh.vv v7, v31, v15 + vmulh.vx v0, v0, t0 + vmulh.vx v2, v2, t0 + vmulh.vx v4, v4, t0 + vmulh.vx v6, v6, t0 + vsub.vv v0, v1, v0 + vsub.vv v2, v3, v2 + vsub.vv v4, v5, v4 + vsub.vv v6, v7, v6 + vsub.vv v25, v24, v0 + vsub.vv v27, v26, v2 + vsub.vv v29, v28, v4 + vsub.vv v31, v30, v6 + vadd.vv v24, v24, v0 + vadd.vv v26, v26, v2 + vadd.vv v28, v28, v4 + vadd.vv v30, v30, v6 + vs8r.v v24, (a3) + restore_regs +end: + +ret diff --git a/examples/naive/riscv/ntt_kyber/_example.py b/examples/naive/riscv/ntt_kyber/_example.py index 684832ebd..27af21074 100644 --- a/examples/naive/riscv/ntt_kyber/_example.py +++ b/examples/naive/riscv/ntt_kyber/_example.py @@ -70,6 +70,47 @@ def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None) timeout=timeout, ) + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + + slothy.config.sw_pipelining.enabled = True + slothy.config.sw_pipelining.halving_heuristic = True + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 23 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + # slothy.config.split_heuristic_factor = 10 + # slothy.config.split_heuristic_repeat = 1 + # slothy.config.split_heuristic_stepsize = 0.3 + slothy.optimize_loop("ntt_rv64im_loop1") + slothy.optimize_loop("ntt_rv64im_loop2") + +class RISC_V_ntt_dualissue_l32_plant_rv64im(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "ntt_kyber_dualissue_l32_plant_rv64im" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="ntt_dual_rv64im", + timeout=timeout, + ) + def core(self, slothy): slothy.config.variable_size = True slothy.config.constraints.stalls_first_attempt = 32 @@ -178,9 +219,190 @@ def core(self, slothy): slothy.optimize_loop("intt_rv64im_loop2") +class RISC_V_ntt_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "ntt_kyber_rvv_vlen128" + infile = name #+ "_unfolded" + + if var != "": + name += f"_{var}" + infile += f"_{var}" + # name += f"_{target_label_dict[target]}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="ntt_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + # import slothy.targets.riscv.xuantie_c908 as target_module + + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + slothy.config.allow_useless_instructions = True + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 20 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + # slothy.config.split_heuristic_preprocess_naive_interleaving = True + slothy.config.split_heuristic_estimate_performance = False + slothy.config.constraints.stalls_maximum_attempt = 4096 + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.outputs = ["x17"] + slothy.config.reserved_regs = r + slothy.optimize("start", "end") + + +class RISC_V_intt_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "intt_kyber_rvv_vlen128" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + # name += f"_{target_label_dict[target]}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="intt_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.constraints.stalls_maximum_attempt = 2048 + slothy.config.inputs_are_outputs = True + + slothy.config.allow_useless_instructions = True + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 25 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + slothy.config.timeout = 180 + slothy.config.split_heuristic_estimate_performance = False + + slothy.config.outputs = ["x17"] # TODO: this does not do anything + r = slothy.config.reserved_regs + r += ["x3"] + + slothy.config.reserved_regs = r + slothy.optimize("start", "end") + + +class RISC_V_kyber_normal2ntt_order_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_normal2ntt_order_rvv_vlen128" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="normal2ntt_order_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + import slothy.targets.riscv.xuantie_c908 as target_module + + target_module.lmul = 1 + + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 5 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + slothy.config.sw_pipelining.halving_heuristic = True + + slothy.config.allow_useless_instructions = True + slothy.config.outputs = ["x17"] + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + + slothy.config.sw_pipelining.enabled = True + + slothy.optimize_loop("normal2ntt_order_rvv_vlen128_loop") + + +class RISC_V_kyber_ntt2normal_order_rvv_vlen128(OptimizationRunner): + def __init__(self, var="", arch=RISC_V, target=Target_XuanTieC908, timeout=None): + name = "kyber_ntt2normal_order_rvv_vlen128" + infile = name + + if var != "": + name += f"_{var}" + infile += f"_{var}" + + super().__init__( + infile, + name, + subfolder=SUBFOLDER, + rename=True, + arch=arch, + target=target, + funcname="ntt2normal_order_rvv_vlen128", + timeout=timeout, + ) + + def core(self, slothy): + slothy.config.variable_size = True + slothy.config.constraints.stalls_first_attempt = 32 + slothy.config.inputs_are_outputs = True + + slothy.config.split_heuristic = True + slothy.config.split_heuristic_factor = 5 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_stepsize = 0.05 + slothy.config.sw_pipelining.halving_heuristic = True + + slothy.config.allow_useless_instructions = True + slothy.config.outputs = ["x17"] + + r = slothy.config.reserved_regs + r += ["x3"] + slothy.config.reserved_regs = r + + slothy.config.sw_pipelining.enabled = True + + slothy.optimize_loop("ntt2normal_order_rvv_vlen128_loop") + + example_instances = [ RISC_V_ntt_singleissue_plant_rv64im(target=Target_XuanTieC908, timeout=300), RISC_V_ntt_dualissue_plant_rv64im(timeout=300), RISC_V_intt_dualissue_plant_rv64im(), + RISC_V_ntt_dualissue_l32_plant_rv64im(), RISC_V_intt_singleissue_plant_rv64im(), + RISC_V_ntt_rvv_vlen128(target=Target_XuanTieC908, timeout=300), + RISC_V_intt_rvv_vlen128(), + RISC_V_kyber_normal2ntt_order_rvv_vlen128(), + RISC_V_kyber_ntt2normal_order_rvv_vlen128(), ] diff --git a/examples/naive/riscv/ntt_kyber/intt_kyber_rvv_vlen128.s b/examples/naive/riscv/ntt_kyber/intt_kyber_rvv_vlen128.s new file mode 100644 index 000000000..f06479392 --- /dev/null +++ b/examples/naive/riscv/ntt_kyber/intt_kyber_rvv_vlen128.s @@ -0,0 +1,1062 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, \ + in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, \ + vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 \ + v16, v18, v20, v22, v24, v26, v28, v30, \ + v17, v19, v21, v23, v25, v27, v29, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 \ + v16, v17, v18, v19, v20, v21, v22, v23, \ + v24, v25, v26, v27, v28, v29, v30, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 \ + v16, v24, v18, v26, v20, v28, v22, v30, \ + v17, v25, v19, v27, v21, v29, v23, v31, \ + v1, v0, v1, v0, v1, v0, v1, v0, \ + v3, v2, v3, v2, v3, v2, v3, v2, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v16, v20, v18, v22, v24, v28, v26, v30, \ + v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v17, v21, v19, v23, v25, v29, v27, v31, \ + v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, \ + vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, \ + vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, \ + vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, \ + vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 \ + vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, \ + vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, \ + vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, \ + vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, \ + vidx8_0122, vidx_low, vidx_high, \ + x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro intt_rvv_level0to5 off, ZETA_EXP_INTT_0TO5_L0 + li a7, 8*8 + addi a5, a0, (\off*128)*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a6, a0, (64+\off*128)*2 + vle16.v v0, (a5) + vle16.v v8, (a6) + li t3, -10079 + li t2, 1441 // qinv*(mont^2/128) and mont^2/128 + addi a5, a1, \ZETA_EXP_INTT_0TO5_L0*2 + // Through exhaustive testing, it is found that for any 16-bit signed + // number, after using Montgomery modular multiplication to multiply + // the mont^2/128 constant, the coefficient range is [-1999,1999]. Note + // that 1999/3329 is approximately 0.6005. + montmul_const v16, v0, t2, t3, t0, v24 + montmul_const v24, v8, t2, t3, t0, v0 + vsetivli a7, 8, e16, m1, tu, mu + // level 0 + vl4re16.v v0, (a5) + addi a5, a5, 8*4*2 + gs_bfu_vv_ref_x8 \ + v16, v18, v20, v22, v24, v26, v28, v30, \ + v17, v19, v21, v23, v25, v27, v29, v31, \ + v0, v1, v2, v3, v0, v1, v2, v3, t0, t1, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // level 1 + vl4re16.v v0, (a5) + addi a5, a5, 8*4*2 + gs_bfu_vv_x8 \ + v16, v20, v24, v28, v17, v21, v25, v29, \ + v18, v22, v26, v30, v19, v23, v27, v31, \ + v1, v0, v3, v2, v1, v0, v3, v2, \ + v1, v0, v3, v2, v1, v0, v3, v2, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // level 2 + vl2re16.v v0, (a5) + addi a5, a5, 8*2*2 + gs_bfu_vv_x8 \ + v16, v24, v17, v25, v18, v26, v19, v27, \ + v20, v28, v21, v29, v22, v30, v23, v31, \ + v1, v0, v1, v0, v1, v0, v1, v0, \ + v1, v0, v1, v0, v1, v0, v1, v0, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v17, v18, v19, v8, v9, v10, v11, v1, v1 + shuffle_x2 v20, v21, v22, v23, v8, v9, v10, v11, v1, v1 + shuffle_x2 v24, v25, v26, v27, v8, v9, v10, v11, v1, v1 + shuffle_x2 v28, v29, v30, v31, v8, v9, v10, v11, v1, v1 + // level 3 + vl2re16.v v4, (a5) + addi a5, a5, 8*2*2 + gs_bfu_vv_x8 \ + v16, v17, v18, v19, v20, v21, v22, v23, \ + v24, v25, v26, v27, v28, v29, v30, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v20, v22, v8, v9, v10, v11, v1, v2 + shuffle_x2 v24, v26, v28, v30, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v19, v21, v23, v8, v9, v10, v11, v1, v2 + barrettRdcX2 v16, v18, v8, v9, a4, t0 + shuffle_x2 v25, v27, v29, v31, v8, v9, v10, v11, v1, v2 + // level 4 + vl2re16.v v4, (a5) + addi a5, a5, 8*2*2 + gs_bfu_vv_x8 \ + v16, v18, v20, v22, v24, v26, v28, v30, \ + v17, v19, v21, v23, v25, v27, v29, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + barrettRdc v20, v8, a4, t0 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + lh t3, 0*2(a5) + lh t2, 1*2(a5) + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 5 + // polynomial coefficients will be redirected to v0-v15 + gs_bfu_vx_x8 \ + v0, v8, v1, v9, v2, v10, v3, v11, \ + v4, v12, v5, v13, v6, v14, v7, v15, \ + v16, v20, v24, v28, v17, v21, v25, v29, \ + v18, v22, v26, v30, v19, v23, v27, v31, \ + t2, t3, t2, t3, t2, t3, t2, t3, \ + t2, t3, t2, t3, t2, t3, t2, t3, t0 + barrettRdc v1, v16, a4, t0 + addi a5, a0, (\off*128)*2 + addi a6, a0, (64+\off*128)*2 + vs8r.v v0, (a5) + vs8r.v v8, (a6) +.endm + +.macro intt_rvv_level6 + li a7, 8*8 + addi a6, a1, _ZETA_EXP_INTT_L6*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t2, 0*2(a6) + lh t1, 1*2(a6) + addi a5, a0, 128*2 + // a[0-63] & a[128-191] + vle16.v v16, (a0) + vle16.v v24, (a5) + gs_bfu_vx v16, v24, t1, t2, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + gs_bfu_vx v16, v24, t1, t2, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.globl intt_rvv_vlen128 +.align 2 +intt_rvv_vlen128: + li t0, 3329 + li t1, -3327 + li a4, 20159 + csrwi vxrm, 0 // round-to-nearest-up (add +0.5 LSB) +start: + intt_rvv_level0to5 0, _ZETA_EXP_INTT_0TO5_P0_L0 + intt_rvv_level0to5 1, _ZETA_EXP_INTT_0TO5_P1_L0 + intt_rvv_level6 +end: +ret \ No newline at end of file diff --git a/examples/naive/riscv/ntt_kyber/intt_kyber_rvv_vlen128_unfolded.s b/examples/naive/riscv/ntt_kyber/intt_kyber_rvv_vlen128_unfolded.s new file mode 100644 index 000000000..d377f2bda --- /dev/null +++ b/examples/naive/riscv/ntt_kyber/intt_kyber_rvv_vlen128_unfolded.s @@ -0,0 +1,1949 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzeta1, vzeta2, vzeta3, vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 v16, v24, v18, v26, v20, v28, v22, v30, v17, v25, v19, v27, v21, v29, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v3, v2, v3, v2, v3, v2, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v16, v20, v18, v22, v24, v28, v26, v30, v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v17, v21, v19, v23, v25, v29, v27, v31, v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, vidx8_0122, vidx_low, vidx_high, x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro intt_rvv_level0to5 off, ZETA_EXP_INTT_0TO5_L0 + li a7, 8*8 + addi a5, a0, (\off*128)*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a6, a0, (64+\off*128)*2 + vle16.v v0, (a5) + vle16.v v8, (a6) + li t3, -10079 + li t2, 1441 // qinv*(mont^2/128) and mont^2/128 + addi a5, a1, \ZETA_EXP_INTT_0TO5_L0*2 + // Through exhaustive testing, it is found that for any 16-bit signed + // number, after using Montgomery modular multiplication to multiply + // the mont^2/128 constant, the coefficient range is [-1999,1999]. Note + // that 1999/3329 is approximately 0.6005. + montmul_const v16, v0, t2, t3, t0, v24 + montmul_const v24, v8, t2, t3, t0, v0 + vsetivli a7, 8, e16, m1, tu, mu + // level 0 + vl4re16.v v0, (a5) + addi a5, a5, 8*4*2 + gs_bfu_vv_ref_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v0, v1, v2, v3, v0, v1, v2, v3, t0, t1, v8, v9, v10, v11, v12, v13, v14, v15 + // level 1 + vl4re16.v v0, (a5) + addi a5, a5, 8*4*2 + gs_bfu_vv_x8 v16, v20, v24, v28, v17, v21, v25, v29, v18, v22, v26, v30, v19, v23, v27, v31, v1, v0, v3, v2, v1, v0, v3, v2, v1, v0, v3, v2, v1, v0, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // level 2 + vl2re16.v v0, (a5) + addi a5, a5, 8*2*2 + gs_bfu_vv_x8 v16, v24, v17, v25, v18, v26, v19, v27, v20, v28, v21, v29, v22, v30, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v1, v0, v1, v0, v1, v0, v1, v0, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v17, v18, v19, v8, v9, v10, v11, v1, v1 + shuffle_x2 v20, v21, v22, v23, v8, v9, v10, v11, v1, v1 + shuffle_x2 v24, v25, v26, v27, v8, v9, v10, v11, v1, v1 + shuffle_x2 v28, v29, v30, v31, v8, v9, v10, v11, v1, v1 + // level 3 + vl2re16.v v4, (a5) + addi a5, a5, 8*2*2 + gs_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v20, v22, v8, v9, v10, v11, v1, v2 + shuffle_x2 v24, v26, v28, v30, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v19, v21, v23, v8, v9, v10, v11, v1, v2 + barrettRdcX2 v16, v18, v8, v9, a4, t0 + shuffle_x2 v25, v27, v29, v31, v8, v9, v10, v11, v1, v2 + // level 4 + vl2re16.v v4, (a5) + addi a5, a5, 8*2*2 + gs_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + barrettRdc v20, v8, a4, t0 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + lh t3, 0*2(a5) + lh t2, 1*2(a5) + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 5 + // polynomial coefficients will be redirected to v0-v15 + gs_bfu_vx_x8 v0, v8, v1, v9, v2, v10, v3, v11, v4, v12, v5, v13, v6, v14, v7, v15, v16, v20, v24, v28, v17, v21, v25, v29, v18, v22, v26, v30, v19, v23, v27, v31, t2, t3, t2, t3, t2, t3, t2, t3, t2, t3, t2, t3, t2, t3, t2, t3, t0 + barrettRdc v1, v16, a4, t0 + addi a5, a0, (\off*128)*2 + addi a6, a0, (64+\off*128)*2 + vs8r.v v0, (a5) + vs8r.v v8, (a6) +.endm + +.macro intt_rvv_level6 + li a7, 8*8 + addi a6, a1, _ZETA_EXP_INTT_L6*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t2, 0*2(a6) + lh t1, 1*2(a6) + addi a5, a0, 128*2 + // a[0-63] & a[128-191] + vle16.v v16, (a0) + vle16.v v24, (a5) + gs_bfu_vx v16, v24, t1, t2, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + gs_bfu_vx v16, v24, t1, t2, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.globl intt_rvv_vlen128 +.align 2 +intt_rvv_vlen128: + li t0, 3329 + li t1, -3327 + li a4, 20159 + csrwi vxrm, 0 // round-to-nearest-up (add +0.5 LSB) +start: + + li a7, 8*8 + addi a5, a0, (0*128)*2 + vsetvli a7, a7, e16, m8, tu, mu +start_1: + addi a6, a0, (64+0*128)*2 + vle16.v v0, (a5) + vle16.v v8, (a6) + li t3, -10079 + li t2, 1441 // qinv*(mont^2/128) and mont^2/128 + addi a5, a1, _ZETA_EXP_INTT_0TO5_P0_L0*2 + // Through exhaustive testing, it is found that for any 16-bit signed + // number, after using Montgomery modular multiplication to multiply + // the mont^2/128 constant, the coefficient range is [-1999,1999]. Note + // that 1999/3329 is approximately 0.6005. + vmul.vx v16, v0, t3 + vmulh.vx v24, v0, t2 + vmulh.vx v16, v16, t0 + vsub.vv v16, v24, v16 + vmul.vx v24, v8, t3 + vmulh.vx v0, v8, t2 + vmulh.vx v24, v24, t0 + vsub.vv v24, v0, v24 +end_1: + vsetivli a7, 8, e16, m1, tu, mu +start_2: + // level 0 + vl4re16.v v0, (a5) + addi a5, a5, 8*4*2 + vsub.vv v8, v16, v18 + vsub.vv v9, v20, v22 + vsub.vv v10, v24, v26 + vsub.vv v11, v28, v30 + vsub.vv v12, v17, v19 + vsub.vv v13, v21, v23 + vsub.vv v14, v25, v27 + vsub.vv v15, v29, v31 + vadd.vv v16, v16, v18 + vadd.vv v20, v20, v22 + vadd.vv v24, v24, v26 + vadd.vv v28, v28, v30 + vadd.vv v17, v17, v19 + vadd.vv v21, v21, v23 + vadd.vv v25, v25, v27 + vadd.vv v29, v29, v31 + vmul.vv v18, v8, v0 + vmul.vv v22, v9, v1 + vmul.vv v26, v10, v2 + vmul.vv v30, v11, v3 + vmul.vv v19, v12, v0 + vmul.vv v23, v13, v1 + vmul.vv v27, v14, v2 + vmul.vv v31, v15, v3 + vmul.vx v18, v18, t1 + vmul.vx v22, v22, t1 + vmul.vx v26, v26, t1 + vmul.vx v30, v30, t1 + vmul.vx v19, v19, t1 + vmul.vx v23, v23, t1 + vmul.vx v27, v27, t1 + vmul.vx v31, v31, t1 + vmulh.vv v8, v8, v0 + vmulh.vv v9, v9, v1 + vmulh.vv v10, v10, v2 + vmulh.vv v11, v11, v3 + vmulh.vv v12, v12, v0 + vmulh.vv v13, v13, v1 + vmulh.vv v14, v14, v2 + vmulh.vv v15, v15, v3 + vmulh.vx v18, v18, t0 + vmulh.vx v22, v22, t0 + vmulh.vx v26, v26, t0 + vmulh.vx v30, v30, t0 + vmulh.vx v19, v19, t0 + vmulh.vx v23, v23, t0 + vmulh.vx v27, v27, t0 + vmulh.vx v31, v31, t0 + vsub.vv v18, v8, v18 + vsub.vv v22, v9, v22 + vsub.vv v26, v10, v26 + vsub.vv v30, v11, v30 + vsub.vv v19, v12, v19 + vsub.vv v23, v13, v23 + vsub.vv v27, v14, v27 + vsub.vv v31, v15, v31 + // level 1 + vl4re16.v v0, (a5) + addi a5, a5, 8*4*2 + vsub.vv v8, v16, v20 + vsub.vv v9, v24, v28 + vsub.vv v10, v17, v21 + vsub.vv v11, v25, v29 + vsub.vv v12, v18, v22 + vsub.vv v13, v26, v30 + vsub.vv v14, v19, v23 + vsub.vv v15, v27, v31 + vadd.vv v16, v16, v20 + vadd.vv v24, v24, v28 + vadd.vv v17, v17, v21 + vadd.vv v25, v25, v29 + vadd.vv v18, v18, v22 + vadd.vv v26, v26, v30 + vadd.vv v19, v19, v23 + vadd.vv v27, v27, v31 + vmul.vv v20, v8, v0 + vmul.vv v28, v9, v2 + vmul.vv v21, v10, v0 + vmul.vv v29, v11, v2 + vmul.vv v22, v12, v0 + vmul.vv v30, v13, v2 + vmul.vv v23, v14, v0 + vmul.vv v31, v15, v2 + vmulh.vv v8, v8, v1 + vmulh.vv v9, v9, v3 + vmulh.vv v10, v10, v1 + vmulh.vv v11, v11, v3 + vmulh.vv v12, v12, v1 + vmulh.vv v13, v13, v3 + vmulh.vv v14, v14, v1 + vmulh.vv v15, v15, v3 + vmulh.vx v20, v20, t0 + vmulh.vx v28, v28, t0 + vmulh.vx v21, v21, t0 + vmulh.vx v29, v29, t0 + vmulh.vx v22, v22, t0 + vmulh.vx v30, v30, t0 + vmulh.vx v23, v23, t0 + vmulh.vx v31, v31, t0 + vsub.vv v20, v8, v20 + vsub.vv v28, v9, v28 + vsub.vv v21, v10, v21 + vsub.vv v29, v11, v29 + vsub.vv v22, v12, v22 + vsub.vv v30, v13, v30 + vsub.vv v23, v14, v23 + vsub.vv v31, v15, v31 + // level 2 + vl2re16.v v0, (a5) + addi a5, a5, 8*2*2 + vsub.vv v8, v16, v24 + vsub.vv v9, v17, v25 + vsub.vv v10, v18, v26 + vsub.vv v11, v19, v27 + vsub.vv v12, v20, v28 + vsub.vv v13, v21, v29 + vsub.vv v14, v22, v30 + vsub.vv v15, v23, v31 + vadd.vv v16, v16, v24 + vadd.vv v17, v17, v25 + vadd.vv v18, v18, v26 + vadd.vv v19, v19, v27 + vadd.vv v20, v20, v28 + vadd.vv v21, v21, v29 + vadd.vv v22, v22, v30 + vadd.vv v23, v23, v31 + vmul.vv v24, v8, v0 + vmul.vv v25, v9, v0 + vmul.vv v26, v10, v0 + vmul.vv v27, v11, v0 + vmul.vv v28, v12, v0 + vmul.vv v29, v13, v0 + vmul.vv v30, v14, v0 + vmul.vv v31, v15, v0 + vmulh.vv v8, v8, v1 + vmulh.vv v9, v9, v1 + vmulh.vv v10, v10, v1 + vmulh.vv v11, v11, v1 + vmulh.vv v12, v12, v1 + vmulh.vv v13, v13, v1 + vmulh.vv v14, v14, v1 + vmulh.vv v15, v15, v1 + vmulh.vx v24, v24, t0 + vmulh.vx v25, v25, t0 + vmulh.vx v26, v26, t0 + vmulh.vx v27, v27, t0 + vmulh.vx v28, v28, t0 + vmulh.vx v29, v29, t0 + vmulh.vx v30, v30, t0 + vmulh.vx v31, v31, t0 + vsub.vv v24, v8, v24 + vsub.vv v25, v9, v25 + vsub.vv v26, v10, v26 + vsub.vv v27, v11, v27 + vsub.vv v28, v12, v28 + vsub.vv v29, v13, v29 + vsub.vv v30, v14, v30 + vsub.vv v31, v15, v31 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + vrgather.vv v8, v17, v1 + vrgather.vv v9, v16, v1 + vrgather.vv v10, v19, v1 + vrgather.vv v11, v18, v1 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v17, v17, v9, v0 + vmerge.vvm v18, v10, v18, v0 + vmerge.vvm v19, v19, v11, v0 + vrgather.vv v8, v21, v1 + vrgather.vv v9, v20, v1 + vrgather.vv v10, v23, v1 + vrgather.vv v11, v22, v1 + vmerge.vvm v20, v8, v20, v0 + vmerge.vvm v21, v21, v9, v0 + vmerge.vvm v22, v10, v22, v0 + vmerge.vvm v23, v23, v11, v0 + vrgather.vv v8, v25, v1 + vrgather.vv v9, v24, v1 + vrgather.vv v10, v27, v1 + vrgather.vv v11, v26, v1 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v25, v25, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v27, v27, v11, v0 + vrgather.vv v8, v29, v1 + vrgather.vv v9, v28, v1 + vrgather.vv v10, v31, v1 + vrgather.vv v11, v30, v1 + vmerge.vvm v28, v8, v28, v0 + vmerge.vvm v29, v29, v9, v0 + vmerge.vvm v30, v10, v30, v0 + vmerge.vvm v31, v31, v11, v0 + // level 3 + vl2re16.v v4, (a5) + addi a5, a5, 8*2*2 + vsub.vv v8, v16, v17 + vsub.vv v9, v18, v19 + vsub.vv v10, v20, v21 + vsub.vv v11, v22, v23 + vsub.vv v12, v24, v25 + vsub.vv v13, v26, v27 + vsub.vv v14, v28, v29 + vsub.vv v15, v30, v31 + vadd.vv v16, v16, v17 + vadd.vv v18, v18, v19 + vadd.vv v20, v20, v21 + vadd.vv v22, v22, v23 + vadd.vv v24, v24, v25 + vadd.vv v26, v26, v27 + vadd.vv v28, v28, v29 + vadd.vv v30, v30, v31 + vmul.vv v17, v8, v4 + vmul.vv v19, v9, v4 + vmul.vv v21, v10, v4 + vmul.vv v23, v11, v4 + vmul.vv v25, v12, v4 + vmul.vv v27, v13, v4 + vmul.vv v29, v14, v4 + vmul.vv v31, v15, v4 + vmulh.vv v8, v8, v5 + vmulh.vv v9, v9, v5 + vmulh.vv v10, v10, v5 + vmulh.vv v11, v11, v5 + vmulh.vv v12, v12, v5 + vmulh.vv v13, v13, v5 + vmulh.vv v14, v14, v5 + vmulh.vv v15, v15, v5 + vmulh.vx v17, v17, t0 + vmulh.vx v19, v19, t0 + vmulh.vx v21, v21, t0 + vmulh.vx v23, v23, t0 + vmulh.vx v25, v25, t0 + vmulh.vx v27, v27, t0 + vmulh.vx v29, v29, t0 + vmulh.vx v31, v31, t0 + vsub.vv v17, v8, v17 + vsub.vv v19, v9, v19 + vsub.vv v21, v10, v21 + vsub.vv v23, v11, v23 + vsub.vv v25, v12, v25 + vsub.vv v27, v13, v27 + vsub.vv v29, v14, v29 + vsub.vv v31, v15, v31 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + vrgather.vv v8, v18, v1 + vrgather.vv v9, v16, v2 + vrgather.vv v10, v22, v1 + vrgather.vv v11, v20, v2 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v18, v18, v9, v0 + vmerge.vvm v20, v10, v20, v0 + vmerge.vvm v22, v22, v11, v0 + vrgather.vv v8, v26, v1 + vrgather.vv v9, v24, v2 + vrgather.vv v10, v30, v1 + vrgather.vv v11, v28, v2 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v26, v26, v9, v0 + vmerge.vvm v28, v10, v28, v0 + vmerge.vvm v30, v30, v11, v0 + vrgather.vv v8, v19, v1 + vrgather.vv v9, v17, v2 + vrgather.vv v10, v23, v1 + vrgather.vv v11, v21, v2 + vmerge.vvm v17, v8, v17, v0 + vmerge.vvm v19, v19, v9, v0 + vmerge.vvm v21, v10, v21, v0 + vmerge.vvm v23, v23, v11, v0 + vmulh.vx v8, v16, a4 + vmulh.vx v9, v18, a4 + vssra.vi v8, v8, 10 + vssra.vi v9, v9, 10 + vmul.vx v8, v8, t0 + vmul.vx v9, v9, t0 + vsub.vv v16, v16, v8 + vsub.vv v18, v18, v9 + vrgather.vv v8, v27, v1 + vrgather.vv v9, v25, v2 + vrgather.vv v10, v31, v1 + vrgather.vv v11, v29, v2 + vmerge.vvm v25, v8, v25, v0 + vmerge.vvm v27, v27, v9, v0 + vmerge.vvm v29, v10, v29, v0 + vmerge.vvm v31, v31, v11, v0 + // level 4 + vl2re16.v v4, (a5) + addi a5, a5, 8*2*2 + vsub.vv v8, v16, v18 + vsub.vv v9, v20, v22 + vsub.vv v10, v24, v26 + vsub.vv v11, v28, v30 + vsub.vv v12, v17, v19 + vsub.vv v13, v21, v23 + vsub.vv v14, v25, v27 + vsub.vv v15, v29, v31 + vadd.vv v16, v16, v18 + vadd.vv v20, v20, v22 + vadd.vv v24, v24, v26 + vadd.vv v28, v28, v30 + vadd.vv v17, v17, v19 + vadd.vv v21, v21, v23 + vadd.vv v25, v25, v27 + vadd.vv v29, v29, v31 + vmul.vv v18, v8, v4 + vmul.vv v22, v9, v4 + vmul.vv v26, v10, v4 + vmul.vv v30, v11, v4 + vmul.vv v19, v12, v4 + vmul.vv v23, v13, v4 + vmul.vv v27, v14, v4 + vmul.vv v31, v15, v4 + vmulh.vv v8, v8, v5 + vmulh.vv v9, v9, v5 + vmulh.vv v10, v10, v5 + vmulh.vv v11, v11, v5 + vmulh.vv v12, v12, v5 + vmulh.vv v13, v13, v5 + vmulh.vv v14, v14, v5 + vmulh.vv v15, v15, v5 + vmulh.vx v18, v18, t0 + vmulh.vx v22, v22, t0 + vmulh.vx v26, v26, t0 + vmulh.vx v30, v30, t0 + vmulh.vx v19, v19, t0 + vmulh.vx v23, v23, t0 + vmulh.vx v27, v27, t0 + vmulh.vx v31, v31, t0 + vsub.vv v18, v8, v18 + vsub.vv v22, v9, v22 + vsub.vv v26, v10, v26 + vsub.vv v30, v11, v30 + vsub.vv v19, v12, v19 + vsub.vv v23, v13, v23 + vsub.vv v27, v14, v27 + vsub.vv v31, v15, v31 + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + vmulh.vx v8, v20, a4 + vssra.vi v8, v8, 10 + vmul.vx v8, v8, t0 + vsub.vv v20, v20, v8 + vrgather.vv v8, v20, v1 + vrgather.vv v9, v16, v2 + vrgather.vv v10, v28, v1 + vrgather.vv v11, v24, v2 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v20, v20, v9, v0 + vmerge.vvm v24, v10, v24, v0 + vmerge.vvm v28, v28, v11, v0 + vrgather.vv v8, v21, v1 + vrgather.vv v9, v17, v2 + vrgather.vv v10, v29, v1 + vrgather.vv v11, v25, v2 + vmerge.vvm v17, v8, v17, v0 + vmerge.vvm v21, v21, v9, v0 + vmerge.vvm v25, v10, v25, v0 + vmerge.vvm v29, v29, v11, v0 + vrgather.vv v8, v22, v1 + vrgather.vv v9, v18, v2 + vrgather.vv v10, v30, v1 + vrgather.vv v11, v26, v2 + vmerge.vvm v18, v8, v18, v0 + vmerge.vvm v22, v22, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v30, v30, v11, v0 + lh t3, 0*2(a5) + lh t2, 1*2(a5) + vrgather.vv v8, v23, v1 + vrgather.vv v9, v19, v2 + vrgather.vv v10, v31, v1 + vrgather.vv v11, v27, v2 + vmerge.vvm v19, v8, v19, v0 + vmerge.vvm v23, v23, v9, v0 + vmerge.vvm v27, v10, v27, v0 + vmerge.vvm v31, v31, v11, v0 + // level 5 + // polynomial coefficients will be redirected to v0-v15 + vsub.vv v8, v16, v20 + vsub.vv v9, v24, v28 + vsub.vv v10, v17, v21 + vsub.vv v11, v25, v29 + vsub.vv v12, v18, v22 + vsub.vv v13, v26, v30 + vsub.vv v14, v19, v23 + vsub.vv v15, v27, v31 + vadd.vv v0, v16, v20 + vadd.vv v1, v24, v28 + vadd.vv v2, v17, v21 + vadd.vv v3, v25, v29 + vadd.vv v4, v18, v22 + vadd.vv v5, v26, v30 + vadd.vv v6, v19, v23 + vadd.vv v7, v27, v31 + vmul.vx v20, v8, t3 + vmul.vx v28, v9, t3 + vmul.vx v21, v10, t3 + vmul.vx v29, v11, t3 + vmul.vx v22, v12, t3 + vmul.vx v30, v13, t3 + vmul.vx v23, v14, t3 + vmul.vx v31, v15, t3 + vmulh.vx v8, v8, t2 + vmulh.vx v9, v9, t2 + vmulh.vx v10, v10, t2 + vmulh.vx v11, v11, t2 + vmulh.vx v12, v12, t2 + vmulh.vx v13, v13, t2 + vmulh.vx v14, v14, t2 + vmulh.vx v15, v15, t2 + vmulh.vx v20, v20, t0 + vmulh.vx v28, v28, t0 + vmulh.vx v21, v21, t0 + vmulh.vx v29, v29, t0 + vmulh.vx v22, v22, t0 + vmulh.vx v30, v30, t0 + vmulh.vx v23, v23, t0 + vmulh.vx v31, v31, t0 + vsub.vv v8, v8, v20 + vsub.vv v9, v9, v28 + vsub.vv v10, v10, v21 + vsub.vv v11, v11, v29 + vsub.vv v12, v12, v22 + vsub.vv v13, v13, v30 + vsub.vv v14, v14, v23 + vsub.vv v15, v15, v31 + vmulh.vx v16, v1, a4 + vssra.vi v16, v16, 10 + vmul.vx v16, v16, t0 + vsub.vv v1, v1, v16 + addi a5, a0, (0*128)*2 + addi a6, a0, (64+0*128)*2 + vs8r.v v0, (a5) + vs8r.v v8, (a6) + li a7, 8*8 + addi a5, a0, (1*128)*2 +end_2: + vsetvli a7, a7, e16, m8, tu, mu +start_3: + addi a6, a0, (64+1*128)*2 + vle16.v v0, (a5) + vle16.v v8, (a6) + li t3, -10079 + li t2, 1441 // qinv*(mont^2/128) and mont^2/128 + addi a5, a1, _ZETA_EXP_INTT_0TO5_P1_L0*2 + // Through exhaustive testing, it is found that for any 16-bit signed + // number, after using Montgomery modular multiplication to multiply + // the mont^2/128 constant, the coefficient range is [-1999,1999]. Note + // that 1999/3329 is approximately 0.6005. + vmul.vx v16, v0, t3 + vmulh.vx v24, v0, t2 + vmulh.vx v16, v16, t0 + vsub.vv v16, v24, v16 + vmul.vx v24, v8, t3 + vmulh.vx v0, v8, t2 + vmulh.vx v24, v24, t0 + vsub.vv v24, v0, v24 +end_3: + vsetivli a7, 8, e16, m1, tu, mu +start_4: + // level 0 + vl4re16.v v0, (a5) + addi a5, a5, 8*4*2 + vsub.vv v8, v16, v18 + vsub.vv v9, v20, v22 + vsub.vv v10, v24, v26 + vsub.vv v11, v28, v30 + vsub.vv v12, v17, v19 + vsub.vv v13, v21, v23 + vsub.vv v14, v25, v27 + vsub.vv v15, v29, v31 + vadd.vv v16, v16, v18 + vadd.vv v20, v20, v22 + vadd.vv v24, v24, v26 + vadd.vv v28, v28, v30 + vadd.vv v17, v17, v19 + vadd.vv v21, v21, v23 + vadd.vv v25, v25, v27 + vadd.vv v29, v29, v31 + vmul.vv v18, v8, v0 + vmul.vv v22, v9, v1 + vmul.vv v26, v10, v2 + vmul.vv v30, v11, v3 + vmul.vv v19, v12, v0 + vmul.vv v23, v13, v1 + vmul.vv v27, v14, v2 + vmul.vv v31, v15, v3 + vmul.vx v18, v18, t1 + vmul.vx v22, v22, t1 + vmul.vx v26, v26, t1 + vmul.vx v30, v30, t1 + vmul.vx v19, v19, t1 + vmul.vx v23, v23, t1 + vmul.vx v27, v27, t1 + vmul.vx v31, v31, t1 + vmulh.vv v8, v8, v0 + vmulh.vv v9, v9, v1 + vmulh.vv v10, v10, v2 + vmulh.vv v11, v11, v3 + vmulh.vv v12, v12, v0 + vmulh.vv v13, v13, v1 + vmulh.vv v14, v14, v2 + vmulh.vv v15, v15, v3 + vmulh.vx v18, v18, t0 + vmulh.vx v22, v22, t0 + vmulh.vx v26, v26, t0 + vmulh.vx v30, v30, t0 + vmulh.vx v19, v19, t0 + vmulh.vx v23, v23, t0 + vmulh.vx v27, v27, t0 + vmulh.vx v31, v31, t0 + vsub.vv v18, v8, v18 + vsub.vv v22, v9, v22 + vsub.vv v26, v10, v26 + vsub.vv v30, v11, v30 + vsub.vv v19, v12, v19 + vsub.vv v23, v13, v23 + vsub.vv v27, v14, v27 + vsub.vv v31, v15, v31 + // level 1 + vl4re16.v v0, (a5) + addi a5, a5, 8*4*2 + vsub.vv v8, v16, v20 + vsub.vv v9, v24, v28 + vsub.vv v10, v17, v21 + vsub.vv v11, v25, v29 + vsub.vv v12, v18, v22 + vsub.vv v13, v26, v30 + vsub.vv v14, v19, v23 + vsub.vv v15, v27, v31 + vadd.vv v16, v16, v20 + vadd.vv v24, v24, v28 + vadd.vv v17, v17, v21 + vadd.vv v25, v25, v29 + vadd.vv v18, v18, v22 + vadd.vv v26, v26, v30 + vadd.vv v19, v19, v23 + vadd.vv v27, v27, v31 + vmul.vv v20, v8, v0 + vmul.vv v28, v9, v2 + vmul.vv v21, v10, v0 + vmul.vv v29, v11, v2 + vmul.vv v22, v12, v0 + vmul.vv v30, v13, v2 + vmul.vv v23, v14, v0 + vmul.vv v31, v15, v2 + vmulh.vv v8, v8, v1 + vmulh.vv v9, v9, v3 + vmulh.vv v10, v10, v1 + vmulh.vv v11, v11, v3 + vmulh.vv v12, v12, v1 + vmulh.vv v13, v13, v3 + vmulh.vv v14, v14, v1 + vmulh.vv v15, v15, v3 + vmulh.vx v20, v20, t0 + vmulh.vx v28, v28, t0 + vmulh.vx v21, v21, t0 + vmulh.vx v29, v29, t0 + vmulh.vx v22, v22, t0 + vmulh.vx v30, v30, t0 + vmulh.vx v23, v23, t0 + vmulh.vx v31, v31, t0 + vsub.vv v20, v8, v20 + vsub.vv v28, v9, v28 + vsub.vv v21, v10, v21 + vsub.vv v29, v11, v29 + vsub.vv v22, v12, v22 + vsub.vv v30, v13, v30 + vsub.vv v23, v14, v23 + vsub.vv v31, v15, v31 + // level 2 + vl2re16.v v0, (a5) + addi a5, a5, 8*2*2 + vsub.vv v8, v16, v24 + vsub.vv v9, v17, v25 + vsub.vv v10, v18, v26 + vsub.vv v11, v19, v27 + vsub.vv v12, v20, v28 + vsub.vv v13, v21, v29 + vsub.vv v14, v22, v30 + vsub.vv v15, v23, v31 + vadd.vv v16, v16, v24 + vadd.vv v17, v17, v25 + vadd.vv v18, v18, v26 + vadd.vv v19, v19, v27 + vadd.vv v20, v20, v28 + vadd.vv v21, v21, v29 + vadd.vv v22, v22, v30 + vadd.vv v23, v23, v31 + vmul.vv v24, v8, v0 + vmul.vv v25, v9, v0 + vmul.vv v26, v10, v0 + vmul.vv v27, v11, v0 + vmul.vv v28, v12, v0 + vmul.vv v29, v13, v0 + vmul.vv v30, v14, v0 + vmul.vv v31, v15, v0 + vmulh.vv v8, v8, v1 + vmulh.vv v9, v9, v1 + vmulh.vv v10, v10, v1 + vmulh.vv v11, v11, v1 + vmulh.vv v12, v12, v1 + vmulh.vv v13, v13, v1 + vmulh.vv v14, v14, v1 + vmulh.vv v15, v15, v1 + vmulh.vx v24, v24, t0 + vmulh.vx v25, v25, t0 + vmulh.vx v26, v26, t0 + vmulh.vx v27, v27, t0 + vmulh.vx v28, v28, t0 + vmulh.vx v29, v29, t0 + vmulh.vx v30, v30, t0 + vmulh.vx v31, v31, t0 + vsub.vv v24, v8, v24 + vsub.vv v25, v9, v25 + vsub.vv v26, v10, v26 + vsub.vv v27, v11, v27 + vsub.vv v28, v12, v28 + vsub.vv v29, v13, v29 + vsub.vv v30, v14, v30 + vsub.vv v31, v15, v31 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + vrgather.vv v8, v17, v1 + vrgather.vv v9, v16, v1 + vrgather.vv v10, v19, v1 + vrgather.vv v11, v18, v1 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v17, v17, v9, v0 + vmerge.vvm v18, v10, v18, v0 + vmerge.vvm v19, v19, v11, v0 + vrgather.vv v8, v21, v1 + vrgather.vv v9, v20, v1 + vrgather.vv v10, v23, v1 + vrgather.vv v11, v22, v1 + vmerge.vvm v20, v8, v20, v0 + vmerge.vvm v21, v21, v9, v0 + vmerge.vvm v22, v10, v22, v0 + vmerge.vvm v23, v23, v11, v0 + vrgather.vv v8, v25, v1 + vrgather.vv v9, v24, v1 + vrgather.vv v10, v27, v1 + vrgather.vv v11, v26, v1 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v25, v25, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v27, v27, v11, v0 + vrgather.vv v8, v29, v1 + vrgather.vv v9, v28, v1 + vrgather.vv v10, v31, v1 + vrgather.vv v11, v30, v1 + vmerge.vvm v28, v8, v28, v0 + vmerge.vvm v29, v29, v9, v0 + vmerge.vvm v30, v10, v30, v0 + vmerge.vvm v31, v31, v11, v0 + // level 3 + vl2re16.v v4, (a5) + addi a5, a5, 8*2*2 + vsub.vv v8, v16, v17 + vsub.vv v9, v18, v19 + vsub.vv v10, v20, v21 + vsub.vv v11, v22, v23 + vsub.vv v12, v24, v25 + vsub.vv v13, v26, v27 + vsub.vv v14, v28, v29 + vsub.vv v15, v30, v31 + vadd.vv v16, v16, v17 + vadd.vv v18, v18, v19 + vadd.vv v20, v20, v21 + vadd.vv v22, v22, v23 + vadd.vv v24, v24, v25 + vadd.vv v26, v26, v27 + vadd.vv v28, v28, v29 + vadd.vv v30, v30, v31 + vmul.vv v17, v8, v4 + vmul.vv v19, v9, v4 + vmul.vv v21, v10, v4 + vmul.vv v23, v11, v4 + vmul.vv v25, v12, v4 + vmul.vv v27, v13, v4 + vmul.vv v29, v14, v4 + vmul.vv v31, v15, v4 + vmulh.vv v8, v8, v5 + vmulh.vv v9, v9, v5 + vmulh.vv v10, v10, v5 + vmulh.vv v11, v11, v5 + vmulh.vv v12, v12, v5 + vmulh.vv v13, v13, v5 + vmulh.vv v14, v14, v5 + vmulh.vv v15, v15, v5 + vmulh.vx v17, v17, t0 + vmulh.vx v19, v19, t0 + vmulh.vx v21, v21, t0 + vmulh.vx v23, v23, t0 + vmulh.vx v25, v25, t0 + vmulh.vx v27, v27, t0 + vmulh.vx v29, v29, t0 + vmulh.vx v31, v31, t0 + vsub.vv v17, v8, v17 + vsub.vv v19, v9, v19 + vsub.vv v21, v10, v21 + vsub.vv v23, v11, v23 + vsub.vv v25, v12, v25 + vsub.vv v27, v13, v27 + vsub.vv v29, v14, v29 + vsub.vv v31, v15, v31 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + vrgather.vv v8, v18, v1 + vrgather.vv v9, v16, v2 + vrgather.vv v10, v22, v1 + vrgather.vv v11, v20, v2 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v18, v18, v9, v0 + vmerge.vvm v20, v10, v20, v0 + vmerge.vvm v22, v22, v11, v0 + vrgather.vv v8, v26, v1 + vrgather.vv v9, v24, v2 + vrgather.vv v10, v30, v1 + vrgather.vv v11, v28, v2 + vmerge.vvm v24, v8, v24, v0 + vmerge.vvm v26, v26, v9, v0 + vmerge.vvm v28, v10, v28, v0 + vmerge.vvm v30, v30, v11, v0 + vrgather.vv v8, v19, v1 + vrgather.vv v9, v17, v2 + vrgather.vv v10, v23, v1 + vrgather.vv v11, v21, v2 + vmerge.vvm v17, v8, v17, v0 + vmerge.vvm v19, v19, v9, v0 + vmerge.vvm v21, v10, v21, v0 + vmerge.vvm v23, v23, v11, v0 + vmulh.vx v8, v16, a4 + vmulh.vx v9, v18, a4 + vssra.vi v8, v8, 10 + vssra.vi v9, v9, 10 + vmul.vx v8, v8, t0 + vmul.vx v9, v9, t0 + vsub.vv v16, v16, v8 + vsub.vv v18, v18, v9 + vrgather.vv v8, v27, v1 + vrgather.vv v9, v25, v2 + vrgather.vv v10, v31, v1 + vrgather.vv v11, v29, v2 + vmerge.vvm v25, v8, v25, v0 + vmerge.vvm v27, v27, v9, v0 + vmerge.vvm v29, v10, v29, v0 + vmerge.vvm v31, v31, v11, v0 + // level 4 + vl2re16.v v4, (a5) + addi a5, a5, 8*2*2 + vsub.vv v8, v16, v18 + vsub.vv v9, v20, v22 + vsub.vv v10, v24, v26 + vsub.vv v11, v28, v30 + vsub.vv v12, v17, v19 + vsub.vv v13, v21, v23 + vsub.vv v14, v25, v27 + vsub.vv v15, v29, v31 + vadd.vv v16, v16, v18 + vadd.vv v20, v20, v22 + vadd.vv v24, v24, v26 + vadd.vv v28, v28, v30 + vadd.vv v17, v17, v19 + vadd.vv v21, v21, v23 + vadd.vv v25, v25, v27 + vadd.vv v29, v29, v31 + vmul.vv v18, v8, v4 + vmul.vv v22, v9, v4 + vmul.vv v26, v10, v4 + vmul.vv v30, v11, v4 + vmul.vv v19, v12, v4 + vmul.vv v23, v13, v4 + vmul.vv v27, v14, v4 + vmul.vv v31, v15, v4 + vmulh.vv v8, v8, v5 + vmulh.vv v9, v9, v5 + vmulh.vv v10, v10, v5 + vmulh.vv v11, v11, v5 + vmulh.vv v12, v12, v5 + vmulh.vv v13, v13, v5 + vmulh.vv v14, v14, v5 + vmulh.vv v15, v15, v5 + vmulh.vx v18, v18, t0 + vmulh.vx v22, v22, t0 + vmulh.vx v26, v26, t0 + vmulh.vx v30, v30, t0 + vmulh.vx v19, v19, t0 + vmulh.vx v23, v23, t0 + vmulh.vx v27, v27, t0 + vmulh.vx v31, v31, t0 + vsub.vv v18, v8, v18 + vsub.vv v22, v9, v22 + vsub.vv v26, v10, v26 + vsub.vv v30, v11, v30 + vsub.vv v19, v12, v19 + vsub.vv v23, v13, v23 + vsub.vv v27, v14, v27 + vsub.vv v31, v15, v31 + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + vmulh.vx v8, v20, a4 + vssra.vi v8, v8, 10 + vmul.vx v8, v8, t0 + vsub.vv v20, v20, v8 + vrgather.vv v8, v20, v1 + vrgather.vv v9, v16, v2 + vrgather.vv v10, v28, v1 + vrgather.vv v11, v24, v2 + vmerge.vvm v16, v8, v16, v0 + vmerge.vvm v20, v20, v9, v0 + vmerge.vvm v24, v10, v24, v0 + vmerge.vvm v28, v28, v11, v0 + vrgather.vv v8, v21, v1 + vrgather.vv v9, v17, v2 + vrgather.vv v10, v29, v1 + vrgather.vv v11, v25, v2 + vmerge.vvm v17, v8, v17, v0 + vmerge.vvm v21, v21, v9, v0 + vmerge.vvm v25, v10, v25, v0 + vmerge.vvm v29, v29, v11, v0 + vrgather.vv v8, v22, v1 + vrgather.vv v9, v18, v2 + vrgather.vv v10, v30, v1 + vrgather.vv v11, v26, v2 + vmerge.vvm v18, v8, v18, v0 + vmerge.vvm v22, v22, v9, v0 + vmerge.vvm v26, v10, v26, v0 + vmerge.vvm v30, v30, v11, v0 + lh t3, 0*2(a5) + lh t2, 1*2(a5) + vrgather.vv v8, v23, v1 + vrgather.vv v9, v19, v2 + vrgather.vv v10, v31, v1 + vrgather.vv v11, v27, v2 + vmerge.vvm v19, v8, v19, v0 + vmerge.vvm v23, v23, v9, v0 + vmerge.vvm v27, v10, v27, v0 + vmerge.vvm v31, v31, v11, v0 + // level 5 + // polynomial coefficients will be redirected to v0-v15 + vsub.vv v8, v16, v20 + vsub.vv v9, v24, v28 + vsub.vv v10, v17, v21 + vsub.vv v11, v25, v29 + vsub.vv v12, v18, v22 + vsub.vv v13, v26, v30 + vsub.vv v14, v19, v23 + vsub.vv v15, v27, v31 + vadd.vv v0, v16, v20 + vadd.vv v1, v24, v28 + vadd.vv v2, v17, v21 + vadd.vv v3, v25, v29 + vadd.vv v4, v18, v22 + vadd.vv v5, v26, v30 + vadd.vv v6, v19, v23 + vadd.vv v7, v27, v31 + vmul.vx v20, v8, t3 + vmul.vx v28, v9, t3 + vmul.vx v21, v10, t3 + vmul.vx v29, v11, t3 + vmul.vx v22, v12, t3 + vmul.vx v30, v13, t3 + vmul.vx v23, v14, t3 + vmul.vx v31, v15, t3 + vmulh.vx v8, v8, t2 + vmulh.vx v9, v9, t2 + vmulh.vx v10, v10, t2 + vmulh.vx v11, v11, t2 + vmulh.vx v12, v12, t2 + vmulh.vx v13, v13, t2 + vmulh.vx v14, v14, t2 + vmulh.vx v15, v15, t2 + vmulh.vx v20, v20, t0 + vmulh.vx v28, v28, t0 + vmulh.vx v21, v21, t0 + vmulh.vx v29, v29, t0 + vmulh.vx v22, v22, t0 + vmulh.vx v30, v30, t0 + vmulh.vx v23, v23, t0 + vmulh.vx v31, v31, t0 + vsub.vv v8, v8, v20 + vsub.vv v9, v9, v28 + vsub.vv v10, v10, v21 + vsub.vv v11, v11, v29 + vsub.vv v12, v12, v22 + vsub.vv v13, v13, v30 + vsub.vv v14, v14, v23 + vsub.vv v15, v15, v31 + vmulh.vx v16, v1, a4 + vssra.vi v16, v16, 10 + vmul.vx v16, v16, t0 + vsub.vv v1, v1, v16 + addi a5, a0, (1*128)*2 + addi a6, a0, (64+1*128)*2 + vs8r.v v0, (a5) + vs8r.v v8, (a6) + li a7, 8*8 + addi a6, a1, _ZETA_EXP_INTT_L6*2 +end_4: + vsetvli a7, a7, e16, m8, tu, mu +start_5: + lh t2, 0*2(a6) + lh t1, 1*2(a6) + addi a5, a0, 128*2 + // a[0-63] & a[128-191] + vle16.v v16, (a0) + vle16.v v24, (a5) + vsub.vv v0, v16, v24 + vadd.vv v16, v16, v24 + vmul.vx v24, v0, t2 + vmulh.vx v8, v0, t1 + vmulh.vx v24, v24, t0 + vsub.vv v24, v8, v24 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + vsub.vv v0, v16, v24 + vadd.vv v16, v16, v24 + vmul.vx v24, v0, t2 + vmulh.vx v8, v0, t1 + vmulh.vx v24, v24, t0 + vsub.vv v24, v8, v24 + vse16.v v16, (a4) + vse16.v v24, (a5) +end_5: + +ret diff --git a/examples/naive/riscv/ntt_kyber/kyber_normal2ntt_order_rvv_vlen128.s b/examples/naive/riscv/ntt_kyber/kyber_normal2ntt_order_rvv_vlen128.s new file mode 100644 index 000000000..53c5c4484 --- /dev/null +++ b/examples/naive/riscv/ntt_kyber/kyber_normal2ntt_order_rvv_vlen128.s @@ -0,0 +1,82 @@ +/ shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.globl normal2ntt_order_rvv_vlen128 +.align 2 +normal2ntt_order_rvv_vlen128: + li a2, 2 +normal2ntt_order_rvv_vlen128_loop: + addi a5, a0, 64*2 + vsetivli a7, 8, e16, m1, tu, mu + vl8re16.v v16, (a0) + vl8re16.v v24, (a5) + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + addi a5, a0, 4*8*2 + shuffle_o_x2 v8, v9, v10, v11, v16, v18, v20, v22, v1, v1 + vs4r.v v8, (a0) + addi a0, a0, 8*8*2 + shuffle_o_x2 v12, v13, v14, v15, v24, v26, v28, v30, v1, v1 + vs4r.v v12, (a5) + addi a5, a5, 8*8*2 + shuffle_o_x2 v8, v9, v10, v11, v17, v19, v21, v23, v1, v1 + vs4r.v v8, (a0) + addi a0, a0, 8*8*2 + shuffle_o_x2 v12, v13, v14, v15, v25, v27, v29, v31, v1, v1 + vs4r.v v12, (a5) + addi a2, a2, -1 + bnez a2, normal2ntt_order_rvv_vlen128_loop +ret \ No newline at end of file diff --git a/examples/naive/riscv/ntt_kyber/kyber_ntt2normal_order_rvv_vlen128.s b/examples/naive/riscv/ntt_kyber/kyber_ntt2normal_order_rvv_vlen128.s new file mode 100644 index 000000000..51c2f4756 --- /dev/null +++ b/examples/naive/riscv/ntt_kyber/kyber_ntt2normal_order_rvv_vlen128.s @@ -0,0 +1,82 @@ +/ shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.globl ntt2normal_order_rvv_vlen128 +.align 2 +ntt2normal_order_rvv_vlen128: + li a2, 2 +ntt2normal_order_rvv_vlen128_loop: + addi a5, a0, 64*2 + vsetivli a7, 8, e16, m1, tu, mu + vl8re16.v v16, (a0) + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v17, v18, v19, v8, v9, v10, v11, v1, v1 + vl8re16.v v24, (a5) + shuffle_x2 v20, v21, v22, v23, v8, v9, v10, v11, v1, v1 + shuffle_x2 v24, v25, v26, v27, v8, v9, v10, v11, v1, v1 + shuffle_x2 v28, v29, v30, v31, v8, v9, v10, v11, v1, v1 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v20, v22, v8, v9, v10, v11, v1, v2 + shuffle_x2 v24, v26, v28, v30, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v19, v21, v23, v8, v9, v10, v11, v1, v2 + shuffle_x2 v25, v27, v29, v31, v8, v9, v10, v11, v1, v2 + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + addi a5, a0, 8*8*2 + shuffle_o_x2 v8, v12, v9, v13, v16, v20, v24, v28, v1, v2 + shuffle_o_x2 v10, v14, v11, v15, v17, v21, v25, v29, v1, v2 + vs4r.v v8, (a0) + vs4r.v v12, (a5) + addi a0, a0, 4*8*2 + addi a5, a5, 4*8*2 + shuffle_o_x2 v8, v12, v9, v13, v18, v22, v26, v30, v1, v2 + shuffle_o_x2 v10, v14, v11, v15, v19, v23, v27, v31, v1, v2 + vs4r.v v8, (a0) + vs4r.v v12, (a5) + addi a2, a2, -1 + addi a0, a5, 4*8*2 + bnez a2, ntt2normal_order_rvv_vlen128_loop +ret \ No newline at end of file diff --git a/examples/naive/riscv/ntt_kyber/ntt_kyber_dualissue_l32_plant_rv64im.s b/examples/naive/riscv/ntt_kyber/ntt_kyber_dualissue_l32_plant_rv64im.s new file mode 100644 index 000000000..46f79419c --- /dev/null +++ b/examples/naive/riscv/ntt_kyber/ntt_kyber_dualissue_l32_plant_rv64im.s @@ -0,0 +1,1915 @@ +# Plantard based NTT implementation with l=32 + +.macro load_coeffs poly, len, wordLen + lh s0, \len*\wordLen*0(\poly) + lh s1, \len*\wordLen*1(\poly) + lh s2, \len*\wordLen*2(\poly) + lh s3, \len*\wordLen*3(\poly) + lh s4, \len*\wordLen*4(\poly) + lh s5, \len*\wordLen*5(\poly) + lh s6, \len*\wordLen*6(\poly) + lh s7, \len*\wordLen*7(\poly) + lh s8, \len*\wordLen*8(\poly) + lh s9, \len*\wordLen*9(\poly) + lh s10, \len*\wordLen*10(\poly) + lh s11, \len*\wordLen*11(\poly) + lh a2, \len*\wordLen*12(\poly) + lh a3, \len*\wordLen*13(\poly) + lh a4, \len*\wordLen*14(\poly) + lh a5, \len*\wordLen*15(\poly) +.endm + +.macro store_coeffs poly, len, wordLen + sh s0, \len*\wordLen*0(\poly) + sh s1, \len*\wordLen*1(\poly) + sh s2, \len*\wordLen*2(\poly) + sh s3, \len*\wordLen*3(\poly) + sh s4, \len*\wordLen*4(\poly) + sh s5, \len*\wordLen*5(\poly) + sh s6, \len*\wordLen*6(\poly) + sh s7, \len*\wordLen*7(\poly) + sh s8, \len*\wordLen*8(\poly) + sh s9, \len*\wordLen*9(\poly) + sh s10, \len*\wordLen*10(\poly) + sh s11, \len*\wordLen*11(\poly) + sh a2, \len*\wordLen*12(\poly) + sh a3, \len*\wordLen*13(\poly) + sh a4, \len*\wordLen*14(\poly) + sh a5, \len*\wordLen*15(\poly) +.endm + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +// a <- a*b*(-2^{-64}) mod+- q +// q32: q<<32; bqinv: b*qinv +.macro plant_mul_const_inplace q32, bqinv, a + mul \a, \a, \bqinv + srai \a, \a, 32 + addi \a, \a, 8 + mulh \a, \a, \q32 +.endm + +.macro plant_mul_const_inplace_x2 q32, zeta, a_0, a_1 + mul \a_0, \a_0, \zeta + mul \a_1, \a_1, \zeta + srai \a_0, \a_0, 32 + srai \a_1, \a_1, 32 + addi \a_0, \a_0, 8 + addi \a_1, \a_1, 8 + mulh \a_0, \a_0, \q32 + mulh \a_1, \a_1, \q32 +.endm + +.macro plant_mul_const_inplace_x4 q32, \ + zeta_0, zeta_1, zeta_2, zeta_3, \ + a_0, a_1, a_2, a_3 + mul \a_0, \a_0, \zeta_0 + mul \a_1, \a_1, \zeta_1 + mul \a_2, \a_2, \zeta_2 + mul \a_3, \a_3, \zeta_3 + srai \a_0, \a_0, 32 + srai \a_1, \a_1, 32 + srai \a_2, \a_2, 32 + srai \a_3, \a_3, 32 + addi \a_0, \a_0, 8 + addi \a_1, \a_1, 8 + addi \a_2, \a_2, 8 + addi \a_3, \a_3, 8 + mulh \a_0, \a_0, \q32 + mulh \a_1, \a_1, \q32 + mulh \a_2, \a_2, \q32 + mulh \a_3, \a_3, \q32 +.endm + +// r <- a*b*(-2^{-64}) mod+- q +// q32: q<<32; bqinv: b*qinv +.macro plant_mul_const q32, bqinv, a, r + mul \r, \a, \bqinv + srai \r, \r, 32 + addi \r, \r, 8 + mulh \r, \r, \q32 +.endm + +.macro plant_mul_const_x2 q32, zeta_0, zeta_1, a_0, a_1, r_0, r_1 + mul \r_0, \a_0, \zeta_0 + mul \r_1, \a_1, \zeta_1 + srai \r_0, \r_0, 32 + srai \r_1, \r_1, 32 + addi \r_0, \r_0, 8 + addi \r_1, \r_1, 8 + mulh \r_0, \r_0, \q32 + mulh \r_1, \r_1, \q32 +.endm + +.macro plant_mul_const_x4 \ + q32, zeta_0, zeta_1,\ + zeta_2, zeta_3, \ + a_0, a_1, a_2, a_3, \ + r_0, r_1, r_2, r_3 + mul \r_0, \a_0, \zeta_0 + mul \r_1, \a_1, \zeta_1 + mul \r_2, \a_2, \zeta_2 + mul \r_3, \a_3, \zeta_3 + srai \r_0, \r_0, 32 + srai \r_1, \r_1, 32 + srai \r_2, \r_2, 32 + srai \r_3, \r_3, 32 + addi \r_0, \r_0, 8 + addi \r_1, \r_1, 8 + addi \r_2, \r_2, 8 + addi \r_3, \r_3, 8 + mulh \r_0, \r_0, \q32 + mulh \r_1, \r_1, \q32 + mulh \r_2, \r_2, \q32 + mulh \r_3, \r_3, \q32 +.endm + +// each layer increases coefficients by 0.5q; In ct_butterfly, twiddle and tmp can be reused because each twiddle is only used once. The gs_butterfly cannot. +.macro ct_butterfly coeff0, coeff1, twiddle, q, tmp + plant_mul_const \q, \twiddle, \coeff1, \tmp + sub \coeff1, \coeff0, \tmp + add \coeff0, \coeff0, \tmp +.endm + +.macro ct_bfu_x2 \ + a_0_0, a_0_1, a_1_0, a_1_1, \ + zeta_0, zeta_1, \ + q32, \ + t_0, t_1 + mul \t_0, \a_0_1, \zeta_0 + mul \t_1, \a_1_1, \zeta_1 + srai \t_0, \t_0, 32 + srai \t_1, \t_1, 32 + addi \t_0, \t_0, 8 + addi \t_1, \t_1, 8 + mulh \t_0, \t_0, \q32 + mulh \t_1, \t_1, \q32 + sub \a_0_1, \a_0_0, \t_0 + sub \a_1_1, \a_1_0, \t_1 + add \a_0_0, \a_0_0, \t_0 + add \a_1_0, \a_1_0, \t_1 +.endm + +.macro ct_bfu_x8 \ + a_0_0, a_0_1, a_1_0, a_1_1, \ + a_2_0, a_2_1, a_3_0, a_3_1, \ + a_4_0, a_4_1, a_5_0, a_5_1, \ + a_6_0, a_6_1, a_7_0, a_7_1, \ + zeta_0, zeta_1, \ + zeta_2, zeta_3, \ + zeta_4, zeta_5, \ + zeta_6, zeta_7, \ + q32, \ + t_0, t_1, t_2, t_3 + mul \t_0, \a_0_1, \zeta_0 + mul \t_1, \a_1_1, \zeta_1 + mul \t_2, \a_2_1, \zeta_2 + mul \t_3, \a_3_1, \zeta_3 + srai \t_0, \t_0, 32 + srai \t_1, \t_1, 32 + addi \t_0, \t_0, 8 + addi \t_1, \t_1, 8 + mulh \t_0, \t_0, \q32 + mulh \t_1, \t_1, \q32 + srai \t_2, \t_2, 32 + srai \t_3, \t_3, 32 + addi \t_2, \t_2, 8 + addi \t_3, \t_3, 8 + mulh \t_2, \t_2, \q32 + mulh \t_3, \t_3, \q32 + sub \a_0_1, \a_0_0, \t_0 + sub \a_1_1, \a_1_0, \t_1 + add \a_0_0, \a_0_0, \t_0 + add \a_1_0, \a_1_0, \t_1 + mul \t_0, \a_4_1, \zeta_4 + mul \t_1, \a_5_1, \zeta_5 + sub \a_2_1, \a_2_0, \t_2 + sub \a_3_1, \a_3_0, \t_3 + add \a_2_0, \a_2_0, \t_2 + add \a_3_0, \a_3_0, \t_3 + mul \t_2, \a_6_1, \zeta_6 + mul \t_3, \a_7_1, \zeta_7 + srai \t_0, \t_0, 32 + srai \t_1, \t_1, 32 + addi \t_0, \t_0, 8 + addi \t_1, \t_1, 8 + mulh \t_0, \t_0, \q32 + mulh \t_1, \t_1, \q32 + srai \t_2, \t_2, 32 + srai \t_3, \t_3, 32 + addi \t_2, \t_2, 8 + addi \t_3, \t_3, 8 + mulh \t_2, \t_2, \q32 + mulh \t_3, \t_3, \q32 + sub \a_4_1, \a_4_0, \t_0 + sub \a_5_1, \a_5_0, \t_1 + add \a_4_0, \a_4_0, \t_0 + add \a_5_0, \a_5_0, \t_1 + sub \a_6_1, \a_6_0, \t_2 + sub \a_7_1, \a_7_0, \t_3 + add \a_6_0, \a_6_0, \t_2 + add \a_7_0, \a_7_0, \t_3 +.endm + +.macro ct_bfu_x8_loadzetas \ + a_0_0, a_0_1, a_1_0, a_1_1, \ + a_2_0, a_2_1, a_3_0, a_3_1, \ + a_4_0, a_4_1, a_5_0, a_5_1, \ + a_6_0, a_6_1, a_7_0, a_7_1, \ + zeta_0, zeta_1, \ + zeta_2, zeta_3, \ + zeta_4, zeta_5, \ + zeta_6, zeta_7, \ + q32, \ + t_0, t_1, t_2, t_3 + ld \t_0, \zeta_0(a1) + ld \t_1, \zeta_1(a1) + ld \t_2, \zeta_2(a1) + ld \t_3, \zeta_3(a1) + mul \t_0, \a_0_1, \t_0 + mul \t_1, \a_1_1, \t_1 + mul \t_2, \a_2_1, \t_2 + mul \t_3, \a_3_1, \t_3 + srai \t_0, \t_0, 32 + srai \t_1, \t_1, 32 + addi \t_0, \t_0, 8 + addi \t_1, \t_1, 8 + mulh \t_0, \t_0, \q32 + mulh \t_1, \t_1, \q32 + srai \t_2, \t_2, 32 + srai \t_3, \t_3, 32 + addi \t_2, \t_2, 8 + addi \t_3, \t_3, 8 + mulh \t_2, \t_2, \q32 + mulh \t_3, \t_3, \q32 + sub \a_0_1, \a_0_0, \t_0 + sub \a_1_1, \a_1_0, \t_1 + add \a_0_0, \a_0_0, \t_0 + ld \t_0, \zeta_4(a1) + add \a_1_0, \a_1_0, \t_1 + ld \t_1, \zeta_5(a1) + mul \t_0, \a_4_1, \t_0 + mul \t_1, \a_5_1, \t_1 + sub \a_2_1, \a_2_0, \t_2 + sub \a_3_1, \a_3_0, \t_3 + add \a_2_0, \a_2_0, \t_2 + ld \t_2, \zeta_6(a1) + add \a_3_0, \a_3_0, \t_3 + ld \t_3, \zeta_7(a1) + mul \t_2, \a_6_1, \t_2 + mul \t_3, \a_7_1, \t_3 + srai \t_0, \t_0, 32 + srai \t_1, \t_1, 32 + addi \t_0, \t_0, 8 + addi \t_1, \t_1, 8 + mulh \t_0, \t_0, \q32 + mulh \t_1, \t_1, \q32 + srai \t_2, \t_2, 32 + srai \t_3, \t_3, 32 + addi \t_2, \t_2, 8 + addi \t_3, \t_3, 8 + mulh \t_2, \t_2, \q32 + mulh \t_3, \t_3, \q32 + sub \a_4_1, \a_4_0, \t_0 + sub \a_5_1, \a_5_0, \t_1 + add \a_4_0, \a_4_0, \t_0 + add \a_5_0, \a_5_0, \t_1 + sub \a_6_1, \a_6_0, \t_2 + sub \a_7_1, \a_7_0, \t_3 + add \a_6_0, \a_6_0, \t_2 + add \a_7_0, \a_7_0, \t_3 +.endm + +.macro gs_bfu a_0, a_1, zeta, q32, tmp + sub \tmp, \a_0, \a_1 + add \a_0, \a_0, \a_1 + mul \a_1, \tmp, \zeta + srai \a_1, \a_1, 32 + addi \a_1, \a_1, 8 + mulh \a_1, \a_1, \q32 +.endm + +.macro gs_bfu_x2 a_0_0, a_0_1, a_1_0, a_1_1, \ + zeta_0, zeta_1, q32, t_0, t_1 + sub \t_0, \a_0_0, \a_0_1 + sub \t_1, \a_1_0, \a_1_1 + add \a_0_0, \a_0_0, \a_0_1 + add \a_1_0, \a_1_0, \a_1_1 + mul \a_0_1, \t_0, \zeta_0 + mul \a_1_1, \t_1, \zeta_1 + srai \a_0_1, \a_0_1, 32 + srai \a_1_1, \a_1_1, 32 + addi \a_0_1, \a_0_1, 8 + addi \a_1_1, \a_1_1, 8 + mulh \a_0_1, \a_0_1, \q32 + mulh \a_1_1, \a_1_1, \q32 +.endm + +.macro gs_bfu_x8 \ + a_0_0, a_0_1, a_1_0, a_1_1, \ + a_2_0, a_2_1, a_3_0, a_3_1, \ + a_4_0, a_4_1, a_5_0, a_5_1, \ + a_6_0, a_6_1, a_7_0, a_7_1, \ + zeta_0, zeta_1, \ + zeta_2, zeta_3, \ + zeta_4, zeta_5, \ + zeta_6, zeta_7, \ + q32, t_0, t_1, t_2, t_3 + sub \t_0, \a_0_0, \a_0_1 + sub \t_1, \a_1_0, \a_1_1 + add \a_0_0, \a_0_0, \a_0_1 + add \a_1_0, \a_1_0, \a_1_1 + mul \a_0_1, \t_0, \zeta_0 + mul \a_1_1, \t_1, \zeta_1 + sub \t_2, \a_2_0, \a_2_1 + sub \t_3, \a_3_0, \a_3_1 + add \a_2_0, \a_2_0, \a_2_1 + add \a_3_0, \a_3_0, \a_3_1 + mul \a_2_1, \t_2, \zeta_2 + mul \a_3_1, \t_3, \zeta_3 + srai \a_0_1, \a_0_1, 32 + srai \a_1_1, \a_1_1, 32 + addi \a_0_1, \a_0_1, 8 + addi \a_1_1, \a_1_1, 8 + mulh \a_0_1, \a_0_1, \q32 + mulh \a_1_1, \a_1_1, \q32 + srai \a_2_1, \a_2_1, 32 + srai \a_3_1, \a_3_1, 32 + addi \a_2_1, \a_2_1, 8 + addi \a_3_1, \a_3_1, 8 + mulh \a_2_1, \a_2_1, \q32 + mulh \a_3_1, \a_3_1, \q32 + sub \t_0, \a_4_0, \a_4_1 + sub \t_1, \a_5_0, \a_5_1 + add \a_4_0, \a_4_0, \a_4_1 + add \a_5_0, \a_5_0, \a_5_1 + mul \a_4_1, \t_0, \zeta_4 + mul \a_5_1, \t_1, \zeta_5 + sub \t_2, \a_6_0, \a_6_1 + sub \t_3, \a_7_0, \a_7_1 + add \a_6_0, \a_6_0, \a_6_1 + add \a_7_0, \a_7_0, \a_7_1 + mul \a_6_1, \t_2, \zeta_6 + mul \a_7_1, \t_3, \zeta_7 + srai \a_4_1, \a_4_1, 32 + srai \a_5_1, \a_5_1, 32 + addi \a_4_1, \a_4_1, 8 + addi \a_5_1, \a_5_1, 8 + mulh \a_4_1, \a_4_1, \q32 + mulh \a_5_1, \a_5_1, \q32 + srai \a_6_1, \a_6_1, 32 + srai \a_7_1, \a_7_1, 32 + addi \a_6_1, \a_6_1, 8 + addi \a_7_1, \a_7_1, 8 + mulh \a_6_1, \a_6_1, \q32 + mulh \a_7_1, \a_7_1, \q32 +.endm + +.macro gs_bfu_x8_load_4zetas \ + a_0_0, a_0_1, a_1_0, a_1_1, \ + a_2_0, a_2_1, a_3_0, a_3_1, \ + a_4_0, a_4_1, a_5_0, a_5_1, \ + a_6_0, a_6_1, a_7_0, a_7_1, \ + zeta_0, zeta_1, \ + zeta_2, zeta_3, \ + q32, t_0, t_1, t_2, t_3 + ld \t_2, \zeta_0(a1) + sub \t_0, \a_0_0, \a_0_1 + sub \t_1, \a_1_0, \a_1_1 + add \a_0_0, \a_0_0, \a_0_1 + add \a_1_0, \a_1_0, \a_1_1 + mul \a_0_1, \t_0, \t_2 + mul \a_1_1, \t_1, \t_2 + sub \t_0, \a_2_0, \a_2_1 + sub \t_3, \a_3_0, \a_3_1 + ld \t_2, \zeta_1(a1) + add \a_2_0, \a_2_0, \a_2_1 + add \a_3_0, \a_3_0, \a_3_1 + mul \a_2_1, \t_0, \t_2 + mul \a_3_1, \t_3, \t_2 + srai \a_0_1, \a_0_1, 32 + srai \a_1_1, \a_1_1, 32 + addi \a_0_1, \a_0_1, 8 + addi \a_1_1, \a_1_1, 8 + mulh \a_0_1, \a_0_1, \q32 + mulh \a_1_1, \a_1_1, \q32 + srai \a_2_1, \a_2_1, 32 + srai \a_3_1, \a_3_1, 32 + addi \a_2_1, \a_2_1, 8 + addi \a_3_1, \a_3_1, 8 + mulh \a_2_1, \a_2_1, \q32 + mulh \a_3_1, \a_3_1, \q32 + sub \t_0, \a_4_0, \a_4_1 + sub \t_1, \a_5_0, \a_5_1 + ld \t_2, \zeta_2(a1) + add \a_4_0, \a_4_0, \a_4_1 + add \a_5_0, \a_5_0, \a_5_1 + mul \a_4_1, \t_0, \t_2 + mul \a_5_1, \t_1, \t_2 + sub \t_0, \a_6_0, \a_6_1 + sub \t_3, \a_7_0, \a_7_1 + ld \t_2, \zeta_3(a1) + add \a_6_0, \a_6_0, \a_6_1 + add \a_7_0, \a_7_0, \a_7_1 + mul \a_6_1, \t_0, \t_2 + mul \a_7_1, \t_3, \t_2 + srai \a_4_1, \a_4_1, 32 + srai \a_5_1, \a_5_1, 32 + addi \a_4_1, \a_4_1, 8 + addi \a_5_1, \a_5_1, 8 + mulh \a_4_1, \a_4_1, \q32 + mulh \a_5_1, \a_5_1, \q32 + srai \a_6_1, \a_6_1, 32 + srai \a_7_1, \a_7_1, 32 + addi \a_6_1, \a_6_1, 8 + addi \a_7_1, \a_7_1, 8 + mulh \a_6_1, \a_6_1, \q32 + mulh \a_7_1, \a_7_1, \q32 +.endm + +.macro gs_bfu_x8_load_2zetas \ + a_0_0, a_0_1, a_1_0, a_1_1, \ + a_2_0, a_2_1, a_3_0, a_3_1, \ + a_4_0, a_4_1, a_5_0, a_5_1, \ + a_6_0, a_6_1, a_7_0, a_7_1, \ + zeta_0, zeta_1, \ + q32, t_0, t_1, t_2, t_3 + ld \t_2, \zeta_0(a1) + sub \t_0, \a_0_0, \a_0_1 + sub \t_1, \a_1_0, \a_1_1 + add \a_0_0, \a_0_0, \a_0_1 + add \a_1_0, \a_1_0, \a_1_1 + mul \a_0_1, \t_0, \t_2 + mul \a_1_1, \t_1, \t_2 + sub \t_0, \a_2_0, \a_2_1 + sub \t_3, \a_3_0, \a_3_1 + add \a_2_0, \a_2_0, \a_2_1 + add \a_3_0, \a_3_0, \a_3_1 + mul \a_2_1, \t_0, \t_2 + mul \a_3_1, \t_3, \t_2 + srai \a_0_1, \a_0_1, 32 + srai \a_1_1, \a_1_1, 32 + addi \a_0_1, \a_0_1, 8 + addi \a_1_1, \a_1_1, 8 + mulh \a_0_1, \a_0_1, \q32 + mulh \a_1_1, \a_1_1, \q32 + srai \a_2_1, \a_2_1, 32 + srai \a_3_1, \a_3_1, 32 + addi \a_2_1, \a_2_1, 8 + addi \a_3_1, \a_3_1, 8 + mulh \a_2_1, \a_2_1, \q32 + mulh \a_3_1, \a_3_1, \q32 + ld \t_2, \zeta_1(a1) + sub \t_0, \a_4_0, \a_4_1 + sub \t_1, \a_5_0, \a_5_1 + add \a_4_0, \a_4_0, \a_4_1 + add \a_5_0, \a_5_0, \a_5_1 + mul \a_4_1, \t_0, \t_2 + mul \a_5_1, \t_1, \t_2 + sub \t_0, \a_6_0, \a_6_1 + sub \t_3, \a_7_0, \a_7_1 + add \a_6_0, \a_6_0, \a_6_1 + add \a_7_0, \a_7_0, \a_7_1 + mul \a_6_1, \t_0, \t_2 + mul \a_7_1, \t_3, \t_2 + srai \a_4_1, \a_4_1, 32 + srai \a_5_1, \a_5_1, 32 + addi \a_4_1, \a_4_1, 8 + addi \a_5_1, \a_5_1, 8 + mulh \a_4_1, \a_4_1, \q32 + mulh \a_5_1, \a_5_1, \q32 + srai \a_6_1, \a_6_1, 32 + srai \a_7_1, \a_7_1, 32 + addi \a_6_1, \a_6_1, 8 + addi \a_7_1, \a_7_1, 8 + mulh \a_6_1, \a_6_1, \q32 + mulh \a_7_1, \a_7_1, \q32 +.endm + +.macro plant_mul_const_inplace_x8 \ + q32, zeta, \ + a_0, a_1, a_2, a_3, \ + a_4, a_5, a_6, a_7 + mul \a_0, \a_0, \zeta + mul \a_1, \a_1, \zeta + mul \a_2, \a_2, \zeta + mul \a_3, \a_3, \zeta + srai \a_0, \a_0, 32 + srai \a_1, \a_1, 32 + addi \a_0, \a_0, 8 + addi \a_1, \a_1, 8 + mulh \a_0, \a_0, \q32 + mulh \a_1, \a_1, \q32 + srai \a_2, \a_2, 32 + srai \a_3, \a_3, 32 + mul \a_4, \a_4, \zeta + mul \a_5, \a_5, \zeta + addi \a_2, \a_2, 8 + addi \a_3, \a_3, 8 + mulh \a_2, \a_2, \q32 + mulh \a_3, \a_3, \q32 + srai \a_4, \a_4, 32 + srai \a_5, \a_5, 32 + mul \a_6, \a_6, \zeta + mul \a_7, \a_7, \zeta + addi \a_4, \a_4, 8 + addi \a_5, \a_5, 8 + mulh \a_4, \a_4, \q32 + mulh \a_5, \a_5, \q32 + srai \a_6, \a_6, 32 + addi \a_6, \a_6, 8 + mulh \a_6, \a_6, \q32 + srai \a_7, \a_7, 32 + addi \a_7, \a_7, 8 + mulh \a_7, \a_7, \q32 +.endm + +// in-place plantard reduction +// output \in (-0.5q, 0.5q); q32: q<<32 +.macro plant_red q32, qinv, a + mul \a, \a, \qinv + srai \a, \a, 32 + addi \a, \a, 8 + mulh \a, \a, \q32 +.endm + +.macro plant_red_x4 \ + q32, qinv, \ + a_0, a_1, a_2, a_3 + mul \a_0, \a_0, \qinv + mul \a_1, \a_1, \qinv + mul \a_2, \a_2, \qinv + mul \a_3, \a_3, \qinv + srai \a_0, \a_0, 32 + srai \a_1, \a_1, 32 + srai \a_2, \a_2, 32 + srai \a_3, \a_3, 32 + addi \a_0, \a_0, 8 + addi \a_1, \a_1, 8 + addi \a_2, \a_2, 8 + addi \a_3, \a_3, 8 + mulh \a_0, \a_0, \q32 + mulh \a_1, \a_1, \q32 + mulh \a_2, \a_2, \q32 + mulh \a_3, \a_3, \q32 +.endm + +.equ q, 3329 +.equ q32, 0xd0100000000 // q << 32 +.equ qinv, 0x3c0f12886ba8f301 // q^-1 mod 2^64 +.equ plantconst, 0x13afb7680bb055 // (((-2**64) % q) * qinv) % (2**64) +.equ plantconst2, 0x1a390f4d9791e139 // (((-2**64) % q) * ((-2**64) % q) * qinv) % (2**64) + +// |input| < 0.5q; |output| < 3.5q +// a0: poly, a1: 64-bit twiddle ptr; a6: q<<32; +// a7/gp/tp/ra: tmp; +// 4*15(sp): loop; +// s0-s11, a2-a5: 16 coeffs; +// 7 twiddle factors: t0-t6 +.global ntt_rv64im +.align 2 +ntt_rv64im: + addi sp, sp, -8*16 + save_regs + li a6, q32 // q<<32 + addi a0, a0, 32 // poly[16] + addi gp, x0, 15 // loop + sd gp, 8*15(sp) + // load twiddle factors + ld t0, 0*8(a1) + ld t1, 1*8(a1) + ld t2, 2*8(a1) + ld t3, 3*8(a1) + ld t4, 4*8(a1) + ld t5, 5*8(a1) + ld t6, 6*8(a1) + ### LAYER 1+2+3+4 + ntt_rv64im_loop1: + addi a0, a0, -2 + // 16*i, i \in [0-15] + load_coeffs a0, 16, 2 + // layer 1 + ct_bfu_x8 \ + s0, s8, s1, s9, \ + s2, s10, s3, s11, \ + s4, a2, s5, a3, \ + s6, a4, s7, a5, \ + t0, t0, t0, t0, \ + t0, t0, t0, t0, \ + a6, a7, gp, tp, ra + // layer 2 + ct_bfu_x8 \ + s0, s4, s1, s5, \ + s2, s6, s3,s7, \ + s8, a2, s9, a3, \ + s10, a4, s11, a5, \ + t1, t1, t1, t1, \ + t2, t2, t2, t2, \ + a6, a7, gp, tp, ra + // layer 3 + ct_bfu_x8 \ + s0, s2, s1, s3, \ + s4, s6, s5, s7, \ + s8, s10, s9, s11, \ + a2, a4, a3, a5, \ + t3, t3, t4, t4, \ + t5, t5, t6, t6, \ + a6, a7, gp, tp, ra + // layer 4 + // The following 8 twiddle factors have to be loaded at each iteration + // In ct_bfu, twiddle and tmp can be reused because each twiddle is only used once. The gs_bfu cannot. + ct_bfu_x8_loadzetas \ + s0, s1, s2, s3, \ + s4, s5, s6, s7, \ + s8, s9, s10, s11,\ + a2, a3, a4, a5, \ + 7*8, 8*8, 9*8, 10*8, \ + 11*8,12*8,13*8,14*8, \ + a6, a7, gp, tp, ra + // store 16 coeffs + store_coeffs a0, 16, 2 + ld gp, 8*15(sp) + addi gp, gp, -1 + sd gp, 8*15(sp) + bge gp, zero, ntt_rv64im_loop1 # 16 loops + addi a1, a1, 15*8 + ### LAYER 5-6-7 + addi gp, x0, 16 + sd gp, 8*15(sp) + ntt_rv64im_loop2: + // load coefficients + load_coeffs a0, 1, 2 + // load twiddle factors + ld t0, 0*8(a1) + ld t1, 1*8(a1) + ld t2, 2*8(a1) + ld t3, 3*8(a1) + ld t4, 4*8(a1) + ld t5, 5*8(a1) + ld t6, 6*8(a1) + // layer 5 + ct_bfu_x8 \ + s0, s8, s1, s9, \ + s2, s10, s3, s11, \ + s4, a2, s5, a3, \ + s6, a4, s7, a5, \ + t0, t0, t0, t0, \ + t0, t0, t0, t0, \ + a6, a7, gp, tp, ra + // layer 6 + ct_bfu_x8 \ + s0, s4, s1, s5, \ + s2, s6, s3, s7, \ + s8, a2, s9, a3, \ + s10, a4, s11, a5, \ + t1, t1, t1, t1, \ + t2, t2, t2, t2, \ + a6, a7, gp, tp, ra + // layer 7 + ct_bfu_x8 \ + s0, s2, s1, s3, \ + s4, s6, s5, s7, \ + s8, s10, s9, s11, \ + a2, a4, a3, a5, \ + t3, t3, t4, t4, \ + t5, t5, t6, t6, \ + a6, a7, gp, tp, ra + store_coeffs a0, 1, 2 + addi a0, a0, 32 // poly+=16 + addi a1, a1, 7*8 // zeta + ld gp, 8*15(sp) + addi gp, gp, -1 // loop + sd gp, 8*15(sp) + bne gp, zero, ntt_rv64im_loop2 + restore_regs + addi sp, sp, 8*16 + ret + +// |input| < kq; |output| < 0.5q +// a0: poly, a1: 64-bit twiddle ptr; a6: q<<32; +// a7/gp/tp/ra: tmp; +// 4*15(sp): loop; +// s0-s11, a2-a5: 16 coeffs; +// 7 twiddle factors: t0-t6 +.global intt_rv64im +.align 2 +intt_rv64im: + addi sp, sp, -8*16 + save_regs + li a6, q32 // q<<32 + ### LAYER 7+6+5 + addi gp, x0, 16 + sd gp, 8*15(sp) + intt_rv64im_loop1: + // load coefficients + load_coeffs a0, 1, 2 + // load twiddle factors + ld t0, 0*8(a1) + ld t1, 1*8(a1) + ld t2, 2*8(a1) + ld t3, 3*8(a1) + ld t4, 4*8(a1) + ld t5, 5*8(a1) + ld t6, 6*8(a1) + // layer 7 + gs_bfu_x8 \ + s0, s2, s1, s3, \ + s4, s6, s5, s7, \ + s8, s10,s9, s11,\ + a2, a4, a3, a5, \ + t0, t0, t1, t1, \ + t2, t2, t3, t3, \ + a6, a7, gp, tp, ra + // layer 6 + gs_bfu_x8 \ + s0, s4, s1, s5, \ + s2, s6, s3, s7, \ + s8, a2, s9, a3, \ + s10, a4, s11, a5, \ + t4, t4, t4, t4, \ + t5, t5, t5, t5, \ + a6, a7, gp, tp, ra + // layer 5 + gs_bfu_x8 \ + s0, s8, s1, s9, \ + s2, s10, s3, s11, \ + s4, a2, s5, a3, \ + s6, a4, s7, a5, \ + t6, t6, t6, t6, \ + t6, t6, t6, t6, \ + a6, a7, gp, tp, ra + store_coeffs a0, 1, 2 + addi a0, a0, 32 + addi a1, a1, 8*7 + ld gp, 8*15(sp) + addi gp, gp, -1 + sd gp, 8*15(sp) + bne gp, zero, intt_rv64im_loop1 + addi a0, a0, -512 + ### LAYER 4+3+2+1 + ld t0, 0*8(a1) + ld t1, 1*8(a1) + ld t2, 2*8(a1) + ld t3, 3*8(a1) + ld t4, 4*8(a1) + ld t5, 5*8(a1) + ld t6, 6*8(a1) + addi a0, a0, 32 + addi gp, x0, 15 + sd gp, 8*15(sp) + intt_rv64im_loop2: + addi a0, a0, -2 + load_coeffs a0, 16, 2 + // layer 4 + ld tp, 7*8(a1) + gs_bfu_x8 \ + s0, s1, s2, s3, \ + s4, s5, s6, s7, \ + s8, s9, s10, s11,\ + a2, a3, a4, a5, \ + t0, t1, t2, t3, \ + t4, t5, t6, tp, \ + a6, a7, gp, a7, ra + // The following twiddle factors have to be loaded at each iteration + // layer 3 + gs_bfu_x8_load_4zetas \ + s0, s2, s1, s3, \ + s4, s6, s5, s7, \ + s8, s10, s9, s11, \ + a2, a4, a3, a5, \ + 8*8, 9*8, 10*8, 11*8, \ + a6, a7, gp, tp, ra + // layer 2 + gs_bfu_x8_load_2zetas \ + s0, s4, s1, s5, \ + s2, s6, s3, s7, \ + s8, a2, s9, a3, \ + s10, a4, s11, a5, \ + 12*8, 13*8, \ + a6, a7, gp, tp, ra + // layer 1 + ld ra, 14*8(a1) + gs_bfu_x8 \ + s0, s8, s1, s9, \ + s2, s10, s3, s11, \ + s4, a2, s5, a3, \ + s6, a4, s7, a5, \ + ra, ra, ra, ra, \ + ra, ra, ra, ra, \ + a6, a7, gp, a7, tp + ld ra, 15*8(a1) + plant_mul_const_inplace_x8 \ + a6, ra, \ + s0, s1, s2, s3, s4, s5, s6, s7 + store_coeffs a0, 16, 2 + ld gp, 8*15(sp) + addi gp, gp, -1 + sd gp, 8*15(sp) + bge gp, zero, intt_rv64im_loop2 + restore_regs + addi sp, sp, 8*16 + ret + +// void poly_basemul_acc_rv64im(int32_t *r, const int16_t *a, const int16_t *b, uint64_t *zetas) +// compute basemul and accumulate the 32-bit results into r +// a0: r, a1: a, a2: b, a3: zetas +// a5: q<<32, a6: loop control +.global poly_basemul_acc_rv64im +.align 2 +poly_basemul_acc_rv64im: + addi sp, sp, -8*15 + save_regs + li a5, q32 + li a6, 32 +poly_basemul_acc_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # 4 zetas: a7, gp, tp, ra + ld a7, 8*0(a3) + ld tp, 8*1(a3) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + neg gp, a7 + neg ra, tp + # available regs: a4, s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + plant_mul_const_x4 \ + a5, a7, gp, tp, ra, \ + s1, s3, s5, s7, \ + t2, t3, t4, t5 + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a0) + lw s9, 4*1(a0) + # a[0]b[0] + mul s2, t0, s0 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + lw s10, 4*2(a0) + lw s11, 4*3(a0) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # store r[0,1] + sw s8, 4*0(a0) + sw s9, 4*1(a0) + # available regs: s0, s1, s8, s9, a7, t6 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[2] + mul s0, t0, s2 + # a[2]b[3] + mul s8, t0, s3 + # a[3]b[2] + mul s9, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, s8 + add s11, s11, s9 + # store r[2,3] + sw s10, 4*2(a0) + sw s11, 4*3(a0) + # r[4,5,6,7] + lw s8, 4*4(a0) + lw s9, 4*5(a0) + lw s10,4*6(a0) + lw s11,4*7(a0) + # a[4]b[4] + mul s0, t2, s4 + # a[5](b[5]zeta) + mul s1, tp, t4 + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh gp, 2*6(a1) + lh ra, 2*7(a1) + lh s6, 2*6(a2) + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # store r[4,5] + sw s8, 4*4(a0) + sw s9, 4*5(a0) + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + # store r[6,7] + sw s10,4*6(a0) + sw s11,4*7(a0) + // loop control + addi a0, a0, 4*8 + addi a1, a1, 2*8 + addi a2, a2, 2*8 + addi a3, a3, 8*2 + addi a6, a6, -1 + bne a6, zero, poly_basemul_acc_rv64im_loop + restore_regs + addi sp, sp, 8*15 +ret + +// void poly_basemul_acc_end_rv64im(int16_t *r, const int16_t *a, const int16_t *b, uint64_t *zetas, int32_t *r_double) +// compute basemul, accumulate the 32-bit results into r_double, and reduce r_double to r +// a0: r, a1: a, a2: b, a3: zetas, a4: r_double +.global poly_basemul_acc_end_rv64im +.align 2 +poly_basemul_acc_end_rv64im: + addi sp, sp, -8*16 + save_regs + li a5, q32 + li a6, qinv + li a7, 32 + sd a7, 8*15(sp) +poly_basemul_acc_end_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # 4 zetas: a7, gp, tp, ra + ld a7, 8*0(a3) + ld tp, 8*1(a3) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + neg gp, a7 + neg ra, tp + # available regs: s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + plant_mul_const_x4 \ + a5, a7, gp, tp, ra, \ + s1, s3, s5, s7, \ + t2, t3, t4, t5 + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a4) + lw s9, 4*1(a4) + # a[0]b[0] + mul s2, t0, s0 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + lw s10,4*2(a4) + lw s11,4*3(a4) + # available regs: s0, s1, a7, t6 + # a[2]b[2] + mul s0, t0, s2 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[3] + mul a7, t0, s3 + # a[3]b[2] + mul t6, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, a7 + add s11, s11, t6 + plant_red_x4 \ + a5, a6, \ + s8, s9, s10, s11 + # store r[0,1,2,3] + sh s8, 2*0(a0) + sh s9, 2*1(a0) + sh s10,2*2(a0) + sh s11,2*3(a0) + # a[4]b[4] + mul s0, t2, s4 + # a[5](b[5]zeta) + mul s1, tp, t4 + # r[4,5] + lw s8, 4*4(a4) + lw s9, 4*5(a4) + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh s6, 2*6(a2) + lh gp, 2*6(a1) + lh ra, 2*7(a1) + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[6,7] + lw s10,4*6(a4) + lw s11,4*7(a4) + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + plant_red_x4 \ + a5, a6, \ + s8, s9, s10, s11 + # store r[0,1,2,3] + sh s8, 2*4(a0) + sh s9, 2*5(a0) + sh s10,2*6(a0) + sh s11,2*7(a0) + // loop control + addi a0, a0, 2*8 + addi a1, a1, 2*8 + ld a7, 8*15(sp) + addi a2, a2, 2*8 + addi a3, a3, 8*2 + addi a4, a4, 4*8 + addi a7, a7, -1 + sd a7, 8*15(sp) + bne a7, zero, poly_basemul_acc_end_rv64im_loop + restore_regs + addi sp, sp, 8*16 +ret + +// void poly_basemul_cache_init_rv64im(int32_t *r, const int16_t *a, const int16_t *b, int16_t *b_cache, uint64_t *zetas) +// compute basemul, cache bzeta into b_cache, and store the 32-bit results into r +// a0: r, a1: a, a2: b, a3: b_cache, a4: zetas +// a5: q<<32, a6: loop control +.global poly_basemul_cache_init_rv64im +.align 2 +poly_basemul_cache_init_rv64im: + addi sp, sp, -8*15 + save_regs + li a5, q32 + li a6, 32 +poly_basemul_cache_init_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # 4 zetas: a7, gp, tp, ra + ld a7, 8*0(a4) + ld tp, 8*1(a4) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + neg gp, a7 + neg ra, tp + # available regs: s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + plant_mul_const_x4 \ + a5, a7, gp, tp, ra, \ + s1, s3, s5, s7, \ + t2, t3, t4, t5 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[0] + mul s2, t0, s0 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + sh t2, 2*0(a3) + sh t3, 2*1(a3) + # r[0]=a[0]b[0]+a[1](b[1]zeta) + add s2, s2, s4 + # r[1]=a[0]b[1]+a[1]b[0] + add s6, s6, t6 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # store r[0,1] + sw s2, 4*0(a0) + sw s6, 4*1(a0) + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + lh s4, 2*4(a2) + sh t4, 2*2(a3) + sh t5, 2*3(a3) + # available regs: s0, s1, s8, s9, a7, t6 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[2] + mul s0, t0, s2 + # a[2]b[3] + mul s8, t0, s3 + # a[3]b[2] + mul s9, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + # r[2]=a[2]b[2]+a[3](b[3]zeta) + add s0, s0, s1 + # r[3]=a[2]b[3]+a[3]b[2] + add s8, s8, s9 + # store r[2,3] + sw s0, 4*2(a0) + sw s8, 4*3(a0) + # a[5](b[5]zeta) + mul s1, tp, t4 + # a[4]b[4] + mul s0, t2, s4 + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh gp, 2*6(a1) + lh ra, 2*7(a1) + lh s6, 2*6(a2) + # r[4]=a[4]b[4]+a[5](b[5]zeta) + add s0, s0, s1 + # r[5]=a[4]b[5]+a[5]b[4] + add t0, t0, t1 + # store r[4,5] + sw s0, 4*4(a0) + sw t0, 4*5(a0) + # a[7](b[7]zeta) + mul s9, ra, t5 + # a[6]b[6] + mul s8, gp, s6 + # a[6]b[7] + mul s10, gp, s7 + # a[7]b[6] + mul s11, ra, s6 + # r[6]=a[6]b[6]+a[7](b[7]zeta) + add s8, s8, s9 + # r[7]=a[6]b[7]+a[7]b[6] + add s10, s10, s11 + # store r[6,7] + sw s8, 4*6(a0) + sw s10,4*7(a0) + // loop control + addi a0, a0, 4*8 + addi a1, a1, 2*8 + addi a2, a2, 2*8 + addi a3, a3, 2*4 + addi a4, a4, 8*2 + addi a6, a6, -1 + bne a6, zero, poly_basemul_cache_init_rv64im_loop + restore_regs + addi sp, sp, 8*15 +ret + +// void poly_basemul_acc_cache_init_rv64im(int32_t *r, const int16_t *a, const int16_t *b, int16_t *b_cache, uint64_t *zetas) +// compute basemul, cache bzeta into b_cache, and accumulate the 32-bit results into r +// a0: r, a1: a, a2: b, a3: b_cache, a4: zetas +// a5: q<<32, a6: loop control, a7: accumulated value +.global poly_basemul_acc_cache_init_rv64im +.align 2 +poly_basemul_acc_cache_init_rv64im: + addi sp, sp, -8*15 + save_regs + li a5, q32 + li a6, 32 +poly_basemul_acc_cache_init_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # 4 zetas: a7, gp, tp, ra + ld a7, 8*0(a4) + ld tp, 8*1(a4) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + neg gp, a7 + neg ra, tp + # available regs: s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + plant_mul_const_x4 \ + a5, a7, gp, tp, ra, \ + s1, s3, s5, s7, \ + t2, t3, t4, t5 + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a0) + lw s9, 4*1(a0) + lw s10,4*2(a0) + lw s11,4*3(a0) + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[0] + mul s2, t0, s0 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + sh t2, 2*0(a3) + sh t3, 2*1(a3) + sh t4, 2*2(a3) + sh t5, 2*3(a3) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # store r[0,1] + sw s8, 4*0(a0) + sw s9, 4*1(a0) + # available regs: s0, s1, s8, s9, a7, t6 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[2] + mul s0, t0, s2 + # a[2]b[3] + mul s8, t0, s3 + # a[3]b[2] + mul s9, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, s8 + add s11, s11, s9 + # store r[2,3] + sw s10, 4*2(a0) + sw s11, 4*3(a0) + # r[4,5,6,7] + lw s8, 4*4(a0) + lw s9, 4*5(a0) + lw s10,4*6(a0) + lw s11,4*7(a0) + # a[5](b[5]zeta) + mul s1, tp, t4 + # a[4]b[4] + mul s0, t2, s4 + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh gp, 2*6(a1) + lh ra, 2*7(a1) + lh s6, 2*6(a2) + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # store r[4,5] + sw s8, 4*4(a0) + sw s9, 4*5(a0) + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + # store r[6,7] + sw s10,4*6(a0) + sw s11,4*7(a0) + // loop control + addi a0, a0, 4*8 + addi a1, a1, 2*8 + addi a2, a2, 2*8 + addi a3, a3, 2*4 + addi a4, a4, 8*2 + addi a6, a6, -1 + bne a6, zero, poly_basemul_acc_cache_init_rv64im_loop + restore_regs + addi sp, sp, 8*15 +ret + +// void poly_basemul_acc_cache_init_end_rv64im(int16_t *r, const int16_t *a, const int16_t *b, int16_t *b_cache, uint64_t *zetas, int32_t *r_double) +// compute basemul, cache bzeta into b_cache, accumulate the 32-bit results into r_double, and reduce r_double to r +// a0: r, a1: a, a2: b, a3: b_cache, a4: zetas, a5: r_double +// a6: loop control +.global poly_basemul_acc_cache_init_end_rv64im +.align 2 +poly_basemul_acc_cache_init_end_rv64im: + addi sp, sp, -8*16 + save_regs + li a6, qinv + li a7, 32 + sd a7, 8*15(sp) +poly_basemul_acc_cache_init_end_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # 4 zetas: a7, gp, tp, ra + ld a7, 8*0(a4) + ld tp, 8*1(a4) + neg gp, a7 + neg ra, tp + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + # available regs: s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + li t6, q32 + plant_mul_const_x4 \ + t6, a7, gp, tp, ra, \ + s1, s3, s5, s7, \ + t2, t3, t4, t5 + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a5) + lw s9, 4*1(a5) + lw s10,4*2(a5) + lw s11,4*3(a5) + # a[0]b[0] + mul s2, t0, s0 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + sh t2, 2*0(a3) + sh t3, 2*1(a3) + sh t4, 2*2(a3) + sh t5, 2*3(a3) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + # available regs: s0, s1, a7, t6 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # a[2]b[2] + mul s0, t0, s2 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[3] + mul a7, t0, s3 + # a[3]b[2] + mul t6, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, a7 + add s11, s11, t6 + li s0, q32 + plant_red_x4 \ + s0, a6, \ + s8, s9, s10, s11 + lh gp, 2*6(a1) + lh ra, 2*7(a1) + lh s6, 2*6(a2) + # store r[0,1,2,3] + sh s8, 2*0(a0) + sh s9, 2*1(a0) + sh s10,2*2(a0) + sh s11,2*3(a0) + # a[4]b[4] + mul s0, t2, s4 + # a[5](b[5]zeta) + mul s1, tp, t4 + # r[4,5] + lw s8, 4*4(a5) + lw s9, 4*5(a5) + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # r[6,7] + lw s10,4*6(a5) + lw s11,4*7(a5) + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + li s0, q32 + plant_red_x4 \ + s0, a6, \ + s8, s9, s10, s11 + # store r[0,1,2,3] + sh s8, 2*4(a0) + sh s9, 2*5(a0) + sh s10,2*6(a0) + sh s11,2*7(a0) + // loop control + addi a0, a0, 2*8 + addi a1, a1, 2*8 + ld a7, 8*15(sp) + addi a2, a2, 2*8 + addi a3, a3, 2*4 + addi a4, a4, 8*2 + addi a5, a5, 4*8 + addi a7, a7, -1 + sd a7, 8*15(sp) + bne a7, zero, poly_basemul_acc_cache_init_end_rv64im_loop + restore_regs + addi sp, sp, 8*16 +ret + +// void poly_basemul_acc_cached_rv64im(int32_t *r, const int16_t *a, const int16_t *b, int16_t *b_cache) +// compute basemul using cached b_cache and accumulate the 32-bit results into r +// a0: r, a1: a, a2: b, a3: b_cache +// a5: q<<32, a6: loop control +.global poly_basemul_acc_cached_rv64im +.align 2 +poly_basemul_acc_cached_rv64im: + addi sp, sp, -8*15 + save_regs + li a5, q32 + li a6, 32 +poly_basemul_acc_cached_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + lh t2, 2*0(a3) + lh t3, 2*1(a3) + lh t4, 2*2(a3) + lh t5, 2*3(a3) + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a0) + lw s9, 4*1(a0) + # a[0]b[0] + mul s2, t0, s0 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + lw s10, 4*2(a0) + lw s11, 4*3(a0) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # store r[0,1] + sw s8, 4*0(a0) + sw s9, 4*1(a0) + # available regs: s0, s1, s8, s9, a7, t6 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[2] + mul s0, t0, s2 + # a[2]b[3] + mul s8, t0, s3 + # a[3]b[2] + mul s9, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, s8 + add s11, s11, s9 + # store r[2,3] + sw s10, 4*2(a0) + sw s11, 4*3(a0) + # r[4,5,6,7] + lw s8, 4*4(a0) + lw s9, 4*5(a0) + lw s10,4*6(a0) + lw s11,4*7(a0) + # a[4]b[4] + mul s0, t2, s4 + # a[5](b[5]zeta) + mul s1, tp, t4 + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh gp, 2*6(a1) + lh ra, 2*7(a1) + lh s6, 2*6(a2) + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # store r[4,5] + sw s8, 4*4(a0) + sw s9, 4*5(a0) + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + # store r[6,7] + sw s10,4*6(a0) + sw s11,4*7(a0) + // loop control + addi a0, a0, 4*8 + addi a1, a1, 2*8 + addi a2, a2, 2*8 + addi a3, a3, 2*4 + addi a6, a6, -1 + bne a6, zero, poly_basemul_acc_cached_rv64im_loop + restore_regs + addi sp, sp, 8*15 +ret + +// void poly_basemul_acc_cache_end_rv64im(int16_t *r, const int16_t *a, const int16_t *b, int16_t *b_cache, int32_t *r_double) +// compute basemul using cached b_cache, accumulate the 32-bit results into r_double, and reduce r_double to r +// a0: r, a1: a, a2: b, a3: b_cache, a4: r_double +// a5: q<<32, a6: loop control +.global poly_basemul_acc_cache_end_rv64im +.align 2 +poly_basemul_acc_cache_end_rv64im: + addi sp, sp, -8*16 + save_regs + li a5, q32 + li a6, qinv + li a7, 32 + sd a7, 8*15(sp) +poly_basemul_acc_cached_end_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + # available regs: s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + lh t2, 2*0(a3) + lh t3, 2*1(a3) + lh t4, 2*2(a3) + lh t5, 2*3(a3) + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a4) + lw s9, 4*1(a4) + # a[0]b[0] + mul s2, t0, s0 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + lw s10,4*2(a4) + lw s11,4*3(a4) + # available regs: s0, s1, a7, t6 + # a[2]b[2] + mul s0, t0, s2 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[3] + mul a7, t0, s3 + # a[3]b[2] + mul t6, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, a7 + add s11, s11, t6 + plant_red_x4 \ + a5, a6, \ + s8, s9, s10, s11 + # store r[0,1,2,3] + sh s8, 2*0(a0) + sh s9, 2*1(a0) + sh s10,2*2(a0) + sh s11,2*3(a0) + # a[4]b[4] + mul s0, t2, s4 + # a[5](b[5]zeta) + mul s1, tp, t4 + # r[4,5] + lw s8, 4*4(a4) + lw s9, 4*5(a4) + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh s6, 2*6(a2) + lh gp, 2*6(a1) + lh ra, 2*7(a1) + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[6,7] + lw s10,4*6(a4) + lw s11,4*7(a4) + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + plant_red_x4 \ + a5, a6, \ + s8, s9, s10, s11 + # store r[0,1,2,3] + sh s8, 2*4(a0) + sh s9, 2*5(a0) + sh s10,2*6(a0) + sh s11,2*7(a0) + // loop control + addi a0, a0, 2*8 + addi a1, a1, 2*8 + ld a7, 8*15(sp) + addi a2, a2, 2*8 + addi a3, a3, 2*4 + addi a4, a4, 4*8 + addi a7, a7, -1 + sd a7, 8*15(sp) + bne a7, zero, poly_basemul_acc_cached_end_rv64im_loop + restore_regs + addi sp, sp, 8*16 +ret + +// each coeff is multiplied by plantconst2 using plantard multiplication +.global poly_plantard_rdc_rv64im +.align 2 +poly_plantard_rdc_rv64im: + addi sp, sp, -8*1 + sd s0, 0(sp) + li t6, plantconst + li t5, q32 + addi t4, x0, 16 + poly_plantard_rdc_rv64im_loop: + lh a1, 2*0(a0) + lh a2, 2*1(a0) + lh a3, 2*2(a0) + lh a4, 2*3(a0) + lh t0, 2*4(a0) + lh t1, 2*5(a0) + lh t2, 2*6(a0) + lh t3, 2*7(a0) + plant_red_x4 \ + t5, t6, \ + a1, a2, a3, a4 + lh a5, 2*8(a0) + lh a6, 2*9(a0) + lh a7, 2*10(a0) + lh s0, 2*11(a0) + sh a1, 2*0(a0) + sh a2, 2*1(a0) + sh a3, 2*2(a0) + sh a4, 2*3(a0) + plant_red_x4 \ + t5, t6, \ + t0, t1, t2, t3 + lh a1, 2*12(a0) + lh a2, 2*13(a0) + lh a3, 2*14(a0) + lh a4, 2*15(a0) + sh t0, 2*4(a0) + sh t1, 2*5(a0) + sh t2, 2*6(a0) + sh t3, 2*7(a0) + plant_red_x4 \ + t5, t6, \ + a5, a6, a7, s0 + sh a5, 2*8(a0) + sh a6, 2*9(a0) + sh a7, 2*10(a0) + sh s0, 2*11(a0) + plant_red_x4 \ + t5, t6, \ + a1, a2, a3, a4 + sh a1, 2*12(a0) + sh a2, 2*13(a0) + sh a3, 2*14(a0) + sh a4, 2*15(a0) + addi a0, a0, 2*16 + addi t4, t4, -1 + bne t4, zero, poly_plantard_rdc_rv64im_loop + ld s0, 0(sp) + addi sp, sp, 8*1 + ret + +// plantard reduction to a poly +.global poly_toplant_rv64im +.align 2 +poly_toplant_rv64im: + addi sp, sp, -8*1 + sd s0, 0(sp) + li t6, plantconst2 + li t5, q32 + addi t4, x0, 16 + poly_toplant_rv64im_loop: + lh a1, 2*0(a0) + lh a2, 2*1(a0) + lh a3, 2*2(a0) + lh a4, 2*3(a0) + lh t0, 2*4(a0) + lh t1, 2*5(a0) + lh t2, 2*6(a0) + lh t3, 2*7(a0) + plant_mul_const_inplace_x4 \ + t5, t6, t6, t6, t6, \ + a1, a2, a3, a4 + lh a5, 2*8(a0) + lh a6, 2*9(a0) + lh a7, 2*10(a0) + lh s0, 2*11(a0) + sh a1, 2*0(a0) + sh a2, 2*1(a0) + sh a3, 2*2(a0) + sh a4, 2*3(a0) + plant_mul_const_inplace_x4 \ + t5, t6, t6, t6, t6, \ + t0, t1, t2, t3 + lh a1, 2*12(a0) + lh a2, 2*13(a0) + lh a3, 2*14(a0) + lh a4, 2*15(a0) + sh t0, 2*4(a0) + sh t1, 2*5(a0) + sh t2, 2*6(a0) + sh t3, 2*7(a0) + plant_mul_const_inplace_x4 \ + t5, t6, t6, t6, t6, \ + a5, a6, a7, s0 + sh a5, 2*8(a0) + sh a6, 2*9(a0) + sh a7, 2*10(a0) + sh s0, 2*11(a0) + plant_mul_const_inplace_x4 \ + t5, t6, t6, t6, t6, \ + a1, a2, a3, a4 + sh a1, 2*12(a0) + sh a2, 2*13(a0) + sh a3, 2*14(a0) + sh a4, 2*15(a0) + addi a0, a0, 2*16 + addi t4, t4, -1 + bne t4, zero, poly_toplant_rv64im_loop + ld s0, 0(sp) + addi sp, sp, 8*1 + ret diff --git a/examples/naive/riscv/ntt_kyber/ntt_kyber_rvv_vlen128.s b/examples/naive/riscv/ntt_kyber/ntt_kyber_rvv_vlen128.s new file mode 100644 index 000000000..57247370f --- /dev/null +++ b/examples/naive/riscv/ntt_kyber/ntt_kyber_rvv_vlen128.s @@ -0,0 +1,966 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, \ + in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, \ + xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, \ + xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzeta1, vzeta2, vzeta3, \ + vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 \ + v16, v18, v20, v22, v24, v26, v28, v30, \ + v17, v19, v21, v23, v25, v27, v29, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 \ + v16, v17, v18, v19, v20, v21, v22, v23, \ + v24, v25, v26, v27, v28, v29, v30, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v5, v4, v5, v4, v5, v4, v5, v4, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 \ + v16, v24, v18, v26, v20, v28, v22, v30, \ + v17, v25, v19, v27, v21, v29, v23, v31, \ + v1, v0, v1, v0, v1, v0, v1, v0, \ + v3, v2, v3, v2, v3, v2, v3, v2, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v16, v20, v18, v22, v24, v28, v26, v30, \ + v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v17, v21, v19, v23, v25, v29, v27, v31, \ + v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, \ + vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, \ + vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, \ + vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, \ + vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 \ + vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, \ + vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, \ + vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, \ + vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, \ + vidx8_0122, vidx_low, vidx_high, \ + x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +.globl ntt_rvv_vlen128 +.align 2 +ntt_rvv_vlen128: +start: + save_regs + li t0, 3329 + li t1, -3327 + ntt_rvv_level0 + ntt_rvv_level1to6 0, _ZETAS_EXP_1TO6_P0_L1, _ZETAS_EXP_1TO6_P0_L3 + ntt_rvv_level1to6 1, _ZETAS_EXP_1TO6_P1_L1, _ZETAS_EXP_1TO6_P1_L3 + restore_regs +end: +ret \ No newline at end of file diff --git a/examples/naive/riscv/ntt_kyber/ntt_kyber_rvv_vlen256.s b/examples/naive/riscv/ntt_kyber/ntt_kyber_rvv_vlen256.s new file mode 100644 index 000000000..dae30e78c --- /dev/null +++ b/examples/naive/riscv/ntt_kyber/ntt_kyber_rvv_vlen256.s @@ -0,0 +1,1192 @@ +#include "consts_vlen256.h" + +// shuffle8 +# a[0-7,8-15],a[16-23,24-31] -> a[0-7,16-23],a[8-15,24-31] +# vm0/vm1: _MASK_0_7x2/_MASK_8_15x2 +# v0: _MASK_V0_1x8_0x8 +// shuffle4 +# a[0-7,16-23],a[8-15,24-31] -> +# a[0-3,8-11,16-19,24-27],a[4-7,12-15,20-23,28-31] +# vm0/vm1: _MASK_0_3x2_8_11x2/_MASK_4_7x2_12_15x2 +# v0: _MASK_V0_1x4_0x4_1x4_0x4 +// shuffle2 +# a[0-3,8-11,16-19,24-27],a[4-7,12-15,20-23,28-31] -> +# a[0,1,4,5,...],a[2,3,6,7,...] +# vm0/vm1: _MASK_01014545/_MASK_23236767 +# v0: _MASK_V0_1100x4 +// shuffle1 +# a[0,1,4,5,...],a[2,3,6,7,...] -> +# a[0,2,4,6,...],a[1,3,5,7,...] +# vm0/vm1: _MASK_10325476 +# v0: _MASK_V0_10x8 +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, \ + tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0; vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0; vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0; vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0; vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, \ + in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0; vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1; vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0; vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0; vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v; vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10; vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q; vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0; vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0; vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0; vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq; vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0; vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0; vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0; vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vx_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0; vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2; vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0; vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2; vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq; vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq; vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0; vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0; vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0; vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0; vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0; vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0; vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_o_x4 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq + vmul.vv \vo0_0, \va0_1, \vzetaqinv0; vmul.vv \vo1_0, \va1_1, \vzetaqinv1 + vmul.vv \vo2_0, \va2_1, \vzetaqinv2; vmul.vv \vo3_0, \va3_1, \vzetaqinv3 + vmulh.vv \va0_1, \va0_1, \vzeta0; vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2; vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq; vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq; vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0; vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0; vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0; vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0; vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0; vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0; vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0; vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2; vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \va0_1, \va0_1, \vzeta0; vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2; vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq; vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq; vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0; vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0; vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0; vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0; vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0; vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0; vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0; vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2; vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4; vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6; vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0; vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2; vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4; vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6; vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq; vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq; vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq; vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq; vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0; vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0; vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0; vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0; vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0; vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0; vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0; vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0; vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0; vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0; vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0; vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0; vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx_x4 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, \ + vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1; vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1; vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1; vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1; vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0; vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2; vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0; vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2; vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq; vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq; vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1; vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1; vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vx_o_x4 \ + vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, \ + xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq + vsub.vv \vo0_1, \va0_0, \va0_1; vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1; vsub.vv \vo3_1, \va3_0, \va3_1 + vadd.vv \vo0_0, \va0_0, \va0_1; vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1; vadd.vv \vo3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0; vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2; vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmulh.vx \vo0_1, \vo0_1, \xzeta0; vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2; vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq; vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq; vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1; vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1; vsub.vv \vo3_1, \vo3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x8 \ + va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, \ + va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, \ + vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, \ + vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, \ + vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1; vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1; vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1; vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1; vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1; vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1; vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1; vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1; vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0; vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2; vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4; vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6; vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0; vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2; vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4; vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6; vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq; vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq; vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq; vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq; vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1; vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1; vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1; vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1; vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv; vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq; vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, \ + va0, va1, va2, va3, \ + vb0, vb1, vb2, vb3, \ + xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0; vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2; vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv; vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv; vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0; vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2; vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq; vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq; vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0; vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2; vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + li a7, 32 + vsetvli a7, a7, e8, m1, tu, mu + vle8.v \vf0, (a1); addi a1, a1, 24 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 16, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0); add t2, t2, t2; add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + li a7, 32; addi t2, a1, 24 + vsetvli a7, a7, e8, m1, tu, mu + vle8.v \vf0, (a1); vle8.v \vf1, (t2); addi a1, a1, 48 + vrgather.vv \vt0, \vf0, \vidx; vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 16, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t; vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff; vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq; vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0; vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0; vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2; add t3, t3, t3; + add a0, a0, t2; vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, \ + vt0, vt1, vt2, vt3, vidx, x0xfff, xq + li a7, 32; addi t2, a1, 24; addi t3, a1, 48; addi t4, a1, 72 + vsetvli a7, a7, e8, m1, tu, mu + vle8.v \vf0, (a1); vle8.v \vf1, (t2) + vle8.v \vf2, (t3); vle8.v \vf3, (t4); addi a1, a1, 24*4 + vrgather.vv \vt0, \vf0, \vidx; vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx; vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 16, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t; vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t; vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff; vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff; vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq; vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq; vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0; vcpop.m t3, \vf1 + vcpop.m t4, \vf2; vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0; vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2; vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2; add t3, t3, t3 + add a0, a0, t2; add t4, t4, t4 + vse16.v \vr1, (a0); add a0, a0, t3 + vse16.v \vr2, (a0); add a0, a0, t4; add t5, t5, t5 + vse16.v \vr3, (a0); add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, \ + vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, \ + vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, \ + vidx_low, vidx_high, x0x55, x0x33 + addi t2, a1, 32; addi t3, a1, 32*2; addi t4, a1, 32*3 + vle8.v \vf0_0, (a1); vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3); vle8.v \vf3_0, (t4) + vsrl.vi \vf0_1, \vf0_0, 1; vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1; vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55; vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55; vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55; vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55; vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1; vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1; vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2; vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2; vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33; vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33; vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33; vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33; vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33; vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33; vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1; vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1; vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4; vsrl.vi \vf1_1, \vf1_0, 4 + vsrl.vi \vf2_1, \vf2_0, 4; vsrl.vi \vf3_1, \vf3_0, 4 + vand.vi \vf0_0, \vf0_0, 0xf; vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf; vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3; vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3; vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3; vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3; vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low; vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high; vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low; vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high; vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low; vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high; vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low; vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high; vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0; vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0; vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0; vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0; vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetvli a7, a7, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0; vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0; vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0; vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0; vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 32*2; addi t3, a0, 32*4; addi t4, a0, 32*6 + vse16.v \vt0_0, (a0); vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3); vse16.v \vt1_2, (t4) + addi t2, a0, 32*8; addi t3, a0, 32*10; addi t4, a0, 32*12; addi t5, a0, 32*14 + vse16.v \vt2_0, (t2); vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4); vse16.v \vt3_2, (t5) +.endm + +.macro cbd3_core_x4 \ + vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, \ + vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, \ + vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, \ + vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, \ + vidx8_0122, vidx_low, vidx_high, \ + x0x249, x0x6DB, x0x70000 + li a7, 32 + vsetvli a7, a7, e8, m1, tu, mu + addi t2, a1, 24; addi t3, a1, 24*2; addi t4, a1, 24*3 + vle8.v \vf0_1, (a1); vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3); vle8.v \vf3_1, (t4) + addi a1, a1, 24*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122; vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122; vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 8, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1; vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1; vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1; vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1; vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249; vand.vx \vf0_1, \vf0_1, \x0x249; vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249; vand.vx \vf1_1, \vf1_1, \x0x249; vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249; vand.vx \vf2_1, \vf2_1, \x0x249; vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249; vand.vx \vf3_1, \vf3_1, \x0x249; vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1; vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1; vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2; vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2; vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3; vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3; vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB;vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB;vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1; vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1; vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10; vsrl.vi \vf0_2, \vf0_0, 12; vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10; vsrl.vi \vf1_2, \vf1_0, 12; vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10; vsrl.vi \vf2_2, \vf2_0, 12; vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10; vsrl.vi \vf3_2, \vf3_0, 12; vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7; vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7; vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7; vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7; vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7; vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7; vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7; vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7; vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1; vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1; vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1; vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1; vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 16, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3; vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3; vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3; vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3; vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low; vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high; vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low; vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high; vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low; vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high; vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low; vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high; vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0; vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0; vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0; vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0; vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 16*2; addi t3, a0, 16*4; addi t4, a0, 16*6 + vse16.v \vf0_0, (a0); vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3); vse16.v \vf1_1, (t4) + addi t2, a0, 16*8; addi t3, a0, 16*10; addi t4, a0, 16*12; addi t5, a0, 16*14 + vse16.v \vf2_0, (t2); vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4); vse16.v \vf3_1, (t5) + addi a0, a0, 16*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +.globl ntt_rvv_vlen256 +.align 2 +ntt_rvv_vlen256: + save_regs + li a7, 16*8 + li t0, 3329; addi a6, a1, _ZETAS_EXP_L0*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t2, 0*2(a6); lh t1, 1*2(a6) + # a[0-127] & a[128-255] + addi a5, a0, 128*2 + vle16.v v16, (a0); vle16.v v24, (a5) + # level 0 + ct_bfu_vx v16, v24, t1, t2, t0, v0, v8 + # level 1 + li a7, 16*4; addi a6, a6, 2*2 + vsetvli a7, a7, e16, m4, tu, mu + lh t2, 0*2(a6); lh t1, 1*2(a6) + lh t4, 2*2(a6); lh t3, 3*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t1, t2, t3, t4, t0, v0, v4, v8, v12 + # level 2 + li a7, 16*2; addi a6, a6, 4*2 + vsetvli a7, a7, e16, m2, tu, mu + lh t2, 0*2(a6); lh t1, 1*2(a6) + lh t4, 2*2(a6); lh t3, 3*2(a6) + lh t6, 4*2(a6); lh t5, 5*2(a6) + lh a3, 6*2(a6); lh a2, 7*2(a6) + ct_bfu_vx_x4 v16, v18, v20, v22, v24, v26, v28, v30, \ + t1, t2, t3, t4, t5, t6, a2, a3, t0, \ + v0, v2, v4, v6, v8, v10, v12, v14 + # level 3 + vsetivli a7, 16, e16, m1, tu, mu + # shuffle8 + li t6, 0x00ff + addi a2, a1, _MASK_0_7x2*2; addi a3, a1, _MASK_8_15x2*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v20, v17, v21, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v22, v19, v23, v12, v13, v14, v15, v1, v2 + shuffle_x2 v24, v28, v25, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v26, v30, v27, v31, v12, v13, v14, v15, v1, v2 + # shuffle4 + li t6, 0x0f0f + addi a2, a1, _MASK_0_3x2_8_11x2*2;addi a3, a1, _MASK_4_7x2_12_15x2*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v18, v20, v22, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v19, v21, v23, v12, v13, v14, v15, v1, v2 + addi a6, a1, _ZETAS_EXP_L3*2 + shuffle_x2 v24, v26, v28, v30, v8, v9, v10, v11, v1, v2 + vl4re16.v v4, (a6); addi a6, a6, 16*4*2 + shuffle_x2 v25, v27, v29, v31, v12, v13, v14, v15, v1, v2 + ct_bfu_vv_x8 \ + v16, v17, v18, v19, v20, v21, v22, v23, \ + v24, v25, v26, v27, v28, v29, v30, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v7, v6, v7, v6, v7, v6, v7, v6, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + # level 4 + # shuffle2 + li t6, 0x3333 + addi a2, a1, _MASK_01014545*2; addi a3, a1, _MASK_23236767*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v17, v18, v19, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v21, v22, v23, v12, v13, v14, v15, v1, v2 + shuffle_x2 v24, v25, v26, v27, v8, v9, v10, v11, v1, v2 + vl4re16.v v4, (a6); addi a6, a6, 16*4*2 + shuffle_x2 v28, v29, v30, v31, v12, v13, v14, v15, v1, v2 + ct_bfu_vv_x8 \ + v16, v20, v17, v21, v18, v22, v19, v23, \ + v24, v28, v25, v29, v26, v30, v27, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v7, v6, v7, v6, v7, v6, v7, v6, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + # level 5 + # shuffle1 + addi a2, a1, _MASK_10325476*2; li t6, 0x5555 + vle16.v v1, (a2); vmv.s.x v0, t6 + shuffle_x2 v16, v20, v17, v21, v8, v9, v10, v11, v1, v1 + shuffle_x2 v18, v22, v19, v23, v12, v13, v14, v15, v1, v1 + shuffle_x2 v24, v28, v25, v29, v8, v9, v10, v11, v1, v1 + vl4re16.v v4, (a6); addi a6, a6, 16*4*2 + shuffle_x2 v26, v30, v27, v31, v12, v13, v14, v15, v1, v1 + ct_bfu_vv_x8 \ + v16, v18, v20, v22, v17, v19, v21, v23, \ + v24, v26, v28, v30, v25, v27, v29, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v7, v6, v7, v6, v7, v6, v7, v6, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + # level 6 + vl8re16.v v0, (a6) + ct_bfu_vv_o_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v16, v17, v20, v21, v18, v19, v22, v23, \ + v1, v0, v1, v0, v3, v2, v3, v2, t0 + vs8r.v v8, (a0) + ct_bfu_vv_o_x4 \ + v8, v10, v9, v11, v12, v14, v13, v15, \ + v24, v25, v28, v29, v26, v27, v30, v31, \ + v5, v4, v5, v4, v7, v6, v7, v6, t0 + vs8r.v v8, (a5) + restore_regs +ret + +.globl intt_rvv_vlen256 +.align 2 +intt_rvv_vlen256: + li a7, 16*8; addi a5, a0, 128*2 + vsetvli a7, a7, e16, m8, tu, mu + li t2, 1441; li t3, -10079 // mont^2/128 and qinv*(mont^2/128) + vle16.v v0, (a0); vle16.v v8, (a5) + li t0, 3329; li a4, 20159 + csrwi vxrm, 0 # round-to-nearest-up (add +0.5 LSB) + montmul_const v16, v0, t2, t3, t0, v24 + montmul_const v24, v8, t2, t3, t0, v0 + vsetivli a7, 16, e16, m1, tu, mu + # level 0 + addi a6, a1, _ZETA_EXP_INTT_L0*2 + vl8re16.v v0, (a6); addi a6, a6, 8*16*2 + gs_bfu_vv_x8 \ + v16, v18, v17, v19, v20, v22, v21, v23, \ + v24, v26, v25, v27, v28, v30, v29, v31, \ + v1, v0, v1, v0, v3, v2, v3, v2, \ + v5, v4, v5, v4, v7, v6, v7, v6, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + # level 1 + vl4re16.v v0, (a6); addi a6, a6, 4*16*2 + gs_bfu_vv_x8 \ + v16, v20, v17, v21, v18, v22, v19, v23, \ + v24, v28, v25, v29, v26, v30, v27, v31, \ + v1, v0, v1, v0, v1, v0, v1, v0, \ + v3, v2, v3, v2, v3, v2, v3, v2, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + # level 2 + # shuffle1 + addi a2, a1, _MASK_10325476*2; li t6, 0x5555 + vle16.v v1, (a2); vmv.s.x v0, t6 + shuffle_x2 v16, v17, v18, v19, v8, v9, v10, v11, v1, v1 + shuffle_x2 v20, v21, v22, v23, v12, v13, v14, v15, v1, v1 + shuffle_x2 v24, v25, v26, v27, v8, v9, v10, v11, v1, v1 + vl4re16.v v4, (a6); addi a6, a6, 4*16*2 + shuffle_x2 v28, v29, v30, v31, v12, v13, v14, v15, v1, v1 + gs_bfu_vv_x8 \ + v16, v17, v18, v19, v20, v21, v22, v23, \ + v24, v25, v26, v27, v28, v29, v30, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v7, v6, v7, v6, v7, v6, v7, v6, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + # level 3 + # shuffle2 + li t6, 0x3333 + addi a2, a1, _MASK_01014545*2; addi a3, a1, _MASK_23236767*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v18, v20, v22, v8, v9, v10, v11, v1, v2 + shuffle_x2 v24, v26, v28, v30, v12, v13, v14, v15, v1, v2 + shuffle_x2 v17, v19, v21, v23, v8, v9, v10, v11, v1, v2 + vl4re16.v v4, (a6); addi a6, a6, 4*16*2 + shuffle_x2 v25, v27, v29, v31, v12, v13, v14, v15, v1, v2 + gs_bfu_vv_x8 \ + v16, v18, v20, v22, v17, v19, v21, v23, \ + v24, v26, v28, v30, v25, v27, v29, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v7, v6, v7, v6, v7, v6, v7, v6, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + barrettRdcX2 v16, v24, v8, v9, a4, t0 + # level 4 + # shuffle4 + li t6, 0x0f0f + addi a2, a1, _MASK_0_3x2_8_11x2*2;addi a3, a1, _MASK_4_7x2_12_15x2*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v12, v13, v14, v15, v1, v2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl4re16.v v4, (a6); addi a6, a6, 4*16*2 + shuffle_x2 v19, v23, v27, v31, v12, v13, v14, v15, v1, v2 + gs_bfu_vv_x8 \ + v16, v20, v17, v21, v18, v22, v19, v23, \ + v24, v28, v25, v29, v26, v30, v27, v31, \ + v5, v4, v5, v4, v5, v4, v5, v4, \ + v7, v6, v7, v6, v7, v6, v7, v6, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + barrettRdcX2 v16, v24, v8, v9, a4, t0 + # level 5 + # shuffle8 + li t6, 0x00ff + addi a2, a1, _MASK_0_7x2*2; addi a3, a1, _MASK_8_15x2*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v17, v18, v19, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v21, v22, v23, v12, v13, v14, v15, v1, v2 + shuffle_x2 v24, v25, v26, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v28, v29, v30, v31, v12, v13, v14, v15, v1, v2 + lh t2, 0*2(a6); lh t1, 1*2(a6) + lh t4, 2*2(a6); lh t3, 3*2(a6) + gs_bfu_vx_x4 \ + v16, v17, v18, v19, v20, v21, v22, v23, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0, \ + v8, v9, v10, v11, v12, v13, v14, v15 + gs_bfu_vx_x4 \ + v24, v25, v26, v27, v28, v29, v30, v31, \ + t3, t4, t3, t4, t3, t4, t3, t4, t0, \ + v0, v1, v2, v3, v4, v5, v6, v7 + barrettRdcX2 v16, v24, v8, v9, a4, t0 + # level 6 + lh t2, 4*2(a6); lh t1, 5*2(a6) + gs_bfu_vx_o_x4 \ + v0, v8, v1, v9, v2, v10, v3, v11, \ + v16, v24, v18, v26, v20, v28, v22, v30, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0 + gs_bfu_vx_o_x4 \ + v4, v12, v5, v13, v6, v14, v7, v15, \ + v17, v25, v19, v27, v21, v29, v23, v31, \ + t1, t2, t1, t2, t1, t2, t1, t2, t0 + vs8r.v v0, (a0); vs8r.v v8, (a5) +ret + +// void poly_basemul_rvv_vlen256(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table); +// (a0b0 + b1 * (a1zeta mod q)) mod q + ((a0b1 + a1b0) mod q)x +.globl poly_basemul_rvv_vlen256 +.align 2 +poly_basemul_rvv_vlen256: + li a7, 32; li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu; li t0, 3329; li t1, -3327 + slli t5, a7, 3; slli a6, a7, 2; slli a7, a7, 1 + add a3, a3, t3; add t3, a6, a7; addi t2, a1, 256*2 +poly_basemul_rvv_vlen256_loop: + vle16.v v0, (a1); vle16.v v8, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v4, (a1); vle16.v v12, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v1, (a1); vle16.v v9, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v5, (a1); vle16.v v13, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v2, (a1); vle16.v v10, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v6, (a1); vle16.v v14, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v3, (a1); vle16.v v11, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v7, (a1); vle16.v v15, (a2); add a1, a1, a7; add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + # a0b1 + a1b0 + vadd.vv v16, v16, v20; vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22; vadd.vv v19, v19, v23 + add a4, a0, a7; add a5, a0, t3; vse16.v v16, (a4); vse16.v v17, (a5) + add a4, a4, t5; add a5, a5, t5; vse16.v v18, (a4); vse16.v v19, (a5) + # load zetas + addi a4, a3, 0; add a5, a3, a7; vle16.v v16, (a4); vle16.v v17, (a5) + add a4, a4, a6; add a5, a5, a6; vle16.v v18, (a4); vle16.v v19, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v24, v25, v26, v27, v4, v5, v6, v7, \ + v16, v17, v18, v19, t0, t1, v28, v29, v30, v31 + montmul_x4 v0, v1, v2, v3, v12, v13, v14, v15, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + # a0b0 + b1 * (a1zeta mod q) + vadd.vv v20, v20, v0; vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2; vadd.vv v23, v23, v3 + addi a4, a0, 0; add a5, a0, a6; vse16.v v20, (a4); vse16.v v21, (a5) + add a4, a4, t5; add a5, a5, t5; vse16.v v22, (a4); vse16.v v23, (a5) + add a0, a0, t5; add a3, a3, t5; add a0, a0, t5 + bltu a1, t2, poly_basemul_rvv_vlen256_loop +ret + +// void poly_basemul_acc_rvv_vlen256(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table) +.globl poly_basemul_acc_rvv_vlen256 +.align 2 +poly_basemul_acc_rvv_vlen256: + li a7, 32; li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu; li t0, 3329; li t1, -3327 + slli t5, a7, 3; slli a6, a7, 2; slli a7, a7, 1 + add a3, a3, t3; add t3, a6, a7; addi t2, a1, 256*2 +poly_basemul_acc_rvv_vlen256_loop: + vle16.v v0, (a1); vle16.v v8, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v4, (a1); vle16.v v12, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v1, (a1); vle16.v v9, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v5, (a1); vle16.v v13, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v2, (a1); vle16.v v10, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v6, (a1); vle16.v v14, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v3, (a1); vle16.v v11, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v7, (a1); vle16.v v15, (a2); add a1, a1, a7; add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + add a4, a0, a7; add a5, a0, t3; vle16.v v24, (a4); vle16.v v25, (a5) + add a4, a4, t5; add a5, a5, t5; vle16.v v26, (a4); vle16.v v27, (a5) + # a0b1 + a1b0; then accumulate + vadd.vv v16, v16, v20; vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22; vadd.vv v19, v19, v23 + vadd.vv v16, v16, v24; vadd.vv v17, v17, v25 + vadd.vv v18, v18, v26; vadd.vv v19, v19, v27 + add a4, a0, a7; add a5, a0, t3; vse16.v v16, (a4); vse16.v v17, (a5) + add a4, a4, t5; add a5, a5, t5; vse16.v v18, (a4); vse16.v v19, (a5) + # load zetas + addi a4, a3, 0; add a5, a3, a7; vle16.v v16, (a4); vle16.v v17, (a5) + add a4, a4, a6; add a5, a5, a6; vle16.v v18, (a4); vle16.v v19, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v24, v25, v26, v27, v4, v5, v6, v7, \ + v16, v17, v18, v19, t0, t1, v28, v29, v30, v31 + montmul_x4 v0, v1, v2, v3, v12, v13, v14, v15, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + addi a4, a0, 0*2; add a5, a0, a6; vle16.v v28, (a4); vle16.v v29, (a5) + add a4, a4, t5; add a5, a5, t5; vle16.v v30, (a4); vle16.v v31, (a5) + # a0b0 + b1 * (a1zeta mod q); then accumulate + vadd.vv v20, v20, v0; vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2; vadd.vv v23, v23, v3 + vadd.vv v20, v20, v28; vadd.vv v21, v21, v29 + vadd.vv v22, v22, v30; vadd.vv v23, v23, v31 + addi a4, a0, 0; add a5, a0, a6; vse16.v v20, (a4); vse16.v v21, (a5) + add a4, a4, t5; add a5, a5, t5; vse16.v v22, (a4); vse16.v v23, (a5) + add a0, a0, t5; add a3, a3, t5; add a0, a0, t5 + bltu a1, t2, poly_basemul_acc_rvv_vlen256_loop +ret + +// void poly_basemul_cache_init_rvv_vlen256(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) +.globl poly_basemul_cache_init_rvv_vlen256 +.align 2 +poly_basemul_cache_init_rvv_vlen256: + li a7, 32; li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu; li t0, 3329; li t1, -3327 + slli t5, a7, 3; slli a6, a7, 2; slli a7, a7, 1 + add a3, a3, t3; add t3, a6, a7; addi t2, a1, 256*2 +poly_basemul_cache_init_rvv_vlen256_loop: + vle16.v v0, (a1); vle16.v v8, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v4, (a1); vle16.v v12, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v1, (a1); vle16.v v9, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v5, (a1); vle16.v v13, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v2, (a1); vle16.v v10, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v6, (a1); vle16.v v14, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v3, (a1); vle16.v v11, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v7, (a1); vle16.v v15, (a2); add a1, a1, a7; add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + # a0b1 + a1b0 + vadd.vv v16, v16, v20; vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22; vadd.vv v19, v19, v23 + add t4, a0, a7; add a5, a0, t3; vse16.v v16, (t4); vse16.v v17, (a5) + add t4, t4, t5; add a5, a5, t5; vse16.v v18, (t4); vse16.v v19, (a5) + # load zetas + addi t4, a3, 0; add a5, a3, a7; vle16.v v16, (t4); vle16.v v17, (a5) + add t4, t4, a6; add a5, a5, a6; vle16.v v18, (t4); vle16.v v19, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v24, v25, v26, v27, v12, v13, v14, v15, \ + v16, v17, v18, v19, t0, t1, v28, v29, v30, v31 + # store b1zeta + addi t4, a4, 0*0; add a5, a4, a7; vse16.v v24, (t4); vse16.v v25, (a5) + add t4, t4, a6; add a5, a5, a6; vse16.v v26, (t4); vse16.v v27, (a5) + montmul_x4 v0, v1, v2, v3, v4, v5, v6, v7, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + # a0b0 + a1 * (b1zeta mod q) + vadd.vv v20, v20, v0; vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2; vadd.vv v23, v23, v3 + addi t4, a0, 0; add a5, a0, a6; vse16.v v20, (t4); vse16.v v21, (a5) + add t4, t4, t5; add a5, a5, t5; vse16.v v22, (t4); vse16.v v23, (a5) + add a0, a0, t5; add a3, a3, t5; add a0, a0, t5; add a4, a4, t5 + bltu a1, t2, poly_basemul_cache_init_rvv_vlen256_loop +ret + +// void poly_basemul_acc_cache_init_rvv_vlen256(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) +.globl poly_basemul_acc_cache_init_rvv_vlen256 +.align 2 +poly_basemul_acc_cache_init_rvv_vlen256: + li a7, 32; li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu; li t0, 3329; li t1, -3327 + slli t5, a7, 3; slli a6, a7, 2; slli a7, a7, 1 + add a3, a3, t3; add t3, a6, a7; addi t2, a1, 256*2 +poly_basemul_acc_cache_init_rvv_vlen256_loop: + vle16.v v0, (a1); vle16.v v8, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v4, (a1); vle16.v v12, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v1, (a1); vle16.v v9, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v5, (a1); vle16.v v13, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v2, (a1); vle16.v v10, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v6, (a1); vle16.v v14, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v3, (a1); vle16.v v11, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v7, (a1); vle16.v v15, (a2); add a1, a1, a7; add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + add t4, a0, a7; add a5, a0, t3; vle16.v v24, (t4); vle16.v v25, (a5) + add t4, t4, t5; add a5, a5, t5; vle16.v v26, (t4); vle16.v v27, (a5) + # a0b1 + a1b0; then accumulate + vadd.vv v16, v16, v20; vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22; vadd.vv v19, v19, v23 + vadd.vv v16, v16, v24; vadd.vv v17, v17, v25 + vadd.vv v18, v18, v26; vadd.vv v19, v19, v27 + add t4, a0, a7; add a5, a0, t3; vse16.v v16, (t4); vse16.v v17, (a5) + add t4, t4, t5; add a5, a5, t5; vse16.v v18, (t4); vse16.v v19, (a5) + # load zetas + addi t4, a3, 0; add a5, a3, a7; vle16.v v16, (t4); vle16.v v17, (a5) + add t4, t4, a6; add a5, a5, a6; vle16.v v18, (t4); vle16.v v19, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v24, v25, v26, v27, v12, v13, v14, v15, \ + v16, v17, v18, v19, t0, t1, v28, v29, v30, v31 + # store b1zeta + addi t4, a4, 0*0; add a5, a4, a7; vse16.v v24, (t4); vse16.v v25, (a5) + add t4, t4, a6; add a5, a5, a6; vse16.v v26, (t4); vse16.v v27, (a5) + montmul_x4 v0, v1, v2, v3, v4, v5, v6, v7, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + addi t4, a0, 0*2; add a5, a0, a6; vle16.v v28, (t4); vle16.v v29, (a5) + add t4, t4, t5; add a5, a5, t5; vle16.v v30, (t4); vle16.v v31, (a5) + # a0b0 + a1 * (b1zeta mod q); then accumulate + vadd.vv v20, v20, v0; vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2; vadd.vv v23, v23, v3 + vadd.vv v20, v20, v28; vadd.vv v21, v21, v29 + vadd.vv v22, v22, v30; vadd.vv v23, v23, v31 + addi t4, a0, 0; add a5, a0, a6; vse16.v v20, (t4); vse16.v v21, (a5) + add t4, t4, t5; add a5, a5, t5; vse16.v v22, (t4); vse16.v v23, (a5) + add a0, a0, t5; add a3, a3, t5; add a0, a0, t5; add a4, a4, t5 + bltu a1, t2, poly_basemul_acc_cache_init_rvv_vlen256_loop +ret + +// void poly_basemul_cached_rvv_vlen256(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) +.globl poly_basemul_cached_rvv_vlen256 +.align 2 +poly_basemul_cached_rvv_vlen256: + li a7, 32; addi t2, a1, 256*2 + vsetvli a7, a7, e16, m1, tu, mu; li t0, 3329; li t1, -3327 + slli t5, a7, 3; slli a6, a7, 2; slli a7, a7, 1 + add t3, a6, a7 +poly_basemul_cached_rvv_vlen256_loop: + vle16.v v0, (a1); vle16.v v8, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v4, (a1); vle16.v v12, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v1, (a1); vle16.v v9, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v5, (a1); vle16.v v13, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v2, (a1); vle16.v v10, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v6, (a1); vle16.v v14, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v3, (a1); vle16.v v11, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v7, (a1); vle16.v v15, (a2); add a1, a1, a7; add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + # a0b1 + a1b0 + vadd.vv v16, v16, v20; vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22; vadd.vv v19, v19, v23 + add t4, a0, a7; add a5, a0, t3; vse16.v v16, (t4); vse16.v v17, (a5) + add t4, t4, t5; add a5, a5, t5; vse16.v v18, (t4); vse16.v v19, (a5) + # load b1zeta + addi t4, a4, 0*0; add a5, a4, a7; vle16.v v24, (t4); vle16.v v25, (a5) + add t4, t4, a6; add a5, a5, a6; vle16.v v26, (t4); vle16.v v27, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v0, v1, v2, v3, v4, v5, v6, v7, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + # a0b0 + a1 * (b1zeta mod q) + vadd.vv v20, v20, v0; vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2; vadd.vv v23, v23, v3 + addi t4, a0, 0; add a5, a0, a6; vse16.v v20, (t4); vse16.v v21, (a5) + add t4, t4, t5; add a5, a5, t5; vse16.v v22, (t4); vse16.v v23, (a5) + add a0, a0, t5; add a0, a0, t5; add a4, a4, t5 + bltu a1, t2, poly_basemul_cached_rvv_vlen256_loop +ret + +// void poly_basemul_acc_cached_rvv_vlen256(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) +.globl poly_basemul_acc_cached_rvv_vlen256 +.align 2 +poly_basemul_acc_cached_rvv_vlen256: + li a7, 32; addi t2, a1, 256*2 + vsetvli a7, a7, e16, m1, tu, mu; li t0, 3329; li t1, -3327 + slli t5, a7, 3; slli a6, a7, 2; slli a7, a7, 1 + add t3, a6, a7 +poly_basemul_acc_cached_rvv_vlen256_loop: + vle16.v v0, (a1); vle16.v v8, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v4, (a1); vle16.v v12, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v1, (a1); vle16.v v9, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v5, (a1); vle16.v v13, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v2, (a1); vle16.v v10, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v6, (a1); vle16.v v14, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v3, (a1); vle16.v v11, (a2); add a1, a1, a7; add a2, a2, a7 + vle16.v v7, (a1); vle16.v v15, (a2); add a1, a1, a7; add a2, a2, a7 + montmul_x4 v16, v17, v18, v19, v0, v1, v2, v3, \ + v12, v13, v14, v15, t0, t1, v24, v25, v26, v27 + montmul_x4 v20, v21, v22, v23, v4, v5, v6, v7, \ + v8, v9, v10, v11, t0, t1, v24, v25, v26, v27 + add t4, a0, a7; add a5, a0, t3; vle16.v v24, (t4); vle16.v v25, (a5) + add t4, t4, t5; add a5, a5, t5; vle16.v v26, (t4); vle16.v v27, (a5) + # a0b1 + a1b0; then accumulate + vadd.vv v16, v16, v20; vadd.vv v17, v17, v21 + vadd.vv v18, v18, v22; vadd.vv v19, v19, v23 + vadd.vv v16, v16, v24; vadd.vv v17, v17, v25 + vadd.vv v18, v18, v26; vadd.vv v19, v19, v27 + add t4, a0, a7; add a5, a0, t3; vse16.v v16, (t4); vse16.v v17, (a5) + add t4, t4, t5; add a5, a5, t5; vse16.v v18, (t4); vse16.v v19, (a5) + # load b1zeta + addi t4, a4, 0*0; add a5, a4, a7; vle16.v v24, (t4); vle16.v v25, (a5) + add t4, t4, a6; add a5, a5, a6; vle16.v v26, (t4); vle16.v v27, (a5) + montmul_x4 v20, v21, v22, v23, v0, v1, v2, v3, \ + v8, v9, v10, v11, t0, t1, v28, v29, v30, v31 + montmul_x4 v0, v1, v2, v3, v4, v5, v6, v7, \ + v24, v25, v26, v27, t0, t1, v28, v29, v30, v31 + addi t4, a0, 0*2; add a5, a0, a6; vle16.v v28, (t4); vle16.v v29, (a5) + add t4, t4, t5; add a5, a5, t5; vle16.v v30, (t4); vle16.v v31, (a5) + # a0b0 + a1 * (b1zeta mod q); then accumulate + vadd.vv v20, v20, v0; vadd.vv v21, v21, v1 + vadd.vv v22, v22, v2; vadd.vv v23, v23, v3 + vadd.vv v20, v20, v28; vadd.vv v21, v21, v29 + vadd.vv v22, v22, v30; vadd.vv v23, v23, v31 + addi t4, a0, 0; add a5, a0, a6; vse16.v v20, (t4); vse16.v v21, (a5) + add t4, t4, t5; add a5, a5, t5; vse16.v v22, (t4); vse16.v v23, (a5) + add a0, a0, t5; add a3, a3, t5; add a0, a0, t5; add a4, a4, t5 + bltu a1, t2, poly_basemul_acc_cached_rvv_vlen256_loop +ret + +.globl poly_reduce_rvv_vlen256 +.align 2 +poly_reduce_rvv_vlen256: + li a7, 16*8; li t0, 3329 + vsetvli a7, a7, e16, m8, tu, mu + csrwi vxrm, 0 # round-to-nearest-up (add +0.5 LSB) + li a6, 20159; add t4, a0, 256*2 + slli t3, a7, 2; slli a7, a7, 1 +poly_reduce_rvv_vlen256_loop: + add a1, a0, a7 + vle16.v v0, (a0); vle16.v v8, (a1) + barrettRdc v0, v16, a6, t0 + barrettRdc v8, v24, a6, t0 + vse16.v v0, (a0); vse16.v v8, (a1) + add a0, a0, t3 + bltu a0, t4, poly_reduce_rvv_vlen256_loop +ret + +.globl poly_tomont_rvv_vlen256 +.align 2 +poly_tomont_rvv_vlen256: + li a7, 16*8; li t0, 3329 + vsetvli a7, a7, e16, m8, tu, mu + # mont^2 and qinv*mont^2 + li t1, 1353; li t2, 20553 + slli t3, a7, 2; slli a7, a7, 1 + add t4, a0, 256*2 +poly_tomont_rvv_vlen256_loop: + add a1, a0, a7 + vle16.v v0, (a0); vle16.v v8, (a1) + montmul_const v16, v0, t1, t2, t0, v24 + montmul_const v24, v8, t1, t2, t0, v0 + vse16.v v16, (a0); vse16.v v24, (a1) + add a0, a0, t3 + bltu a0, t4, poly_tomont_rvv_vlen256_loop +ret + +.globl normal2ntt_order_rvv_vlen256 +.align 2 +normal2ntt_order_rvv_vlen256: + addi a5, a0, 128*2 + # a[0-127] & a[128-255] + vsetivli a7, 16, e16, m1, tu, mu + vl8re16.v v16, (a0); vl8re16.v v24, (a5) + # shuffle8 + li t6, 0x00ff + addi a2, a1, _MASK_0_7x2*2; addi a3, a1, _MASK_8_15x2*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v20, v17, v21, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v22, v19, v23, v12, v13, v14, v15, v1, v2 + shuffle_x2 v24, v28, v25, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v26, v30, v27, v31, v12, v13, v14, v15, v1, v2 + # shuffle4 + li t6, 0x0f0f + addi a2, a1, _MASK_0_3x2_8_11x2*2;addi a3, a1, _MASK_4_7x2_12_15x2*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v18, v20, v22, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v19, v21, v23, v12, v13, v14, v15, v1, v2 + shuffle_x2 v24, v26, v28, v30, v8, v9, v10, v11, v1, v2 + shuffle_x2 v25, v27, v29, v31, v12, v13, v14, v15, v1, v2 + # shuffle2 + li t6, 0x3333 + addi a2, a1, _MASK_01014545*2; addi a3, a1, _MASK_23236767*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v17, v18, v19, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v21, v22, v23, v12, v13, v14, v15, v1, v2 + shuffle_x2 v24, v25, v26, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v28, v29, v30, v31, v12, v13, v14, v15, v1, v2 + # shuffle1 + addi a2, a1, _MASK_10325476*2; li t6, 0x5555 + vle16.v v1, (a2); vmv.s.x v0, t6 + addi a4, a0, 4*16*2; addi a5, a0, 8*16*2; addi a6, a0, 12*16*2 + shuffle_o_x2 v4, v5, v6, v7, v16, v20, v17, v21, v1, v1 + vs4r.v v4, (a0) + shuffle_o_x2 v8, v9, v10, v11, v18, v22, v19, v23, v1, v1 + vs4r.v v8, (a4) + shuffle_o_x2 v12, v13, v14, v15, v24, v28, v25, v29, v1, v1 + vs4r.v v12, (a5) + shuffle_o_x2 v16, v17, v18, v19, v26, v30, v27, v31, v1, v1 + vs4r.v v16, (a6) +ret + +.globl ntt2normal_order_rvv_vlen256 +.align 2 +ntt2normal_order_rvv_vlen256: + addi a5, a0, 128*2 + # a[0-127] & a[128-255] + vsetivli a7, 16, e16, m1, tu, mu + vl8re16.v v16, (a0); vl8re16.v v24, (a5) + # shuffle1 + addi a2, a1, _MASK_10325476*2; li t6, 0x5555 + vle16.v v1, (a2); vmv.s.x v0, t6 + shuffle_x2 v16, v17, v18, v19, v8, v9, v10, v11, v1, v1 + shuffle_x2 v20, v21, v22, v23, v12, v13, v14, v15, v1, v1 + shuffle_x2 v24, v25, v26, v27, v8, v9, v10, v11, v1, v1 + shuffle_x2 v28, v29, v30, v31, v12, v13, v14, v15, v1, v1 + # shuffle2 + li t6, 0x3333 + addi a2, a1, _MASK_01014545*2; addi a3, a1, _MASK_23236767*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v18, v20, v22, v8, v9, v10, v11, v1, v2 + shuffle_x2 v24, v26, v28, v30, v12, v13, v14, v15, v1, v2 + shuffle_x2 v17, v19, v21, v23, v8, v9, v10, v11, v1, v2 + shuffle_x2 v25, v27, v29, v31, v12, v13, v14, v15, v1, v2 + # shuffle4 + li t6, 0x0f0f + addi a2, a1, _MASK_0_3x2_8_11x2*2;addi a3, a1, _MASK_4_7x2_12_15x2*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v12, v13, v14, v15, v1, v2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + shuffle_x2 v19, v23, v27, v31, v12, v13, v14, v15, v1, v2 + # shuffle8 + li t6, 0x00ff + addi a2, a1, _MASK_0_7x2*2; addi a3, a1, _MASK_8_15x2*2 + vle16.v v1, (a2); vle16.v v2, (a3); vmv.s.x v0, t6 + shuffle_o_x2 v8, v12, v9, v13, v16, v17, v18, v19, v1, v2 + shuffle_o_x2 v10, v14, v11, v15, v20, v21, v22, v23, v1, v2 + vs8r.v v8, (a0) + shuffle_o_x2 v16, v20, v17, v21, v24, v25, v26, v27, v1, v2 + shuffle_o_x2 v18, v22, v19, v23, v28, v29, v30, v31, v1, v2 + vs8r.v v16, (a5) +ret + +// void rej_uniform_rvv_vlen256(int16_t *r, const uint8_t *buf, const int16_t *table, uint32_t *ctr_p, uint32_t *pos_p) +.globl rej_uniform_rvv_vlen256 +.align 2 +rej_uniform_rvv_vlen256: + li t0, 0xfff; li t1, 3329 + vsetivli a7, 16, e16, m1, tu, mu + addi t2, a2, _REJ_UNIFORM_IDX8*2 + addi t3, a2, _REJ_UNIFORM_MASK_01*2 + vle16.v v30, (t2); vle16.v v31, (t3) + vmseq.vi v0, v31, 1 + addi a5, a0, 0; addi a6, a1, 0 +# do...while(ctr <= KYBER_N - 16*4 && pos <= REJ_UNIFORM_VECTOR_BUFLEN - 24*4) +rej_uniform_rvv_vlen256_loop_x4: + rej_core_x4 v8, v9, v10, v11, v12, v13, v14, v15, \ + v16, v17, v18, v19, v30, t0, t1 + sub t2, a0, a5; li t4, 256-16*4 + srli t2, t2, 1; sub t3, a1, a6 + li t5, 504-24*4 + bgtu t2, t4, rej_uniform_rvv_vlen256_loopend_x4 + bleu t3, t5, rej_uniform_rvv_vlen256_loop_x4 +rej_uniform_rvv_vlen256_loopend_x4: +# while(ctr <= KYBER_N - 16*2 && pos <= REJ_UNIFORM_VECTOR_BUFLEN - 24*2) +rej_uniform_rvv_vlen256_loop_x2: + sub t2, a0, a5; li t4, 256-16*2 + srli t2, t2, 1; sub t3, a1, a6 + li t5, 504-24*2 + bgtu t2, t4, rej_uniform_rvv_vlen256_loopend_x2 + bgtu t3, t5, rej_uniform_rvv_vlen256_loopend_x2 + rej_core_x2 v8, v9, v12, v13, v16, v17, v30, t0, t1 + j rej_uniform_rvv_vlen256_loop_x2 +rej_uniform_rvv_vlen256_loopend_x2: +# while(ctr <= KYBER_N - 16 && pos <= REJ_UNIFORM_VECTOR_BUFLEN - 24) +rej_uniform_rvv_vlen256_loop_x1: + sub t2, a0, a5; li t4, 256-16 + srli t2, t2, 1; sub t3, a1, a6 + li t5, 504-24 + bgtu t2, t4, rej_uniform_rvv_vlen256_loopend_x1 + bgtu t3, t5, rej_uniform_rvv_vlen256_loopend_x1 + rej_core v8, v12, v16, v30, t0, t1 + j rej_uniform_rvv_vlen256_loop_x1 +rej_uniform_rvv_vlen256_loopend_x1: + sw t2, (a3); sw t3, (a4) +ret + +// void cbd2_rvv_vlen256(int16_t *r, const uint8_t *buf, const int16_t *table) +.globl cbd2_rvv_vlen256 +.align 2 +cbd2_rvv_vlen256: + li a7, 32 + li t0, 0x55; li t1, 0x33 + vsetvli a7, a7, e8, m1, tu, mu + addi t2, a2, _CBD2_MASK_E8_01*2 + addi t3, a2, _CBD2_IDX8_LOW*2 + addi t4, a2, _CBD2_IDX8_HIGH*2 + vle8.v v29, (t2); vle8.v v30, (t3); vle8.v v31, (t4) + vmseq.vi v0, v29, 1 + cbd2_core_x4 v1, v2, v3, v4, v5, v6, v7, v8, \ + v10, v11, v12, v13, v14, v15, v16, v17, \ + v18, v19, v20, v21, v22, v23, v24, v25, \ + v30, v31, t0, t1 +ret + +// void cbd3_rvv_vlen256(int16_t *r, const uint8_t *buf, const int16_t *table) +.globl cbd3_rvv_vlen256 +.align 2 +cbd3_rvv_vlen256: + li t0, 0x249249; li t1, 0x6DB6DB + li a3, 0x70000; li a4, 2 + vsetivli a7, 16, e16, m1, tu, mu + addi t2, a2, _CBD3_MASK_E16_1100*2 + addi t3, a2, _CBD3_MASK_E8_0122*2 + addi t4, a2, _CBD3_IDX16_LOW*2 + addi t5, a2, _CBD3_IDX16_HIGH*2 + vle16.v v28, (t2); vle16.v v29, (t3) + vle16.v v30, (t4); vle16.v v31, (t5) + vmseq.vi v0, v28, 1 +cbd3_rvv_vlen256_loop: + cbd3_core_x4 \ + v2, v3, v4, v5, v6, v7, \ + v8, v9, v10,v11,v12,v13,\ + v14,v15,v16,v17,v18,v19,\ + v20,v21,v22,v23,v24,v25,\ + v29, v30, v31, t0, t1, a3 + addi a4, a4, -1 + bnez a4, cbd3_rvv_vlen256_loop +ret diff --git a/examples/opt/riscv/dilithium_basemul/dilithium_poly_basemul_acc_rvv_vlen128_opt_c908.s b/examples/opt/riscv/dilithium_basemul/dilithium_poly_basemul_acc_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..e6ac91b63 --- /dev/null +++ b/examples/opt/riscv/dilithium_basemul/dilithium_poly_basemul_acc_rvv_vlen128_opt_c908.s @@ -0,0 +1,783 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 va0, va1, va2, va3, va4, va5, va6, va7, xb, xbqinv, xq, vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level0 + ct_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + # level4 + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + # level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + # level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + # level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8,v9,v10,v11,v12,v13,v14,v15 + # shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, v1 + # level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + # level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v18,v17,v19,v20,v22,v21,v23, t1, t2, t1, t2, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 v24,v26,v25,v27,v28,v30,v29,v31, t5, t6, t5, t6, a5, a6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 v16,v17,v18,v19,v20,v21,v22,v23, t2, t3, t0, v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +# q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +# inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +# inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_acc_rvv_vlen128 +.align 2 +poly_basemul_acc_rvv_vlen128_opt_c908: + addi sp, sp, -8*15 # Allocate stack space + save_regs # Save all callee-saved registers + + li a7, 4*8 + li t2, 8 + vsetvli a7, a7, e32, m8, tu, mu + li t0, q + li t1, qinv +poly_basemul_acc_rvv_vlen128_loop: + // Instructions: 13 + // Expected cycles: 59 + // Expected IPC: 0.22 + // + // Cycle bound: 59.0 + // IPC bound: 0.22 + // + // Wall time: 1.30s + // User time: 1.30s + // + // -------------------- cycle (expected) --------------------> + // 0 25 50 + // |------------------------|------------------------|-------- + vle32.v v0, (x12) // *.......................................................... // @slothy:lmul=8 // @slothy:sew=32 + addi x12, x12, 4*4*8 // *.......................................................... + vle32.v v16, (x11) // ..*........................................................ // @slothy:lmul=8 // @slothy:sew=32 + addi x11, x11, 4*4*8 // ..*........................................................ + vmulh.vv v8, v16, v0 // .....*..................................................... // @slothy:lmul=8 // @slothy:sew=32 + vmul.vv v24, v16, v0 // ..............*............................................ // @slothy:lmul=8 // @slothy:sew=32 + vle32.v v0, (x10) // ...............*........................................... // @slothy:lmul=8 // @slothy:sew=32 + vmul.vx v24, v24, x6 // ......................*.................................... // @slothy:lmul=8 // @slothy:sew=32 + vmulh.vx v16, v24, x5 // ................................*.......................... // @slothy:lmul=8 // @slothy:sew=32 + vsub.vv v16, v8, v16 // ........................................*.................. // @slothy:lmul=8 // @slothy:sew=32 + vadd.vv v24, v0, v16 // ..................................................*........ // @slothy:lmul=8 // @slothy:sew=32 + vse32.v v24, (x10) // ..........................................................* // @slothy:lmul=8 // @slothy:sew=32 + addi x10, x10, 4*4*8 // ..........................................................* + + // -------------------- cycle (expected) --------------------> + // 0 25 50 + // |------------------------|------------------------|-------- + // vle32.v v0, (x11) // ..*........................................................ + // addi x11, x11, 4*4*8 // ..*........................................................ + // vle32.v v8, (x12) // *.......................................................... + // addi x12, x12, 4*4*8 // *.......................................................... + // vmul.vv v16, v0, v8 // ..............*............................................ + // vmul.vx v16, v16, x6 // ......................*.................................... + // vmulh.vx v16, v16, x5 // ................................*.......................... + // vmulh.vv v24, v0, v8 // .....*..................................................... + // vsub.vv v16, v24, v16 // ........................................*.................. + // vle32.v v24, (x10) // ...............*........................................... + // vadd.vv v24, v24, v16 // ..................................................*........ + // vse32.v v24, (x10) // ..........................................................* + // addi x10, x10, 4*4*8 // ..........................................................* + + addi t2, t2, -1 + bnez t2, poly_basemul_acc_rvv_vlen128_loop + + restore_regs # Restore all saved registers + addi sp, sp, 8*15 # Deallocate stack space +ret \ No newline at end of file diff --git a/examples/opt/riscv/dilithium_basemul/dilithium_poly_basemul_rvv_vlen128_opt_c908.s b/examples/opt/riscv/dilithium_basemul/dilithium_poly_basemul_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..bf8c1e426 --- /dev/null +++ b/examples/opt/riscv/dilithium_basemul/dilithium_poly_basemul_rvv_vlen128_opt_c908.s @@ -0,0 +1,779 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 va0, va1, va2, va3, va4, va5, va6, va7, xb, xbqinv, xq, vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level0 + ct_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + # level4 + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + # level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + # level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + # level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8,v9,v10,v11,v12,v13,v14,v15 + # shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, v1 + # level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + # level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v18,v17,v19,v20,v22,v21,v23, t1, t2, t1, t2, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 v24,v26,v25,v27,v28,v30,v29,v31, t5, t6, t5, t6, a5, a6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 v16,v17,v18,v19,v20,v21,v22,v23, t2, t3, t0, v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +# q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +# inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +# inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_rvv_vlen128 +.align 2 +poly_basemul_rvv_vlen128_opt_c908: + addi sp, sp, -8*15 # Allocate stack space + save_regs # Save all callee-saved registers + + li a7, 4*8 + li t2, 8 + vsetvli a7, a7, e32, m8, tu, mu + li t0, q + li t1, qinv +poly_basemul_rvv_vlen128_loop: + // Instructions: 11 + // Expected cycles: 50 + // Expected IPC: 0.22 + // + // Cycle bound: 50.0 + // IPC bound: 0.22 + // + // Wall time: 0.66s + // User time: 0.66s + // + // --------------- cycle (expected) ----------------> + // 0 25 + // |------------------------| + vle32.v v16, (x12) // *................................................. // @slothy:lmul=8 // @slothy:sew=32 + addi x12, x12, 4*4*8 // *................................................. + vle32.v v24, (x11) // ..*............................................... // @slothy:lmul=8 // @slothy:sew=32 + addi x11, x11, 4*4*8 // ..*............................................... + vmulh.vv v0, v24, v16 // .....*............................................ // @slothy:lmul=8 // @slothy:sew=32 + vmul.vv v8, v24, v16 // ......*........................................... // @slothy:lmul=8 // @slothy:sew=32 + vmul.vx v8, v8, x6 // .......................*.......................... // @slothy:lmul=8 // @slothy:sew=32 + vmulh.vx v24, v8, x5 // ...............................*.................. // @slothy:lmul=8 // @slothy:sew=32 + vsub.vv v8, v0, v24 // .........................................*........ // @slothy:lmul=8 // @slothy:sew=32 + vse32.v v8, (x10) // .................................................* // @slothy:lmul=8 // @slothy:sew=32 + addi x10, x10, 4*4*8 // .................................................* + + // --------------- cycle (expected) ----------------> + // 0 25 + // |------------------------|------------------------ + // vle32.v v0, (x11) // ..*............................................... + // addi x11, x11, 4*4*8 // ..*............................................... + // vle32.v v8, (x12) // *................................................. + // addi x12, x12, 4*4*8 // *................................................. + // vmul.vv v16, v0, v8 // ......*........................................... + // vmul.vx v16, v16, x6 // .......................*.......................... + // vmulh.vx v16, v16, x5 // ...............................*.................. + // vmulh.vv v24, v0, v8 // .....*............................................ + // vsub.vv v16, v24, v16 // .........................................*........ + // vse32.v v16, (x10) // .................................................* + // addi x10, x10, 4*4*8 // .................................................* + + addi t2, t2, -1 + bnez t2, poly_basemul_rvv_vlen128_loop + + restore_regs # Restore all saved registers + addi sp, sp, 8*15 # Deallocate stack space +ret \ No newline at end of file diff --git a/examples/opt/riscv/keccak/fips202_rv32imbv_hybrid_x3_opt_c908.s b/examples/opt/riscv/keccak/fips202_rv32imbv_hybrid_x3_opt_c908.s new file mode 100644 index 000000000..38faf08b0 --- /dev/null +++ b/examples/opt/riscv/keccak/fips202_rv32imbv_hybrid_x3_opt_c908.s @@ -0,0 +1,3229 @@ +.data +.align 2 +constants_keccak: +.quad 0x0000000000000001 +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x0000000080000001 +.quad 0x8000000080008008 +.quad 0x8000000080008008 + +constants_keccak_bitinter: +.word 0x00000001 +.word 0x00000000 +.word 0x00000000 +.word 0x00000089 +.word 0x00000000 +.word 0x8000008b +.word 0x00000000 +.word 0x80008080 +.word 0x00000001 +.word 0x0000008b +.word 0x00000001 +.word 0x00008000 +.word 0x00000001 +.word 0x80008088 +.word 0x00000001 +.word 0x80000082 +.word 0x00000000 +.word 0x0000000b +.word 0x00000000 +.word 0x0000000a +.word 0x00000001 +.word 0x00008082 +.word 0x00000000 +.word 0x00008003 +.word 0x00000001 +.word 0x0000808b +.word 0x00000001 +.word 0x8000000b +.word 0x00000001 +.word 0x8000008a +.word 0x00000001 +.word 0x80000081 +.word 0x00000000 +.word 0x80000081 +.word 0x00000000 +.word 0x80000008 +.word 0x00000000 +.word 0x00000083 +.word 0x00000000 +.word 0x80008003 +.word 0x00000001 +.word 0x80008088 +.word 0x00000000 +.word 0x80000088 +.word 0x00000001 +.word 0x00008000 +.word 0x00000000 +.word 0x80008082 + +.text + +.macro SaveRegs + sw s0, 0*4(sp) + sw s1, 1*4(sp) + sw s2, 2*4(sp) + sw s3, 3*4(sp) + sw s4, 4*4(sp) + sw s5, 5*4(sp) + sw s6, 6*4(sp) + sw s7, 7*4(sp) + sw s8, 8*4(sp) + sw s9, 9*4(sp) + sw s10, 10*4(sp) + sw s11, 11*4(sp) + sw gp, 12*4(sp) + sw tp, 13*4(sp) + sw ra, 14*4(sp) +.endm + +.macro RestoreRegs + lw s0, 0*4(sp) + lw s1, 1*4(sp) + lw s2, 2*4(sp) + lw s3, 3*4(sp) + lw s4, 4*4(sp) + lw s5, 5*4(sp) + lw s6, 6*4(sp) + lw s7, 7*4(sp) + lw s8, 8*4(sp) + lw s9, 9*4(sp) + lw s10, 10*4(sp) + lw s11, 11*4(sp) + lw gp, 12*4(sp) + lw tp, 13*4(sp) + lw ra, 14*4(sp) +.endm + +.macro LoadStates_v + # load states for vector impl + # lane complement: 1,2,8,12,17,20 +#ifdef V0p7 + vle.v v0, (a0) + addi a0, a0, 16 + vle.v v1, (a0) + addi a0, a0, 16 + vle.v v2, (a0) + addi a0, a0, 16 + vle.v v3, (a0) + addi a0, a0, 16 + vle.v v4, (a0) + addi a0, a0, 16 + vle.v v5, (a0) + addi a0, a0, 16 + vle.v v6, (a0) + addi a0, a0, 16 + vle.v v7, (a0) + addi a0, a0, 16 + vle.v v8, (a0) + addi a0, a0, 16 + vle.v v9, (a0) + addi a0, a0, 16 + vle.v v10, (a0) + addi a0, a0, 16 + vle.v v11, (a0) + addi a0, a0, 16 + vle.v v12, (a0) + addi a0, a0, 16 + vle.v v13, (a0) + addi a0, a0, 16 + vle.v v14, (a0) + addi a0, a0, 16 + vle.v v15, (a0) + addi a0, a0, 16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vle.v v16, (a0) + addi a0, a0, 16 + vle.v v17, (a0) + addi a0, a0, 16 + vle.v v18, (a0) + addi a0, a0, 16 + vle.v v19, (a0) + addi a0, a0, 16 + vle.v v20, (a0) + addi a0, a0, 16 + vle.v v21, (a0) + addi a0, a0, 16 + vle.v v22, (a0) + addi a0, a0, 16 + vle.v v23, (a0) + addi a0, a0, 16 + vnot.v v17, v17 + vnot.v v20, v20 + vle.v v24, (a0) + addi a0, a0, 1*16 +#else + vl8re64.v v0, (a0) + addi a0, a0, 8*16 + vl8re64.v v8, (a0) + addi a0, a0, 8*16 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vl8re64.v v16, (a0) + addi a0, a0, 8*16 + vnot.v v17, v17 + vnot.v v20, v20 + vle64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro StoreStates_v + # store states for vector impl + # lane complement: 1,2,8,12,17,20 + vnot.v v1, v1 + vnot.v v2, v2 + vnot.v v8, v8 + vnot.v v12, v12 + vnot.v v17, v17 + vnot.v v20, v20 +#ifdef V0p7 + vse.v v0, (a0) + addi a0, a0, 16 + vse.v v1, (a0) + addi a0, a0, 16 + vse.v v2, (a0) + addi a0, a0, 16 + vse.v v3, (a0) + addi a0, a0, 16 + vse.v v4, (a0) + addi a0, a0, 16 + vse.v v5, (a0) + addi a0, a0, 16 + vse.v v6, (a0) + addi a0, a0, 16 + vse.v v7, (a0) + addi a0, a0, 16 + vse.v v8, (a0) + addi a0, a0, 16 + vse.v v9, (a0) + addi a0, a0, 16 + vse.v v10, (a0) + addi a0, a0, 16 + vse.v v11, (a0) + addi a0, a0, 16 + vse.v v12, (a0) + addi a0, a0, 16 + vse.v v13, (a0) + addi a0, a0, 16 + vse.v v14, (a0) + addi a0, a0, 16 + vse.v v15, (a0) + addi a0, a0, 16 + vse.v v16, (a0) + addi a0, a0, 16 + vse.v v17, (a0) + addi a0, a0, 16 + vse.v v18, (a0) + addi a0, a0, 16 + vse.v v19, (a0) + addi a0, a0, 16 + vse.v v20, (a0) + addi a0, a0, 16 + vse.v v21, (a0) + addi a0, a0, 16 + vse.v v22, (a0) + addi a0, a0, 16 + vse.v v23, (a0) + addi a0, a0, 16 + vse.v v24, (a0) + addi a0, a0, 1*16 +#else + vs8r.v v0, (a0) + addi a0, a0, 8*16 + vs8r.v v8, (a0) + addi a0, a0, 8*16 + vs8r.v v16, (a0) + addi a0, a0, 8*16 + vse64.v v24, (a0) + addi a0, a0, 1*16 +#endif +.endm + +.macro LoadStates_s S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \S02l_s, 2*8(a0) + lw \S02h_s, 2*8+4(a0) + lw \S04l_s, 4*8(a0) + lw \S04h_s, 4*8+4(a0) + lw \S05l_s, 5*8(a0) + lw \S05h_s, 5*8+4(a0) + lw \S08l_s, 8*8(a0) + lw \S08h_s, 8*8+4(a0) + lw \S10l_s, 10*8(a0) + lw \S10h_s, 10*8+4(a0) + lw \S14l_s, 14*8(a0) + lw \S14h_s, 14*8+4(a0) + lw \S16l_s, 16*8(a0) + lw \S16h_s, 16*8+4(a0) + lw \S17l_s, 17*8(a0) + lw \S17h_s, 17*8+4(a0) + lw \S21l_s, 21*8(a0) + lw \S21h_s, 21*8+4(a0) + lw \S23l_s, 23*8(a0) + lw \S23h_s, 23*8+4(a0) +.endm + +.macro StoreStates_s S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + sw \S02l_s, 2*8(a0) + sw \S02h_s, 2*8+4(a0) + sw \S04l_s, 4*8(a0) + sw \S04h_s, 4*8+4(a0) + sw \S05l_s, 5*8(a0) + sw \S05h_s, 5*8+4(a0) + sw \S08l_s, 8*8(a0) + sw \S08h_s, 8*8+4(a0) + sw \S10l_s, 10*8(a0) + sw \S10h_s, 10*8+4(a0) + sw \S14l_s, 14*8(a0) + sw \S14h_s, 14*8+4(a0) + sw \S16l_s, 16*8(a0) + sw \S16h_s, 16*8+4(a0) + sw \S17l_s, 17*8(a0) + sw \S17h_s, 17*8+4(a0) + sw \S21l_s, 21*8(a0) + sw \S21h_s, 21*8+4(a0) + sw \S23l_s, 23*8(a0) + sw \S23h_s, 23*8+4(a0) +.endm + +.macro ARound S00_v, S01_v, S02_v, S03_v, S04_v, S05_v, S06_v, S07_v, S08_v, S09_v, S10_v, S11_v, S12_v, S13_v, S14_v, S15_v, S16_v, S17_v, S18_v, S19_v, S20_v, S21_v, S22_v, S23_v, S24_v, T00_v, T01_v, T02_v, T03_v, T04_v, T05_v, T06_v, S02h_s, S02l_s, S04h_s, S04l_s, S05h_s, S05l_s, S08h_s, S08l_s, S10h_s, S10l_s, S14h_s, S14l_s, S16h_s, S16l_s, S17h_s, S17l_s, S21h_s, S21l_s, S23h_s, S23l_s, T00h_s, T00l_s, T01h_s, T01l_s, T02h_s, T02l_s, T03h_s, T03l_s, T04_s + lw \T03l_s, 0*8(a0) + lw \T03h_s, 0*8+4(a0) + xor \T00l_s, \S05l_s, \S10l_s + vxor.vv \T00_v, \S01_v, \S06_v + xor \T00h_s, \S05h_s, \S10h_s + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vxor.vv \T01_v, \S04_v, \S09_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + lw \T03l_s, 20*8(a0) + vxor.vv \T02_v, \S03_v, \S08_v + lw \T03h_s, 20*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + xor \T00h_s, \T00h_s, \T02h_s + vxor.vv \T00_v, \T00_v, \S11_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \T01_v, \T01_v, \S14_v + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + vxor.vv \T02_v, \T02_v, \S13_v + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + vxor.vv \T00_v, \T00_v, \S16_v + xor \T01l_s, \S08l_s, \S23l_s + xor \T01h_s, \S08h_s, \S23h_s + vxor.vv \T01_v, \T01_v, \S19_v + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + vxor.vv \T02_v, \T02_v, \S18_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + vxor.vv \T00_v, \T00_v, \S21_v + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + vxor.vv \T01_v, \T01_v, \S24_v + xor \T01h_s, \T01h_s, \T02h_s + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + vxor.vv \T02_v, \T02_v, \S23_v + li \T04_s, 64-1 + sw \T01l_s, 24*4(sp) + sw \T01h_s, 25*4(sp) + rori \T03h_s, \T00h_s, 32-1 + vsll.vi \T05_v, \T00_v, 1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + lw \T03l_s, 9*8(a0) + vsll.vi \T06_v, \T02_v, 1 + lw \T03h_s, 9*8+4(a0) + xor \T01l_s, \S04l_s, \S14l_s + vsrl.vx \T03_v, \T00_v, \T04_s + xor \T01h_s, \S04h_s, \S14h_s + xor \S04l_s, \S04l_s, \T00l_s + vsrl.vx \T04_v, \T02_v, \T04_s + xor \S04h_s, \S04h_s, \T00h_s + xor \S14l_s, \S14l_s, \T00l_s + vxor.vv \T03_v, \T03_v, \T05_v + xor \S14h_s, \S14h_s, \T00h_s + lw \T02l_s, 19*8(a0) + vxor.vv \T04_v, \T04_v, \T06_v + lw \T02h_s, 19*8+4(a0) + xor \T01l_s, \T01l_s, \T03l_s + vxor.vv \T03_v, \T03_v, \T01_v + xor \T01h_s, \T01h_s, \T03h_s + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \T04_v, \T04_v, \T00_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 9*8(a0) + sw \T03h_s, 9*8+4(a0) + vxor.vv \T05_v, \S00_v, \S05_v + lw \T03l_s, 24*8(a0) + lw \T03h_s, 24*8+4(a0) + xor \T01l_s, \T01l_s, \T02l_s + vxor.vv \T06_v, \S02_v, \S07_v + xor \T01h_s, \T01h_s, \T02h_s + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vxor.vv \T05_v, \T05_v, \S10_v + xor \T01l_s, \T01l_s, \T03l_s + xor \T01h_s, \T01h_s, \T03h_s + sw \T02l_s, 19*8(a0) + vxor.vv \T06_v, \T06_v, \S12_v + sw \T02h_s, 19*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \T05_v, \T05_v, \S15_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T01l_s, 26*4(sp) + vxor.vv \T06_v, \T06_v, \S17_v + sw \T01h_s, 27*4(sp) + sw \T03l_s, 24*8(a0) + vxor.vv \T05_v, \T05_v, \S20_v + sw \T03h_s, 24*8+4(a0) + lw \T03l_s, 1*8(a0) + vxor.vv \T06_v, \T06_v, \S22_v + lw \T03h_s, 1*8+4(a0) + xor \T00l_s, \S16l_s, \S21l_s + vxor.vv \S00_v, \S00_v, \T03_v + xor \T00h_s, \S16h_s, \S21h_s + lw \T02l_s, 6*8(a0) + vxor.vv \S05_v, \S05_v, \T03_v + lw \T02h_s, 6*8+4(a0) + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \S10_v, \S10_v, \T03_v + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + xor \T00l_s, \T00l_s, \T02l_s + vxor.vv \S15_v, \S15_v, \T03_v + xor \T00h_s, \T00h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + vxor.vv \S20_v, \S20_v, \T03_v + sw \T00l_s, 20*4(sp) + sw \T00h_s, 21*4(sp) + rori \T03h_s, \T00h_s, 32-1 + vxor.vv \S02_v, \S02_v, \T04_v + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + + vxor.vv \S07_v, \S07_v, \T04_v + lw \T02l_s, 0*8(a0) + lw \T02h_s, 0*8+4(a0) + vxor.vv \S12_v, \S12_v, \T04_v + xor \S05l_s, \S05l_s, \T00l_s + xor \S05h_s, \S05h_s, \T00h_s + vsll.vi \T03_v, \T01_v, 1 + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + vsrl.vx \T00_v, \T01_v, \T04_s + sw \T02l_s, 0*8(a0) + sw \T02h_s, 0*8+4(a0) + vxor.vv \S17_v, \S17_v, \T04_v + lw \T02l_s, 15*8(a0) + lw \T02h_s, 15*8+4(a0) + vxor.vv \S22_v, \S22_v, \T04_v + xor \S10l_s, \S10l_s, \T00l_s + xor \S10h_s, \S10h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vxor.vv \T00_v, \T00_v, \T03_v + xor \T02h_s, \T02h_s, \T00h_s + lw \T03l_s, 20*8(a0) + lw \T03h_s, 20*8+4(a0) + vxor.vv \T00_v, \T00_v, \T06_v + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + lw \T02h_s, 25*4(sp) + vxor.vv \S03_v, \S03_v, \T00_v + lw \T02l_s, 24*4(sp) + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + vxor.vv \S08_v, \S08_v, \T00_v + sw \T03l_s, 20*8(a0) + sw \T03h_s, 20*8+4(a0) + vxor.vv \S13_v, \S13_v, \T00_v + lw \T00h_s, 21*4(sp) + lw \T00l_s, 20*4(sp) + vxor.vv \S18_v, \S18_v, \T00_v + rori \T03h_s, \T02h_s, 32-1 + xor \T02h_s, \T02l_s, \T00h_s + + vxor.vv \S23_v, \S23_v, \T00_v + xor \T02l_s, \T03h_s, \T00l_s + lw \T03l_s, 7*8(a0) + vsll.vi \T00_v, \T06_v, 1 + lw \T03h_s, 7*8+4(a0) + xor \T00l_s, \S02l_s, \S17l_s + vsll.vi \T03_v, \T05_v, 1 + xor \T00h_s, \S02h_s, \S17h_s + xor \T00l_s, \T00l_s, \T03l_s + vsrl.vx \T01_v, \T06_v, \T04_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vsrl.vx \T04_v, \T05_v, \T04_s + sw \T03l_s, 7*8(a0) + sw \T03h_s, 7*8+4(a0) + lw \T03l_s, 12*8(a0) + vxor.vv \T01_v, \T01_v, \T00_v + lw \T03h_s, 12*8+4(a0) + xor \S02l_s, \S02l_s, \T02l_s + xor \S02h_s, \S02h_s, \T02h_s + vxor.vv \T04_v, \T04_v, \T03_v + xor \T00l_s, \T00l_s, \T03l_s + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + vxor.vv \T01_v, \T01_v, \T05_v + xor \T03h_s, \T03h_s, \T02h_s + sw \T03l_s, 12*8(a0) + vxor.vv \T04_v, \T04_v, \T02_v + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + vxor.vv \S01_v, \S01_v, \T01_v + lw \T03h_s, 22*8+4(a0) + xor \S17l_s, \S17l_s, \T02l_s + vxor.vv \S06_v, \S06_v, \T01_v + xor \S17h_s, \S17h_s, \T02h_s + xor \T00l_s, \T00l_s, \T03l_s + vxor.vv \S11_v, \S11_v, \T01_v + xor \T00h_s, \T00h_s, \T03h_s + xor \T03l_s, \T03l_s, \T02l_s + vxor.vv \S16_v, \S16_v, \T01_v + xor \T03h_s, \T03h_s, \T02h_s + sw \T00l_s, 22*4(sp) + vxor.vv \S21_v, \S21_v, \T01_v + sw \T00h_s, 23*4(sp) + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + vxor.vv \S04_v, \S04_v, \T04_v + rori \T03h_s, \T01h_s, 32-1 + xor \T01h_s, \T01l_s, \T00h_s + xor \T01l_s, \T03h_s, \T00l_s + + vxor.vv \S09_v, \S09_v, \T04_v + lw \T03l_s, 3*8(a0) + lw \T03h_s, 3*8+4(a0) + xor \S08l_s, \S08l_s, \T01l_s + vxor.vv \S14_v, \S14_v, \T04_v + xor \S08h_s, \S08h_s, \T01h_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + vxor.vv \S19_v, \S19_v, \T04_v + lw \T02l_s, 13*8(a0) + lw \T02h_s, 13*8+4(a0) + vxor.vv \S24_v, \S24_v, \T04_v + sw \T03l_s, 3*8(a0) + sw \T03h_s, 3*8+4(a0) + vmv.v.v \T00_v, \S00_v + li \T04_s, 44 + xor \T02l_s, \T02l_s, \T01l_s + xor \T02h_s, \T02h_s, \T01h_s + vsrl.vi \T01_v, \S06_v, 20 + lw \T03l_s, 18*8(a0) + lw \T03h_s, 18*8+4(a0) + vsll.vx \T02_v, \S06_v, \T04_s + li \T04_s, 62 + xor \S23l_s, \S23l_s, \T01l_s + xor \S23h_s, \S23h_s, \T01h_s + vsrl.vi \S00_v, \S02_v, 2 + sw \T02l_s, 13*8(a0) + sw \T02h_s, 13*8+4(a0) + vsll.vx \T03_v, \S02_v, \T04_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + lw \T01l_s, 18*4(sp) + vxor.vv \T01_v, \T01_v, \T02_v + lw \T01h_s, 19*4(sp) + sw \T03l_s, 18*8(a0) + sw \T03h_s, 18*8+4(a0) + vxor.vv \S00_v, \S00_v, \T03_v + li \T04_s, 43 + rori \T03h_s, \T00h_s, 32-1 + xor \T00h_s, \T00l_s, \T01h_s + xor \T00l_s, \T03h_s, \T01l_s + + vsrl.vi \S02_v, \S12_v, 21 + lw \T02l_s, 1*8(a0) + lw \T02h_s, 1*8+4(a0) + xor \S16l_s, \S16l_s, \T00l_s + vsll.vx \T02_v, \S12_v, \T04_s + li \T04_s, 39 + xor \S16h_s, \S16h_s, \T00h_s + xor \T02l_s, \T02l_s, \T00l_s + vsll.vi \T03_v, \S13_v, 25 + xor \T02h_s, \T02h_s, \T00h_s + lw \T03l_s, 6*8(a0) + vsrl.vx \S12_v, \S13_v, \T04_s + lw \T03h_s, 6*8+4(a0) + sw \T02l_s, 1*8(a0) + vxor.vv \S02_v, \S02_v, \T02_v + sw \T02h_s, 1*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \S12_v, \S12_v, \T03_v + li \T04_s, 56 + xor \T03h_s, \T03h_s, \T00h_s + lw \T02l_s, 11*8(a0) + vsll.vi \T02_v, \S19_v, 8 + lw \T02h_s, 11*8+4(a0) + xor \S21l_s, \S21l_s, \T00l_s + vsrl.vx \S13_v, \S19_v, \T04_s + li \T04_s, 56 + xor \S21h_s, \S21h_s, \T00h_s + sw \T03l_s, 6*8(a0) + sw \T03h_s, 6*8+4(a0) + vsrl.vi \S19_v, \S23_v, 8 + xor \T02l_s, \T02l_s, \T00l_s + xor \T02h_s, \T02h_s, \T00h_s + sw \T02l_s, 11*8(a0) + vsll.vx \T03_v, \S23_v, \T04_s + sw \T02h_s, 11*8+4(a0) + mv \T02l_s, \T03l_s + mv \T02h_s, \T03h_s + vxor.vv \S13_v, \S13_v, \T02_v + rori \T03l_s, \S21l_s, 31 + rori \T03h_s, \S21h_s, 31 + lw \T00l_s, 0*8(a0) + vxor.vv \S19_v, \S19_v, \T03_v + li \T04_s, 41 + lw \T00h_s, 0*8+4(a0) + rori \T01l_s, \T02l_s, 10 + vsrl.vi \S23_v, \S15_v, 23 + rori \T01h_s, \T02h_s, 10 + sw \T03l_s, 0*8(a0) + vsll.vx \T02_v, \S15_v, \T04_s + li \T04_s, 63 + sw \T03h_s, 0*8+4(a0) + rori \S21h_s, \S08l_s, 5 + vsll.vi \T03_v, \S01_v, 1 + rori \S21l_s, \S08h_s, 4 + lw \T02l_s, 3*8(a0) + vsrl.vx \S15_v, \S01_v, \T04_s + lw \T02h_s, 3*8+4(a0) + rori \S08h_s, \S16l_s, 10 + vxor.vv \S23_v, \S23_v, \T02_v + rori \S08l_s, \S16h_s, 9 + lw \T03l_s, 18*8(a0) + vxor.vv \S15_v, \S15_v, \T03_v + li \T04_s, 55 + lw \T03h_s, 18*8+4(a0) + rori \S16l_s, \S05l_s, 14 + rori \S16h_s, \S05h_s, 14 + vsrl.vi \S01_v, \S08_v, 9 + sw \T00l_s, 18*4(sp) + sw \T00h_s, 19*4(sp) + rori \S05l_s, \T02l_s, 18 + vsll.vx \T02_v, \S08_v, \T04_s + li \T04_s, 45 + rori \S05h_s, \T02h_s, 18 + rori \T02h_s, \T03l_s, 22 + rori \T02l_s, \T03h_s, 21 + vsrl.vi \S08_v, \S16_v, 19 + sw \T02l_s, 3*8(a0) + sw \T02h_s, 3*8+4(a0) + lw \T02l_s, 13*8+4(a0) + vsll.vx \T03_v, \S16_v, \T04_s + lw \T02h_s, 13*8(a0) + rori \T03h_s, \T02h_s, 20 + vxor.vv \S01_v, \S01_v, \T02_v + rori \T03l_s, \T02l_s, 19 + sw \T03l_s, 18*8(a0) + vxor.vv \S08_v, \S08_v, \T03_v + li \T04_s, 58 + sw \T03h_s, 18*8+4(a0) + rori \T02h_s, \S10l_s, 31 + vsll.vi \T02_v, \S07_v, 6 + rori \T02l_s, \S10h_s, 30 + lw \T03l_s, 1*8(a0) + vsrl.vx \S16_v, \S07_v, \T04_s + li \T04_s, 61 + lw \T03h_s, 1*8+4(a0) + sw \T02l_s, 13*8(a0) + vsll.vi \T03_v, \S10_v, 3 + sw \T02h_s, 13*8+4(a0) + mv \S10h_s, \T03l_s + vsrl.vx \S07_v, \S10_v, \T04_s + rori \S10l_s, \T03h_s, 31 + sw \T01l_s, 20*4(sp) + sw \T01h_s, 21*4(sp) + vxor.vv \S16_v, \S16_v, \T02_v + rori \T02l_s, \S02l_s, 1 + rori \T02h_s, \S02h_s, 1 + lw \T03l_s, 12*8(a0) + vxor.vv \S07_v, \S07_v, \T03_v + li \T04_s, 36 + lw \T03h_s, 12*8+4(a0) + sw \T02l_s, 1*8(a0) + sw \T02h_s, 1*8+4(a0) + vsll.vi \T02_v, \S03_v, 28 + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + rori \S02h_s, \T03l_s, 11 + vsrl.vx \S10_v, \S03_v, \T04_s + li \T04_s, 43 + rori \S02l_s, \T03h_s, 10 + rori \T03l_s, \T02l_s, 22 + vsll.vi \T03_v, \S18_v, 21 + rori \T03h_s, \T02h_s, 22 + sw \T03l_s, 12*8(a0) + vsrl.vx \S03_v, \S18_v, \T04_s + sw \T03h_s, 12*8+4(a0) + lw \T03l_s, 22*8(a0) + vxor.vv \S10_v, \S10_v, \T02_v + lw \T03h_s, 22*8+4(a0) + rori \T02h_s, \T03l_s, 2 + vxor.vv \S03_v, \S03_v, \T03_v + li \T04_s, 49 + rori \T02l_s, \T03h_s, 1 + sw \T02l_s, 9*8(a0) + vsll.vi \T02_v, \S17_v, 15 + sw \T02h_s, 9*8+4(a0) + rori \T03h_s, \S14l_s, 13 + vsrl.vx \S18_v, \S17_v, \T04_s + li \T04_s, 54 + rori \T03l_s, \S14h_s, 12 + lw \T02l_s, 20*8(a0) + lw \T02h_s, 20*8+4(a0) + vsll.vi \T03_v, \S11_v, 10 + sw \T03l_s, 22*8(a0) + sw \T03h_s, 22*8+4(a0) + rori \S14l_s, \T02l_s, 23 + vsrl.vx \S17_v, \S11_v, \T04_s + rori \S14h_s, \T02h_s, 23 + rori \T02l_s, \S23l_s, 4 + rori \T02h_s, \S23h_s, 4 + vxor.vv \S18_v, \S18_v, \T02_v + lw \T03l_s, 15*8(a0) + lw \T03h_s, 15*8+4(a0) + sw \T02l_s, 20*8(a0) + vxor.vv \S17_v, \S17_v, \T03_v + li \T04_s, 44 + sw \T02h_s, 20*8+4(a0) + rori \S23h_s, \T03l_s, 12 + vsll.vi \T02_v, \S09_v, 20 + rori \S23l_s, \T03h_s, 11 + rori \T02h_s, \S04l_s, 19 + vsrl.vx \S11_v, \S09_v, \T04_s + li \T04_s, 61 + rori \T02l_s, \S04h_s, 18 + lw \T03l_s, 24*8(a0) + vsrl.vi \S09_v, \S22_v, 3 + lw \T03h_s, 24*8+4(a0) + sw \T02l_s, 15*8(a0) + vsll.vx \T03_v, \S22_v, \T04_s + sw \T02h_s, 15*8+4(a0) + rori \S04l_s, \T03l_s, 25 + vxor.vv \S11_v, \S11_v, \T02_v + rori \S04h_s, \T03h_s, 25 + rori \T02h_s, \S17l_s, 25 + vxor.vv \S09_v, \S09_v, \T03_v + li \T04_s, 39 + rori \T02l_s, \S17h_s, 24 + lw \T03l_s, 11*8(a0) + lw \T03h_s, 11*8+4(a0) + vsrl.vi \S22_v, \S14_v, 25 + sw \T02l_s, 24*8(a0) + sw \T02h_s, 24*8+4(a0) + lw \T02l_s, 7*8+4(a0) + vsll.vx \T02_v, \S14_v, \T04_s + li \T04_s, 46 + lw \T02h_s, 7*8(a0) + rori \S17l_s, \T03l_s, 27 + rori \S17h_s, \T03h_s, 27 + vsll.vi \T03_v, \S20_v, 18 + rori \T03l_s, \T02h_s, 29 + rori \T03h_s, \T02l_s, 29 + lw \T02l_s, 19*8(a0) + vsrl.vx \S14_v, \S20_v, \T04_s + lw \T02h_s, 19*8+4(a0) + sw \T03l_s, 11*8(a0) + vxor.vv \S22_v, \S22_v, \T02_v + sw \T03h_s, 11*8+4(a0) + rori \T03l_s, \T02l_s, 28 + vxor.vv \S14_v, \S14_v, \T03_v + li \T04_s, 37 + rori \T03h_s, \T02h_s, 28 + lw \T01l_s, 13*8(a0) + vsll.vi \T02_v, \S04_v, 27 + lw \T01h_s, 13*8+4(a0) + sw \T03l_s, 19*8(a0) + vsrl.vx \S20_v, \S04_v, \T04_s + li \T04_s, 50 + sw \T03h_s, 19*8+4(a0) + lw \T00l_s, 12*8(a0) + vsll.vi \T03_v, \S24_v, 14 + lw \T00h_s, 12*8+4(a0) + andn \T03l_s, \S08l_s, \T01l_s + + vsrl.vx \S04_v, \S24_v, \T04_s + andn \T03h_s, \S08h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + vxor.vv \S20_v, \S20_v, \T02_v + lw \T02l_s, 9*8(a0) + lw \T02h_s, 9*8+4(a0) + sw \T03l_s, 6*8(a0) + vxor.vv \S04_v, \S04_v, \T03_v + li \T04_s, 62 + sw \T03h_s, 6*8+4(a0) + andn \T03l_s, \T02l_s, \S08l_s + andn \T03h_s, \T02h_s, \S08h_s + + vsll.vi \T02_v, \S21_v, 2 + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 7*8(a0) + vsrl.vx \S24_v, \S21_v, \T04_s + li \T04_s, 36 + sw \T03h_s, 7*8+4(a0) + andn \T03l_s, \S05l_s, \T02l_s + + vsrl.vi \S21_v, \S05_v, 28 + andn \T03h_s, \S05h_s, \T02h_s + xor \S08l_s, \T03l_s, \S08l_s + vsll.vx \T03_v, \S05_v, \T04_s + xor \S08h_s, \T03h_s, \S08h_s + andn \T03l_s, \T00l_s, \S05l_s + + vxor.vv \S24_v, \S24_v, \T02_v + andn \T03h_s, \T00h_s, \S05h_s + xor \T02l_s, \T03l_s, \T02l_s + vxor.vv \S21_v, \S21_v, \T03_v + xor \T02h_s, \T03h_s, \T02h_s + sw \T02l_s, 9*8(a0) + vor.vv \T02_v, \S11_v, \S07_v + sw \T02h_s, 9*8+4(a0) + andn \T03l_s, \T01l_s, \T00l_s + + vand.vv \T03_v, \S07_v, \S08_v + andn \T03h_s, \T01h_s, \T00h_s + lw \T01l_s, 19*8(a0) + lw \T01h_s, 19*8+4(a0) + vnot.v \T04_v, \S09_v + xor \S05h_s, \T03h_s, \S05h_s + xor \S05l_s, \T03l_s, \S05l_s + lw \T00l_s, 18*8(a0) + vor.vv \T05_v, \S09_v, \S10_v + lw \T00h_s, 18*8+4(a0) + andn \T03l_s, \S14l_s, \T01l_s + andn \T03h_s, \S14h_s, \T01h_s + + vxor.vv \S05_v, \S10_v, \T02_v + lw \T02l_s, 11*8(a0) + lw \T02h_s, 11*8+4(a0) + xor \T03l_s, \T03l_s, \T00l_s + + vor.vv \T04_v, \T04_v, \S08_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 12*8(a0) + vxor.vv \S06_v, \S11_v, \T03_v + sw \T03h_s, 12*8+4(a0) + andn \T03l_s, \S10l_s, \S14l_s + + vxor.vv \S07_v, \S07_v, \T04_v + andn \T03h_s, \S10h_s, \S14h_s + xor \T03l_s, \T03l_s, \T01l_s + vxor.vv \S08_v, \S08_v, \T05_v + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 13*8(a0) + vand.vv \T02_v, \S10_v, \S11_v + sw \T03h_s, 13*8+4(a0) + andn \T03l_s, \T02l_s, \S10l_s + + vor.vv \T03_v, \S16_v, \S12_v + andn \T03h_s, \T02h_s, \S10h_s + xor \S14l_s, \T03l_s, \S14l_s + vnot.v \T05_v, \S13_v + xor \S14h_s, \T03h_s, \S14h_s + andn \T03l_s, \T00l_s, \T02l_s + andn \T03h_s, \T00h_s, \T02h_s + + vand.vv \T04_v, \S12_v, \S13_v + xor \S10l_s, \T03l_s, \S10l_s + xor \S10h_s, \T03h_s, \S10h_s + andn \T03l_s, \T01l_s, \T00l_s + + vxor.vv \S09_v, \S09_v, \T02_v + andn \T03h_s, \T01h_s, \T00h_s + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + vand.vv \T05_v, \T05_v, \S14_v + lw \T01l_s, 20*8(a0) + lw \T01h_s, 20*8+4(a0) + sw \T02l_s, 11*8(a0) + vxor.vv \S10_v, \S15_v, \T03_v + sw \T02h_s, 11*8+4(a0) + lw \T02l_s, 15*8(a0) + vxor.vv \S11_v, \S16_v, \T04_v + lw \T02h_s, 15*8+4(a0) + lw \T00l_s, 24*8(a0) + vxor.vv \S12_v, \S12_v, \T05_v + lw \T00h_s, 24*8+4(a0) + andn \T03l_s, \T02l_s, \T01l_s + + vnot.v \T03_v, \S13_v + andn \T03h_s, \T02h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + vand.vv \T04_v, \S15_v, \S16_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 18*8(a0) + vand.vv \T05_v, \S21_v, \S17_v + sw \T03h_s, 18*8+4(a0) + andn \T03l_s, \S16l_s, \T02l_s + + vor.vv \T02_v, \S14_v, \S15_v + andn \T03h_s, \S16h_s, \T02h_s + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + vxor.vv \S14_v, \S14_v, \T04_v + sw \T03l_s, 19*8(a0) + sw \T03h_s, 19*8+4(a0) + andn \T03l_s, \S17l_s, \S16l_s + + vxor.vv \S15_v, \S20_v, \T05_v + andn \T03h_s, \S17h_s, \S16h_s + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + vxor.vv \S13_v, \T03_v, \T02_v + sw \T02l_s, 15*8(a0) + sw \T02h_s, 15*8+4(a0) + andn \T03l_s, \T00l_s, \S17l_s + + vnot.v \T03_v, \S18_v + andn \T03h_s, \T00h_s, \S17h_s + xor \S16l_s, \T03l_s, \S16l_s + vnot.v \T05_v, \S18_v + xor \S16h_s, \T03h_s, \S16h_s + andn \T03l_s, \T01l_s, \T00l_s + + vor.vv \T02_v, \S17_v, \S18_v + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 0*8(a0) + vor.vv \T03_v, \T03_v, \S19_v + lw \T00h_s, 0*8+4(a0) + xor \S17h_s, \S17h_s, \T03h_s + vand.vv \T04_v, \S19_v, \S20_v + xor \S17l_s, \S17l_s, \T03l_s + lw \T01l_s, 1*8(a0) + vxor.vv \S16_v, \S21_v, \T02_v + lw \T01h_s, 1*8+4(a0) + lw \T02l_s, 22*8(a0) + vxor.vv \S17_v, \S17_v, \T03_v + lw \T02h_s, 22*8+4(a0) + andn \T03l_s, \S21l_s, \T01l_s + andn \T03h_s, \S21h_s, \T01h_s + + vxor.vv \S18_v, \T05_v, \T04_v + xor \T03l_s, \T03l_s, \T00l_s + xor \T03h_s, \T03h_s, \T00h_s + sw \T03l_s, 24*8(a0) + vnot.v \T03_v, \S01_v + sw \T03h_s, 24*8+4(a0) + andn \T03l_s, \T02l_s, \S21l_s + andn \T03h_s, \T02h_s, \S21h_s + + vnot.v \T05_v, \S01_v + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 20*8(a0) + vor.vv \T02_v, \S20_v, \S21_v + sw \T03h_s, 20*8+4(a0) + andn \T03l_s, \S23l_s, \T02l_s + + vand.vv \T03_v, \T03_v, \S22_v + andn \T03h_s, \S23h_s, \T02h_s + xor \S21l_s, \T03l_s, \S21l_s + vor.vv \T04_v, \S22_v, \S23_v + xor \S21h_s, \T03h_s, \S21h_s + lw \T04_s, 17*4(sp) + vxor.vv \S19_v, \S19_v, \T02_v + andn \T03l_s, \T00l_s, \S23l_s + andn \T03h_s, \T00h_s, \S23h_s + + vxor.vv \S20_v, \S00_v, \T03_v + xor \T02l_s, \T03l_s, \T02l_s + xor \T02h_s, \T03h_s, \T02h_s + vxor.vv \S21_v, \T05_v, \T04_v + sw \T02l_s, 22*8(a0) + sw \T02h_s, 22*8+4(a0) + vand.vv \T02_v, \S23_v, \S24_v + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + lw \T00l_s, 18*4(sp) + vor.vv \T03_v, \S24_v, \S00_v + lw \T00h_s, 19*4(sp) + xor \S23h_s, \S23h_s, \T03h_s + xor \S23l_s, \S23l_s, \T03l_s + vand.vv \T04_v, \S00_v, \S01_v + lw \T01l_s, 20*4(sp) + lw \T01h_s, 21*4(sp) + lw \T02l_s, 0(\T04_s) + vor.vv \T05_v, \T01_v, \S02_v + lw \T02h_s, 4(\T04_s) + addi \T04_s, \T04_s, 8 + andn \T03l_s, \S02l_s, \T01l_s + + vxor.vv \S22_v, \S22_v, \T02_v + andn \T03h_s, \S02h_s, \T01h_s + xor \T03l_s, \T03l_s, \T00l_s + vxor.vv \S23_v, \S23_v, \T03_v + xor \T03h_s, \T03h_s, \T00h_s + sw \T04_s, 17*4(sp) + vxor.vv \S24_v, \S24_v, \T04_v + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vxor.vv \S00_v, \T00_v, \T05_v + lw \T02l_s, 3*8(a0) + lw \T02h_s, 3*8+4(a0) + vnot.v \T02_v, \S02_v + sw \T03l_s, 0*8(a0) + sw \T03h_s, 0*8+4(a0) + vor.vv \T04_v, \S04_v, \T00_v + andn \T03l_s, \T02l_s, \S02l_s + andn \T03h_s, \T02h_s, \S02h_s + + vand.vv \T03_v, \S03_v, \S04_v + xor \T03l_s, \T03l_s, \T01l_s + xor \T03h_s, \T03h_s, \T01h_s + sw \T03l_s, 1*8(a0) + vand.vv \T05_v, \T00_v, \T01_v + sw \T03h_s, 1*8+4(a0) + andn \T03l_s, \T00l_s, \S04l_s + andn \T03h_s, \T00h_s, \S04h_s + vor.vv \T02_v, \T02_v, \S03_v + lw \T04_s, 28*4(sp) + xor \T03l_s, \T03l_s, \T02l_s + xor \T03h_s, \T03h_s, \T02h_s + vle64.v \T00_v, (\T04_s) + sw \T03l_s, 3*8(a0) + vxor.vv \S02_v, \S02_v, \T03_v + sw \T03h_s, 3*8+4(a0) + andn \T03l_s, \S04l_s, \T02l_s + + addi \T04_s, \T04_s, 16 + andn \T03h_s, \S04h_s, \T02h_s + + vxor.vv \S03_v, \S03_v, \T04_v + xor \S02l_s, \T03l_s, \S02l_s + sw \T04_s, 28*4(sp) + xor \S02h_s, \T03h_s, \S02h_s + vxor.vv \S01_v, \T01_v, \T02_v + andn \T03l_s, \T01l_s, \T00l_s + andn \T03h_s, \T01h_s, \T00h_s + + vxor.vv \S04_v, \S04_v, \T05_v + xor \S04l_s, \T03l_s, \S04l_s + xor \S04h_s, \T03h_s, \S04h_s + vxor.vv \S00_v, \S00_v, \T00_v +.endm + +# stack: +# 0*4-14*4 for saving registers +# 15*4 for saving a0 +# 16*4 for loop control +# 17*4 for table index of scalar impl +# 18*4,19*4 for C0 +# 20*4,21*4 for C1 +# 22*4,23*4 for C2 +# 24*4,25*4 for C3 +# 26*4,27*4 for C4 +# 28*4 for table index of vector impl +.globl KeccakF1600_StatePermute_RV32V_3x_opt_c908 +.align 2 +KeccakF1600_StatePermute_RV32V_3x_opt_c908: + addi sp, sp, -4*29 + SaveRegs + + li a1, 128 +vsetivli a2, 2, e64, m1, tu, mu + + la tp, constants_keccak_bitinter + sw tp, 17*4(sp) + + la gp, constants_keccak + sw gp, 28*4(sp) + + LoadStates_v + LoadStates_s a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10,s11,ra, gp, tp + + li tp, 24 + + lw x3, 0*8(x10) // *................................................................................................................................................................................................................................................................................................................................................................ + xor x1, x17, x20 // *................................................................................................................................................................................................................................................................................................................................................................ + lw x23, 15*8(x10) // .*............................................................................................................................................................................................................................................................................................................................................................... + xor x26, x16, x7 // .*............................................................................................................................................................................................................................................................................................................................................................... + xor x24, x26, x3 // ..*.............................................................................................................................................................................................................................................................................................................................................................. + lw x3, 20*8(x10) // ..*.............................................................................................................................................................................................................................................................................................................................................................. + xor x27, x24, x23 // ...*............................................................................................................................................................................................................................................................................................................................................................. + lw x23, 3*8+4(x10) // ...*............................................................................................................................................................................................................................................................................................................................................................. + xor x24, x27, x3 // ....*............................................................................................................................................................................................................................................................................................................................................................ + lw x26, 13*8+4(x10) // ....*............................................................................................................................................................................................................................................................................................................................................................ + vxor.vv v30, v1, v6 // .....*........................................................................................................................................................................................................................................................................................................................................................... + xor x25, x1, x23 // .....*........................................................................................................................................................................................................................................................................................................................................................... + xor x1, x25, x26 // ......*.......................................................................................................................................................................................................................................................................................................................................................... + lw x27, 18*8+4(x10) // ......*.......................................................................................................................................................................................................................................................................................................................................................... + xor x26, x5, x21 // .......*......................................................................................................................................................................................................................................................................................................................................................... + vxor.vv v31, v3, v8 // .......*......................................................................................................................................................................................................................................................................................................................................................... + lw x3, 3*8(x10) // ........*........................................................................................................................................................................................................................................................................................................................................................ + xor x1, x1, x27 // ........*........................................................................................................................................................................................................................................................................................................................................................ + vxor.vv v27, v30, v11 // .........*....................................................................................................................................................................................................................................................................................................................................................... + lw x25, 13*8(x10) // .........*....................................................................................................................................................................................................................................................................................................................................................... + sw x4, 16*4(x2) // ..........*...................................................................................................................................................................................................................................................................................................................................................... + xor x22, x24, x1 // ..........*...................................................................................................................................................................................................................................................................................................................................................... + xor x23, x26, x3 // ...........*..................................................................................................................................................................................................................................................................................................................................................... + vxor.vv v29, v31, v13 // ...........*..................................................................................................................................................................................................................................................................................................................................................... + lw x26, 9*8+4(x10) // ............*.................................................................................................................................................................................................................................................................................................................................................... + xor x4, x13, x28 // ............*.................................................................................................................................................................................................................................................................................................................................................... + sw x1, 25*4(x2) // .............*................................................................................................................................................................................................................................................................................................................................................... + vxor.vv v25, v27, v16 // .............*................................................................................................................................................................................................................................................................................................................................................... + vxor.vv v31, v4, v9 // ..............*.................................................................................................................................................................................................................................................................................................................................................. + xor x27, x4, x26 // ..............*.................................................................................................................................................................................................................................................................................................................................................. + sw x24, 18*4(x2) // ...............*................................................................................................................................................................................................................................................................................................................................................. + vxor.vv v26, v29, v18 // ...............*................................................................................................................................................................................................................................................................................................................................................. + lw x24, 0*8+4(x10) // ................*................................................................................................................................................................................................................................................................................................................................................ + xor x23, x23, x25 // ................*................................................................................................................................................................................................................................................................................................................................................ + lw x1, 20*8+4(x10) // .................*............................................................................................................................................................................................................................................................................................................................................... + vxor.vv v29, v25, v21 // .................*............................................................................................................................................................................................................................................................................................................................................... + vxor.vv v30, v0, v5 // ..................*.............................................................................................................................................................................................................................................................................................................................................. + lw x3, 18*8(x10) // ..................*.............................................................................................................................................................................................................................................................................................................................................. + vxor.vv v27, v26, v23 // ...................*............................................................................................................................................................................................................................................................................................................................................. + li x4, 64-1 // ...................*............................................................................................................................................................................................................................................................................................................................................. + vxor.vv v26, v31, v14 // ....................*............................................................................................................................................................................................................................................................................................................................................ + lw x25, 19*8+4(x10) // ....................*............................................................................................................................................................................................................................................................................................................................................ + vsrl.vx v31, v29, x4 // .....................*........................................................................................................................................................................................................................................................................................................................................... + xor x13, x13, x22 // .....................*........................................................................................................................................................................................................................................................................................................................................... + xor x28, x28, x22 // ......................*.......................................................................................................................................................................................................................................................................................................................................... + xor x26, x26, x22 // ......................*.......................................................................................................................................................................................................................................................................................................................................... + sw x26, 9*8+4(x10) // .......................*......................................................................................................................................................................................................................................................................................................................................... + xor x26, x15, x6 // .......................*......................................................................................................................................................................................................................................................................................................................................... + xor x26, x26, x24 // ........................*........................................................................................................................................................................................................................................................................................................................................ + xor x24, x25, x22 // ........................*........................................................................................................................................................................................................................................................................................................................................ + vxor.vv v26, v26, v19 // .........................*....................................................................................................................................................................................................................................................................................................................................... + xor x27, x27, x25 // .........................*....................................................................................................................................................................................................................................................................................................................................... + sw x24, 19*8+4(x10) // ..........................*...................................................................................................................................................................................................................................................................................................................................... + vsll.vi v28, v29, 1 // ..........................*...................................................................................................................................................................................................................................................................................................................................... + vxor.vv v30, v30, v10 // ...........................*..................................................................................................................................................................................................................................................................................................................................... + xor x24, x23, x3 // ...........................*..................................................................................................................................................................................................................................................................................................................................... + vsrl.vx v25, v27, x4 // ............................*.................................................................................................................................................................................................................................................................................................................................... + lw x25, 15*8+4(x10) // ............................*.................................................................................................................................................................................................................................................................................................................................... + sw x24, 24*4(x2) // .............................*................................................................................................................................................................................................................................................................................................................................... + vxor.vv v26, v26, v24 // .............................*................................................................................................................................................................................................................................................................................................................................... + lw x3, 9*8(x10) // ..............................*.................................................................................................................................................................................................................................................................................................................................. + xor x25, x26, x25 // ..............................*.................................................................................................................................................................................................................................................................................................................................. + xor x23, x25, x1 // ...............................*................................................................................................................................................................................................................................................................................................................................. + vxor.vv v28, v31, v28 // ...............................*................................................................................................................................................................................................................................................................................................................................. + vsll.vi v31, v27, 1 // ................................*................................................................................................................................................................................................................................................................................................................................ + lw x1, 19*8(x10) // ................................*................................................................................................................................................................................................................................................................................................................................ + xor x26, x14, x29 // .................................*............................................................................................................................................................................................................................................................................................................................... + rori x25, x23, 32-1 // .................................*............................................................................................................................................................................................................................................................................................................................... + xor x26, x26, x3 // ..................................*.............................................................................................................................................................................................................................................................................................................................. + xor x24, x25, x24 // ..................................*.............................................................................................................................................................................................................................................................................................................................. + xor x3, x3, x24 // ...................................*............................................................................................................................................................................................................................................................................................................................. + vxor.vv v31, v25, v31 // ....................................*............................................................................................................................................................................................................................................................................................................................ + sw x3, 9*8(x10) // .....................................*........................................................................................................................................................................................................................................................................................................................... + vxor.vv v25, v2, v7 // .....................................*........................................................................................................................................................................................................................................................................................................................... + lw x3, 24*8(x10) // ......................................*.......................................................................................................................................................................................................................................................................................................................... + xor x29, x29, x24 // ......................................*.......................................................................................................................................................................................................................................................................................................................... + vxor.vv v30, v30, v15 // .......................................*......................................................................................................................................................................................................................................................................................................................... + xor x26, x26, x1 // .......................................*......................................................................................................................................................................................................................................................................................................................... + xor x25, x26, x3 // ........................................*........................................................................................................................................................................................................................................................................................................................ + vxor.vv v28, v28, v26 // ........................................*........................................................................................................................................................................................................................................................................................................................ + vxor.vv v25, v25, v12 // .........................................*....................................................................................................................................................................................................................................................................................................................... + xor x1, x1, x24 // .........................................*....................................................................................................................................................................................................................................................................................................................... + vxor.vv v29, v31, v29 // ..........................................*...................................................................................................................................................................................................................................................................................................................... + sw x1, 19*8(x10) // ..........................................*...................................................................................................................................................................................................................................................................................................................... + sw x23, 19*4(x2) // ...........................................*..................................................................................................................................................................................................................................................................................................................... + xor x3, x3, x24 // ...........................................*..................................................................................................................................................................................................................................................................................................................... + sw x3, 24*8(x10) // ............................................*.................................................................................................................................................................................................................................................................................................................... + vxor.vv v30, v30, v20 // ............................................*.................................................................................................................................................................................................................................................................................................................... + lw x1, 24*8+4(x10) // .............................................*................................................................................................................................................................................................................................................................................................................... + vxor.vv v31, v25, v17 // .............................................*................................................................................................................................................................................................................................................................................................................... + lw x26, 1*8+4(x10) // ..............................................*.................................................................................................................................................................................................................................................................................................................. + xor x14, x14, x24 // ..............................................*.................................................................................................................................................................................................................................................................................................................. + xor x23, x31, x19 // ...............................................*................................................................................................................................................................................................................................................................................................................. + lw x3, 1*8(x10) // ...............................................*................................................................................................................................................................................................................................................................................................................. + vxor.vv v10, v10, v28 // ................................................*................................................................................................................................................................................................................................................................................................................ + xor x22, x1, x22 // ................................................*................................................................................................................................................................................................................................................................................................................ + xor x24, x27, x1 // .................................................*............................................................................................................................................................................................................................................................................................................... + vxor.vv v31, v31, v22 // .................................................*............................................................................................................................................................................................................................................................................................................... + vxor.vv v0, v0, v28 // ..................................................*.............................................................................................................................................................................................................................................................................................................. + sw x22, 24*8+4(x10) // ..................................................*.............................................................................................................................................................................................................................................................................................................. + vxor.vv v5, v5, v28 // ...................................................*............................................................................................................................................................................................................................................................................................................. + sw x24, 27*4(x2) // ...................................................*............................................................................................................................................................................................................................................................................................................. + xor x23, x23, x3 // ....................................................*............................................................................................................................................................................................................................................................................................................ + lw x27, 6*8(x10) // ....................................................*............................................................................................................................................................................................................................................................................................................ + lw x22, 6*8+4(x10) // .....................................................*........................................................................................................................................................................................................................................................................................................... + xor x1, x30, x18 // .....................................................*........................................................................................................................................................................................................................................................................................................... + xor x1, x1, x26 // ......................................................*.......................................................................................................................................................................................................................................................................................................... + lw x3, 11*8(x10) // ......................................................*.......................................................................................................................................................................................................................................................................................................... + lw x26, 11*8+4(x10) // .......................................................*......................................................................................................................................................................................................................................................................................................... + xor x27, x23, x27 // .......................................................*......................................................................................................................................................................................................................................................................................................... + xor x27, x27, x3 // ........................................................*........................................................................................................................................................................................................................................................................................................ + xor x1, x1, x22 // ........................................................*........................................................................................................................................................................................................................................................................................................ + xor x1, x1, x26 // .........................................................*....................................................................................................................................................................................................................................................................................................... + sw x27, 20*4(x2) // .........................................................*....................................................................................................................................................................................................................................................................................................... + sw x1, 21*4(x2) // ..........................................................*...................................................................................................................................................................................................................................................................................................... + rori x26, x1, 32-1 // ..........................................................*...................................................................................................................................................................................................................................................................................................... + lw x1, 15*8(x10) // ...........................................................*..................................................................................................................................................................................................................................................................................................... + xor x22, x27, x24 // ...........................................................*..................................................................................................................................................................................................................................................................................................... + xor x27, x26, x25 // ............................................................*.................................................................................................................................................................................................................................................................................................... + lw x26, 0*8(x10) // ............................................................*.................................................................................................................................................................................................................................................................................................... + xor x16, x16, x27 // .............................................................*................................................................................................................................................................................................................................................................................................... + lw x23, 0*8+4(x10) // .............................................................*................................................................................................................................................................................................................................................................................................... + xor x26, x26, x27 // ..............................................................*.................................................................................................................................................................................................................................................................................................. + xor x15, x15, x22 // ..............................................................*.................................................................................................................................................................................................................................................................................................. + sw x26, 0*8(x10) // ...............................................................*................................................................................................................................................................................................................................................................................................. + xor x23, x23, x22 // ...............................................................*................................................................................................................................................................................................................................................................................................. + sw x23, 0*8+4(x10) // ................................................................*................................................................................................................................................................................................................................................................................................ + vxor.vv v15, v15, v28 // ................................................................*................................................................................................................................................................................................................................................................................................ + lw x26, 20*8+4(x10) // .................................................................*............................................................................................................................................................................................................................................................................................... + vxor.vv v20, v20, v28 // .................................................................*............................................................................................................................................................................................................................................................................................... + lw x23, 15*8+4(x10) // ..................................................................*.............................................................................................................................................................................................................................................................................................. + vxor.vv v2, v2, v29 // ..................................................................*.............................................................................................................................................................................................................................................................................................. + xor x6, x6, x22 // ...................................................................*............................................................................................................................................................................................................................................................................................. + vsll.vi v28, v26, 1 // ...................................................................*............................................................................................................................................................................................................................................................................................. + vsrl.vx v26, v26, x4 // ....................................................................*............................................................................................................................................................................................................................................................................................ + xor x1, x1, x27 // ....................................................................*............................................................................................................................................................................................................................................................................................ + xor x23, x23, x22 // .....................................................................*........................................................................................................................................................................................................................................................................................... + vxor.vv v7, v7, v29 // .....................................................................*........................................................................................................................................................................................................................................................................................... + lw x3, 20*8(x10) // ......................................................................*.......................................................................................................................................................................................................................................................................................... + vxor.vv v12, v12, v29 // ......................................................................*.......................................................................................................................................................................................................................................................................................... + sw x1, 15*8(x10) // .......................................................................*......................................................................................................................................................................................................................................................................................... + vsrl.vx v25, v31, x4 // .......................................................................*......................................................................................................................................................................................................................................................................................... + lw x1, 7*8+4(x10) // ........................................................................*........................................................................................................................................................................................................................................................................................ + vxor.vv v28, v26, v28 // ........................................................................*........................................................................................................................................................................................................................................................................................ + xor x3, x3, x27 // .........................................................................*....................................................................................................................................................................................................................................................................................... + vsll.vi v26, v31, 1 // .........................................................................*....................................................................................................................................................................................................................................................................................... + xor x7, x7, x27 // ..........................................................................*...................................................................................................................................................................................................................................................................................... + sw x3, 20*8(x10) // ..........................................................................*...................................................................................................................................................................................................................................................................................... + vxor.vv v22, v22, v29 // ...........................................................................*..................................................................................................................................................................................................................................................................................... + xor x27, x26, x22 // ...........................................................................*..................................................................................................................................................................................................................................................................................... + vxor.vv v17, v17, v29 // ............................................................................*.................................................................................................................................................................................................................................................................................... + sw x27, 20*8+4(x10) // ............................................................................*.................................................................................................................................................................................................................................................................................... + vxor.vv v29, v25, v26 // .............................................................................*................................................................................................................................................................................................................................................................................... + lw x26, 25*4(x2) // .............................................................................*................................................................................................................................................................................................................................................................................... + vsrl.vx v26, v30, x4 // ..............................................................................*.................................................................................................................................................................................................................................................................................. + lw x27, 24*4(x2) // ..............................................................................*.................................................................................................................................................................................................................................................................................. + lw x22, 21*4(x2) // ...............................................................................*................................................................................................................................................................................................................................................................................. + rori x26, x26, 32-1 // ...............................................................................*................................................................................................................................................................................................................................................................................. + sw x23, 15*8+4(x10) // ................................................................................*................................................................................................................................................................................................................................................................................ + vxor.vv v25, v28, v31 // ................................................................................*................................................................................................................................................................................................................................................................................ + xor x23, x27, x22 // .................................................................................*............................................................................................................................................................................................................................................................................... + lw x4, 20*4(x2) // .................................................................................*............................................................................................................................................................................................................................................................................... + xor x22, x11, x8 // ..................................................................................*.............................................................................................................................................................................................................................................................................. + xor x8, x8, x23 // ..................................................................................*.............................................................................................................................................................................................................................................................................. + xor x27, x1, x23 // ...................................................................................*............................................................................................................................................................................................................................................................................. + xor x22, x22, x1 // ...................................................................................*............................................................................................................................................................................................................................................................................. + lw x1, 12*8+4(x10) // ....................................................................................*............................................................................................................................................................................................................................................................................ + vxor.vv v31, v29, v30 // ....................................................................................*............................................................................................................................................................................................................................................................................ + vsll.vi v29, v30, 1 // .....................................................................................*........................................................................................................................................................................................................................................................................... + lw x3, 7*8(x10) // .....................................................................................*........................................................................................................................................................................................................................................................................... + xor x4, x26, x4 // ......................................................................................*.......................................................................................................................................................................................................................................................................... + vxor.vv v3, v3, v25 // ......................................................................................*.......................................................................................................................................................................................................................................................................... + sw x27, 7*8+4(x10) // .......................................................................................*......................................................................................................................................................................................................................................................................... + vxor.vv v8, v8, v25 // .......................................................................................*......................................................................................................................................................................................................................................................................... + xor x27, x12, x9 // ........................................................................................*........................................................................................................................................................................................................................................................................ + vxor.vv v23, v23, v25 // ........................................................................................*........................................................................................................................................................................................................................................................................ + vxor.vv v13, v13, v25 // .........................................................................................*....................................................................................................................................................................................................................................................................... + sw x25, 26*4(x2) // .........................................................................................*....................................................................................................................................................................................................................................................................... + xor x26, x27, x3 // ..........................................................................................*...................................................................................................................................................................................................................................................................... + xor x3, x3, x4 // ..........................................................................................*...................................................................................................................................................................................................................................................................... + xor x27, x22, x1 // ...........................................................................................*..................................................................................................................................................................................................................................................................... + sw x3, 7*8(x10) // ...........................................................................................*..................................................................................................................................................................................................................................................................... + vxor.vv v18, v18, v25 // ............................................................................................*.................................................................................................................................................................................................................................................................... + lw x3, 12*8(x10) // ............................................................................................*.................................................................................................................................................................................................................................................................... + xor x12, x12, x4 // .............................................................................................*................................................................................................................................................................................................................................................................... + xor x11, x11, x23 // .............................................................................................*................................................................................................................................................................................................................................................................... + vxor.vv v29, v26, v29 // ..............................................................................................*.................................................................................................................................................................................................................................................................. + xor x26, x26, x3 // ..............................................................................................*.................................................................................................................................................................................................................................................................. + xor x3, x3, x4 // ...............................................................................................*................................................................................................................................................................................................................................................................. + xor x1, x1, x23 // ................................................................................................*................................................................................................................................................................................................................................................................ + sw x3, 12*8(x10) // ................................................................................................*................................................................................................................................................................................................................................................................ + vxor.vv v16, v16, v31 // .................................................................................................*............................................................................................................................................................................................................................................................... + sw x1, 12*8+4(x10) // .................................................................................................*............................................................................................................................................................................................................................................................... + vxor.vv v26, v29, v27 // ..................................................................................................*.............................................................................................................................................................................................................................................................. + lw x3, 22*8(x10) // ..................................................................................................*.............................................................................................................................................................................................................................................................. + vxor.vv v1, v1, v31 // ...................................................................................................*............................................................................................................................................................................................................................................................. + lw x1, 22*8+4(x10) // ...................................................................................................*............................................................................................................................................................................................................................................................. + xor x9, x9, x4 // ....................................................................................................*............................................................................................................................................................................................................................................................ + vxor.vv v29, v6, v31 // ....................................................................................................*............................................................................................................................................................................................................................................................ + xor x22, x27, x1 // .....................................................................................................*........................................................................................................................................................................................................................................................... + xor x1, x1, x23 // .....................................................................................................*........................................................................................................................................................................................................................................................... + sw x1, 22*8+4(x10) // ......................................................................................................*.......................................................................................................................................................................................................................................................... + xor x23, x26, x3 // ......................................................................................................*.......................................................................................................................................................................................................................................................... + xor x3, x3, x4 // .......................................................................................................*......................................................................................................................................................................................................................................................... + vxor.vv v21, v21, v31 // .......................................................................................................*......................................................................................................................................................................................................................................................... + rori x27, x24, 32-1 // ........................................................................................................*........................................................................................................................................................................................................................................................ + lw x1, 3*8+4(x10) // ........................................................................................................*........................................................................................................................................................................................................................................................ + sw x3, 22*8(x10) // .........................................................................................................*....................................................................................................................................................................................................................................................... + xor x24, x25, x22 // .........................................................................................................*....................................................................................................................................................................................................................................................... + vxor.vv v11, v11, v31 // ..........................................................................................................*...................................................................................................................................................................................................................................................... + xor x26, x1, x24 // ..........................................................................................................*...................................................................................................................................................................................................................................................... + rori x25, x22, 32-1 // ...........................................................................................................*..................................................................................................................................................................................................................................................... + lw x1, 18*4(x2) // ...........................................................................................................*..................................................................................................................................................................................................................................................... + xor x20, x20, x24 // ............................................................................................................*.................................................................................................................................................................................................................................................... + lw x4, 19*4(x2) // ............................................................................................................*.................................................................................................................................................................................................................................................... + xor x1, x25, x1 // .............................................................................................................*................................................................................................................................................................................................................................................... + lw x25, 11*8(x10) // .............................................................................................................*................................................................................................................................................................................................................................................... + xor x19, x19, x1 // ..............................................................................................................*.................................................................................................................................................................................................................................................. + xor x4, x23, x4 // ..............................................................................................................*.................................................................................................................................................................................................................................................. + rori x3, x19, 31 // ...............................................................................................................*................................................................................................................................................................................................................................................. + xor x25, x25, x1 // ...............................................................................................................*................................................................................................................................................................................................................................................. + xor x19, x17, x24 // ................................................................................................................*................................................................................................................................................................................................................................................ + xor x17, x18, x4 // ................................................................................................................*................................................................................................................................................................................................................................................ + rori x19, x19, 4 // .................................................................................................................*............................................................................................................................................................................................................................................... + sw x3, 0*8(x10) // .................................................................................................................*............................................................................................................................................................................................................................................... + li x18, 41 // ..................................................................................................................*.............................................................................................................................................................................................................................................. + lw x3, 6*8(x10) // ..................................................................................................................*.............................................................................................................................................................................................................................................. + sw x25, 11*8(x10) // ...................................................................................................................*............................................................................................................................................................................................................................................. + xor x25, x27, x23 // ...................................................................................................................*............................................................................................................................................................................................................................................. + xor x3, x3, x1 // ....................................................................................................................*............................................................................................................................................................................................................................................ + vsll.vx v27, v15, x18 // ....................................................................................................................*............................................................................................................................................................................................................................................ + sw x3, 6*8(x10) // .....................................................................................................................*........................................................................................................................................................................................................................................... + xor x5, x5, x25 // .....................................................................................................................*........................................................................................................................................................................................................................................... + mv x27, x3 // ......................................................................................................................*.......................................................................................................................................................................................................................................... + lw x3, 18*8(x10) // ......................................................................................................................*.......................................................................................................................................................................................................................................... + rori x18, x5, 5 // .......................................................................................................................*......................................................................................................................................................................................................................................... + lw x5, 6*8+4(x10) // .......................................................................................................................*......................................................................................................................................................................................................................................... + xor x3, x3, x25 // ........................................................................................................................*........................................................................................................................................................................................................................................ + sw x26, 3*8+4(x10) // ........................................................................................................................*........................................................................................................................................................................................................................................ + sw x3, 18*8(x10) // .........................................................................................................................*....................................................................................................................................................................................................................................... + xor x5, x5, x4 // .........................................................................................................................*....................................................................................................................................................................................................................................... + xor x30, x30, x4 // ..........................................................................................................................*...................................................................................................................................................................................................................................... + lw x26, 1*8(x10) // ..........................................................................................................................*...................................................................................................................................................................................................................................... + xor x31, x31, x1 // ...........................................................................................................................*..................................................................................................................................................................................................................................... + rori x17, x17, 31 // ...........................................................................................................................*..................................................................................................................................................................................................................................... + xor x1, x26, x1 // ............................................................................................................................*.................................................................................................................................................................................................................................... + sw x17, 0*8+4(x10) // ............................................................................................................................*.................................................................................................................................................................................................................................... + sw x1, 1*8(x10) // .............................................................................................................................*................................................................................................................................................................................................................................... + xor x21, x21, x25 // .............................................................................................................................*................................................................................................................................................................................................................................... + sw x22, 23*4(x2) // ..............................................................................................................................*.................................................................................................................................................................................................................................. + vsrl.vi v31, v23, 8 // ..............................................................................................................................*.................................................................................................................................................................................................................................. + vsll.vi v30, v13, 25 // ...............................................................................................................................*................................................................................................................................................................................................................................. + lw x3, 3*8(x10) // ...............................................................................................................................*................................................................................................................................................................................................................................. + vmv.v.v v25, v0 // ................................................................................................................................*................................................................................................................................................................................................................................ + lw x26, 13*8(x10) // ................................................................................................................................*................................................................................................................................................................................................................................ + xor x3, x3, x25 // .................................................................................................................................*............................................................................................................................................................................................................................... + lw x1, 18*8+4(x10) // .................................................................................................................................*............................................................................................................................................................................................................................... + xor x26, x26, x25 // ..................................................................................................................................*.............................................................................................................................................................................................................................. + sw x5, 6*8+4(x10) // ..................................................................................................................................*.............................................................................................................................................................................................................................. + xor x25, x1, x24 // ...................................................................................................................................*............................................................................................................................................................................................................................. + vsrl.vi v0, v12, 21 // ...................................................................................................................................*............................................................................................................................................................................................................................. + vxor.vv v28, v19, v26 // ....................................................................................................................................*............................................................................................................................................................................................................................ + li x1, 39 // ....................................................................................................................................*............................................................................................................................................................................................................................ + sw x26, 13*8(x10) // .....................................................................................................................................*........................................................................................................................................................................................................................... + mv x17, x5 // .....................................................................................................................................*........................................................................................................................................................................................................................... + li x22, 43 // ......................................................................................................................................*.......................................................................................................................................................................................................................... + vsrl.vx v13, v13, x1 // ......................................................................................................................................*.......................................................................................................................................................................................................................... + li x1, 62 // .......................................................................................................................................*......................................................................................................................................................................................................................... + vxor.vv v9, v9, v26 // .......................................................................................................................................*......................................................................................................................................................................................................................... + sw x23, 22*4(x2) // ........................................................................................................................................*........................................................................................................................................................................................................................ + vxor.vv v4, v4, v26 // ........................................................................................................................................*........................................................................................................................................................................................................................ + lw x5, 11*8+4(x10) // .........................................................................................................................................*....................................................................................................................................................................................................................... + vsll.vx v6, v12, x22 // .........................................................................................................................................*....................................................................................................................................................................................................................... + vxor.vv v12, v13, v30 // ..........................................................................................................................................*...................................................................................................................................................................................................................... + sw x25, 18*8+4(x10) // ..........................................................................................................................................*...................................................................................................................................................................................................................... + vxor.vv v14, v14, v26 // ...........................................................................................................................................*..................................................................................................................................................................................................................... + xor x5, x5, x4 // ...........................................................................................................................................*..................................................................................................................................................................................................................... + li x26, 44 // ............................................................................................................................................*.................................................................................................................................................................................................................... + sw x5, 11*8+4(x10) // ............................................................................................................................................*.................................................................................................................................................................................................................... + vxor.vv v24, v24, v26 // .............................................................................................................................................*................................................................................................................................................................................................................... + rori x25, x27, 10 // .............................................................................................................................................*................................................................................................................................................................................................................... + vsrl.vi v13, v8, 9 // ..............................................................................................................................................*.................................................................................................................................................................................................................. + li x23, 55 // ..............................................................................................................................................*.................................................................................................................................................................................................................. + vsll.vi v30, v28, 8 // ...............................................................................................................................................*................................................................................................................................................................................................................. + li x5, 56 // ...............................................................................................................................................*................................................................................................................................................................................................................. + vsll.vx v26, v8, x23 // ................................................................................................................................................*................................................................................................................................................................................................................ + sw x3, 3*8(x10) // ................................................................................................................................................*................................................................................................................................................................................................................ + li x27, 63 // .................................................................................................................................................*............................................................................................................................................................................................................... + vsrl.vx v19, v28, x5 // .................................................................................................................................................*............................................................................................................................................................................................................... + li x5, 56 // ..................................................................................................................................................*.............................................................................................................................................................................................................. + vsll.vi v28, v1, 1 // ..................................................................................................................................................*.............................................................................................................................................................................................................. + vsrl.vx v8, v1, x27 // ...................................................................................................................................................*............................................................................................................................................................................................................. + lw x22, 3*8(x10) // ...................................................................................................................................................*............................................................................................................................................................................................................. + vxor.vv v1, v13, v26 // ....................................................................................................................................................*............................................................................................................................................................................................................ + lw x3, 18*8(x10) // ....................................................................................................................................................*............................................................................................................................................................................................................ + vxor.vv v13, v19, v30 // .....................................................................................................................................................*........................................................................................................................................................................................................... + lw x23, 0*8+4(x10) // .....................................................................................................................................................*........................................................................................................................................................................................................... + rori x27, x3, 22 // ......................................................................................................................................................*.......................................................................................................................................................................................................... + vsll.vx v19, v23, x5 // ......................................................................................................................................................*.......................................................................................................................................................................................................... + vsrl.vi v26, v29, 20 // .......................................................................................................................................................*......................................................................................................................................................................................................... + lw x3, 1*8(x10) // .......................................................................................................................................................*......................................................................................................................................................................................................... + sw x23, 19*4(x2) // ........................................................................................................................................................*........................................................................................................................................................................................................ + vsrl.vi v23, v15, 23 // ........................................................................................................................................................*........................................................................................................................................................................................................ + vxor.vv v15, v8, v28 // .........................................................................................................................................................*....................................................................................................................................................................................................... + lw x5, 0*8(x10) // .........................................................................................................................................................*....................................................................................................................................................................................................... + vxor.vv v19, v31, v19 // ..........................................................................................................................................................*...................................................................................................................................................................................................... + lw x23, 13*8+4(x10) // ..........................................................................................................................................................*...................................................................................................................................................................................................... + sw x5, 18*4(x2) // ...........................................................................................................................................................*..................................................................................................................................................................................................... + vsll.vi v31, v7, 6 // ...........................................................................................................................................................*..................................................................................................................................................................................................... + rori x5, x30, 9 // ............................................................................................................................................................*.................................................................................................................................................................................................... + sw x25, 20*4(x2) // ............................................................................................................................................................*.................................................................................................................................................................................................... + lw x25, 1*8+4(x10) // .............................................................................................................................................................*................................................................................................................................................................................................... + rori x30, x15, 14 // .............................................................................................................................................................*................................................................................................................................................................................................... + lw x15, 18*8+4(x10) // ..............................................................................................................................................................*.................................................................................................................................................................................................. + vsll.vx v8, v2, x1 // ..............................................................................................................................................................*.................................................................................................................................................................................................. + sw x27, 3*8+4(x10) // ...............................................................................................................................................................*................................................................................................................................................................................................. + xor x23, x23, x24 // ...............................................................................................................................................................*................................................................................................................................................................................................. + rori x27, x15, 21 // ................................................................................................................................................................*................................................................................................................................................................................................ + vsll.vx v30, v29, x26 // ................................................................................................................................................................*................................................................................................................................................................................................ + sw x23, 13*8+4(x10) // .................................................................................................................................................................*............................................................................................................................................................................................... + xor x4, x25, x4 // .................................................................................................................................................................*............................................................................................................................................................................................... + sw x4, 1*8+4(x10) // ..................................................................................................................................................................*.............................................................................................................................................................................................. + rori x23, x6, 30 // ..................................................................................................................................................................*.............................................................................................................................................................................................. + sw x27, 3*8(x10) // ...................................................................................................................................................................*............................................................................................................................................................................................. + li x27, 58 // ...................................................................................................................................................................*............................................................................................................................................................................................. + vxor.vv v26, v26, v30 // ....................................................................................................................................................................*............................................................................................................................................................................................ + rori x24, x11, 1 // ....................................................................................................................................................................*............................................................................................................................................................................................ + vsrl.vx v28, v7, x27 // .....................................................................................................................................................................*........................................................................................................................................................................................... + lw x11, 12*8+4(x10) // .....................................................................................................................................................................*........................................................................................................................................................................................... + mv x6, x3 // ......................................................................................................................................................................*.......................................................................................................................................................................................... + rori x4, x12, 1 // ......................................................................................................................................................................*.......................................................................................................................................................................................... + rori x12, x11, 10 // .......................................................................................................................................................................*......................................................................................................................................................................................... + sw x23, 13*8(x10) // .......................................................................................................................................................................*......................................................................................................................................................................................... + li x1, 45 // ........................................................................................................................................................................*........................................................................................................................................................................................ + lw x3, 12*8(x10) // ........................................................................................................................................................................*........................................................................................................................................................................................ + rori x23, x7, 31 // .........................................................................................................................................................................*....................................................................................................................................................................................... + lw x15, 3*8+4(x10) // .........................................................................................................................................................................*....................................................................................................................................................................................... + rori x11, x3, 11 // ..........................................................................................................................................................................*...................................................................................................................................................................................... + lw x27, 1*8+4(x10) // ..........................................................................................................................................................................*...................................................................................................................................................................................... + vsll.vi v30, v3, 28 // ...........................................................................................................................................................................*..................................................................................................................................................................................... + sw x23, 13*8+4(x10) // ...........................................................................................................................................................................*..................................................................................................................................................................................... + rori x7, x27, 31 // ............................................................................................................................................................................*.................................................................................................................................................................................... + vsll.vx v7, v16, x1 // ............................................................................................................................................................................*.................................................................................................................................................................................... + vsrl.vi v29, v16, 19 // .............................................................................................................................................................................*................................................................................................................................................................................... + rori x25, x17, 10 // .............................................................................................................................................................................*................................................................................................................................................................................... + vxor.vv v16, v28, v31 // ..............................................................................................................................................................................*.................................................................................................................................................................................. + rori x17, x31, 10 // ..............................................................................................................................................................................*.................................................................................................................................................................................. + vsrl.vi v28, v2, 2 // ...............................................................................................................................................................................*................................................................................................................................................................................. + sw x24, 1*8+4(x10) // ...............................................................................................................................................................................*................................................................................................................................................................................. + vxor.vv v2, v0, v6 // ................................................................................................................................................................................*................................................................................................................................................................................ + rori x31, x16, 14 // ................................................................................................................................................................................*................................................................................................................................................................................ + addi None None 1 +loop_start: + // Instructions: 702 + // Expected cycles: 357 + // Expected IPC: 1.97 + + // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------ + vsll.vi v31, v18, 21 // *.................................................................................................................................................................................................................................................................................................................................................................... + lw x16, 13*8+4(x10) // *.................................................................................................................................................................................................................................................................................................................................................................... + rori x3, x28, 12 // .*................................................................................................................................................................................................................................................................................................................................................................... + sw x4, 1*8(x10) // .*................................................................................................................................................................................................................................................................................................................................................................... + sw x3, 22*8(x10) // ..*.................................................................................................................................................................................................................................................................................................................................................................. + rori x3, x16, 19 // ..*.................................................................................................................................................................................................................................................................................................................................................................. + vxor.vv v0, v28, v8 // ...*................................................................................................................................................................................................................................................................................................................................................................. + sw x3, 18*8(x10) // ...*................................................................................................................................................................................................................................................................................................................................................................. + vsll.vi v28, v10, 3 // ....*................................................................................................................................................................................................................................................................................................................................................................ + lw x3, 15*8(x10) // ....*................................................................................................................................................................................................................................................................................................................................................................ + li x4, 43 // .....*............................................................................................................................................................................................................................................................................................................................................................... + rori x1, x20, 4 // .....*............................................................................................................................................................................................................................................................................................................................................................... + rori x20, x3, 12 // ......*.............................................................................................................................................................................................................................................................................................................................................................. + lw x3, 22*8(x10) // ......*.............................................................................................................................................................................................................................................................................................................................................................. + vxor.vv v23, v23, v27 // .......*............................................................................................................................................................................................................................................................................................................................................................. + rori x15, x15, 18 // .......*............................................................................................................................................................................................................................................................................................................................................................. + vxor.vv v8, v29, v7 // ........*............................................................................................................................................................................................................................................................................................................................................................ + sw x1, 20*8+4(x10) // ........*............................................................................................................................................................................................................................................................................................................................................................ + rori x28, x21, 4 // .........*........................................................................................................................................................................................................................................................................................................................................................... + lw x21, 15*8+4(x10) // .........*........................................................................................................................................................................................................................................................................................................................................................... + vsll.vi v29, v11, 10 // ..........*.......................................................................................................................................................................................................................................................................................................................................................... + lw x1, 13*8(x10) // ..........*.......................................................................................................................................................................................................................................................................................................................................................... + li x24, 46 // ...........*......................................................................................................................................................................................................................................................................................................................................................... + lw x23, 7*8+4(x10) // ...........*......................................................................................................................................................................................................................................................................................................................................................... + rori x26, x9, 25 // ............*........................................................................................................................................................................................................................................................................................................................................................ + lw x27, 9*8+4(x10) // ............*........................................................................................................................................................................................................................................................................................................................................................ + li x16, 61 // .............*....................................................................................................................................................................................................................................................................................................................................................... + vsrl.vx v7, v18, x4 // .............*....................................................................................................................................................................................................................................................................................................................................................... + rori x9, x27, 22 // ..............*...................................................................................................................................................................................................................................................................................................................................................... + sw x25, 21*4(x2) // ..............*...................................................................................................................................................................................................................................................................................................................................................... + vsrl.vx v6, v10, x16 // ...............*..................................................................................................................................................................................................................................................................................................................................................... + lw x4, 9*8(x10) // ...............*..................................................................................................................................................................................................................................................................................................................................................... + rori x16, x22, 18 // ................*.................................................................................................................................................................................................................................................................................................................................................... + sw x9, 12*8+4(x10) // ................*.................................................................................................................................................................................................................................................................................................................................................... + rori x25, x3, 2 // .................*................................................................................................................................................................................................................................................................................................................................................... + lw x9, 22*8+4(x10) // .................*................................................................................................................................................................................................................................................................................................................................................... + li x27, 36 // ..................*.................................................................................................................................................................................................................................................................................................................................................. + rori x3, x4, 22 // ..................*.................................................................................................................................................................................................................................................................................................................................................. + sw x3, 12*8(x10) // ...................*................................................................................................................................................................................................................................................................................................................................................. + li x22, 49 // ...................*................................................................................................................................................................................................................................................................................................................................................. + vsll.vi v18, v17, 15 // ....................*................................................................................................................................................................................................................................................................................................................................................ + sw x25, 9*8+4(x10) // ....................*................................................................................................................................................................................................................................................................................................................................................ + vsll.vi v27, v9, 20 // .....................*............................................................................................................................................................................................................................................................................................................................................... + rori x29, x29, 13 // .....................*............................................................................................................................................................................................................................................................................................................................................... + vsrl.vx v17, v17, x22 // ......................*.............................................................................................................................................................................................................................................................................................................................................. + lw x25, 20*8(x10) // ......................*.............................................................................................................................................................................................................................................................................................................................................. + li x22, 54 // .......................*............................................................................................................................................................................................................................................................................................................................................. + lw x4, 20*8+4(x10) // .......................*............................................................................................................................................................................................................................................................................................................................................. + rori x1, x1, 20 // ........................*............................................................................................................................................................................................................................................................................................................................................ + sw x29, 22*8+4(x10) // ........................*............................................................................................................................................................................................................................................................................................................................................ + sw x1, 18*8+4(x10) // .........................*........................................................................................................................................................................................................................................................................................................................................... + li x1, 44 // .........................*........................................................................................................................................................................................................................................................................................................................................... + sw x28, 20*8(x10) // ..........................*.......................................................................................................................................................................................................................................................................................................................................... + vsrl.vx v10, v3, x27 // ..........................*.......................................................................................................................................................................................................................................................................................................................................... + rori x27, x9, 1 // ...........................*......................................................................................................................................................................................................................................................................................................................................... + vxor.vv v3, v7, v31 // ...........................*......................................................................................................................................................................................................................................................................................................................................... + vxor.vv v18, v17, v18 // ............................*........................................................................................................................................................................................................................................................................................................................................ + rori x29, x25, 23 // ............................*........................................................................................................................................................................................................................................................................................................................................ + vsrl.vx v17, v11, x22 // .............................*....................................................................................................................................................................................................................................................................................................................................... + rori x28, x4, 23 // .............................*....................................................................................................................................................................................................................................................................................................................................... + sw x27, 9*8(x10) // ..............................*...................................................................................................................................................................................................................................................................................................................................... + vxor.vv v10, v10, v30 // ..............................*...................................................................................................................................................................................................................................................................................................................................... + rori x9, x14, 19 // ...............................*..................................................................................................................................................................................................................................................................................................................................... + vsrl.vx v11, v9, x1 // ...............................*..................................................................................................................................................................................................................................................................................................................................... + li x25, 61 // ................................*.................................................................................................................................................................................................................................................................................................................................... + vsrl.vi v31, v22, 3 // ................................*.................................................................................................................................................................................................................................................................................................................................... + rori x21, x21, 11 // .................................*................................................................................................................................................................................................................................................................................................................................... + vxor.vv v7, v6, v28 // .................................*................................................................................................................................................................................................................................................................................................................................... + vxor.vv v17, v17, v29 // ..................................*.................................................................................................................................................................................................................................................................................................................................. + rori x27, x13, 18 // ..................................*.................................................................................................................................................................................................................................................................................................................................. + lw x4, 12*8+4(x10) // ...................................*................................................................................................................................................................................................................................................................................................................................. + rori x1, x23, 29 // ...................................*................................................................................................................................................................................................................................................................................................................................. + vsrl.vx v6, v20, x24 // ....................................*................................................................................................................................................................................................................................................................................................................................ + lw x13, 13*8+4(x10) // ....................................*................................................................................................................................................................................................................................................................................................................................ + sw x1, 11*8+4(x10) // .....................................*............................................................................................................................................................................................................................................................................................................................... + rori x23, x8, 24 // .....................................*............................................................................................................................................................................................................................................................................................................................... + lw x8, 12*8(x10) // ......................................*.............................................................................................................................................................................................................................................................................................................................. + andn x22, x17, x13 // ......................................*.............................................................................................................................................................................................................................................................................................................................. + xor x24, x22, x4 // .......................................*............................................................................................................................................................................................................................................................................................................................. + lw x14, 9*8(x10) // .......................................*............................................................................................................................................................................................................................................................................................................................. + sw x24, 6*8+4(x10) // ........................................*............................................................................................................................................................................................................................................................................................................................ + andn x3, x8, x16 // ........................................*............................................................................................................................................................................................................................................................................................................................ + xor x24, x3, x14 // .........................................*........................................................................................................................................................................................................................................................................................................................... + lw x1, 13*8(x10) // .........................................*........................................................................................................................................................................................................................................................................................................................... + sw x23, 24*8(x10) // ..........................................*.......................................................................................................................................................................................................................................................................................................................... + vxor.vv v11, v11, v27 // ..........................................*.......................................................................................................................................................................................................................................................................................................................... + sw x26, 24*8+4(x10) // ...........................................*......................................................................................................................................................................................................................................................................................................................... + andn x3, x5, x1 // ...........................................*......................................................................................................................................................................................................................................................................................................................... + xor x3, x3, x8 // ............................................*........................................................................................................................................................................................................................................................................................................................ + lw x22, 19*8+4(x10) // ............................................*........................................................................................................................................................................................................................................................................................................................ + sw x3, 6*8(x10) // .............................................*....................................................................................................................................................................................................................................................................................................................... + andn x3, x14, x5 // .............................................*....................................................................................................................................................................................................................................................................................................................... + sw x9, 15*8+4(x10) // ..............................................*...................................................................................................................................................................................................................................................................................................................... + vsll.vx v27, v22, x25 // ..............................................*...................................................................................................................................................................................................................................................................................................................... + sw x27, 15*8(x10) // ...............................................*..................................................................................................................................................................................................................................................................................................................... + andn x23, x4, x15 // ...............................................*..................................................................................................................................................................................................................................................................................................................... + sw x24, 9*8(x10) // ................................................*.................................................................................................................................................................................................................................................................................................................... + xor x3, x3, x1 // ................................................*.................................................................................................................................................................................................................................................................................................................... + sw x3, 7*8(x10) // .................................................*................................................................................................................................................................................................................................................................................................................... + andn x3, x16, x14 // .................................................*................................................................................................................................................................................................................................................................................................................... + xor x5, x3, x5 // ..................................................*.................................................................................................................................................................................................................................................................................................................. + andn x3, x1, x8 // ..................................................*.................................................................................................................................................................................................................................................................................................................. + xor x16, x3, x16 // ...................................................*................................................................................................................................................................................................................................................................................................................. + andn x1, x13, x4 // ...................................................*................................................................................................................................................................................................................................................................................................................. + lw x4, 19*8(x10) // ....................................................*................................................................................................................................................................................................................................................................................................................ + vxor.vv v9, v31, v27 // ....................................................*................................................................................................................................................................................................................................................................................................................ + lw x25, 9*8+4(x10) // .....................................................*............................................................................................................................................................................................................................................................................................................... + andn x14, x28, x22 // .....................................................*............................................................................................................................................................................................................................................................................................................... + rori x3, x4, 28 // ......................................................*.............................................................................................................................................................................................................................................................................................................. + lw x4, 18*8+4(x10) // ......................................................*.............................................................................................................................................................................................................................................................................................................. + andn x24, x15, x25 // .......................................................*............................................................................................................................................................................................................................................................................................................. + andn x8, x25, x17 // .......................................................*............................................................................................................................................................................................................................................................................................................. + xor x27, x8, x13 // ........................................................*............................................................................................................................................................................................................................................................................................................ + xor x14, x14, x4 // ........................................................*............................................................................................................................................................................................................................................................................................................ + sw x14, 12*8+4(x10) // .........................................................*........................................................................................................................................................................................................................................................................................................... + vnot.v v29, v9 // .........................................................*........................................................................................................................................................................................................................................................................................................... + vsll.vi v22, v4, 27 // ..........................................................*.......................................................................................................................................................................................................................................................................................................... + li x8, 50 // ..........................................................*.......................................................................................................................................................................................................................................................................................................... + li x9, 39 // ...........................................................*......................................................................................................................................................................................................................................................................................................... + vsll.vi v31, v24, 14 // ...........................................................*......................................................................................................................................................................................................................................................................................................... + sw x3, 19*8(x10) // ............................................................*........................................................................................................................................................................................................................................................................................................ + vsrl.vx v24, v24, x8 // ............................................................*........................................................................................................................................................................................................................................................................................................ + vor.vv v29, v29, v8 // .............................................................*....................................................................................................................................................................................................................................................................................................... + li x8, 37 // .............................................................*....................................................................................................................................................................................................................................................................................................... + andn x3, x7, x29 // ..............................................................*...................................................................................................................................................................................................................................................................................................... + vand.vv v27, v7, v8 // ..............................................................*...................................................................................................................................................................................................................................................................................................... + vsrl.vx v28, v4, x8 // ...............................................................*..................................................................................................................................................................................................................................................................................................... + xor x13, x23, x25 // ................................................................*.................................................................................................................................................................................................................................................................................................... + vxor.vv v4, v24, v31 // ................................................................*.................................................................................................................................................................................................................................................................................................... + lw x23, 19*8(x10) // .................................................................*................................................................................................................................................................................................................................................................................................... + vsll.vi v30, v20, 18 // .................................................................*................................................................................................................................................................................................................................................................................................... + li x26, 62 // ..................................................................*.................................................................................................................................................................................................................................................................................................. + vsrl.vi v31, v14, 25 // ..................................................................*.................................................................................................................................................................................................................................................................................................. + xor x3, x3, x23 // ...................................................................*................................................................................................................................................................................................................................................................................................. + vxor.vv v20, v28, v22 // ...................................................................*................................................................................................................................................................................................................................................................................................. + sw x3, 13*8(x10) // ....................................................................*................................................................................................................................................................................................................................................................................................ + vsll.vx v22, v14, x9 // ....................................................................*................................................................................................................................................................................................................................................................................................ + lw x3, 24*8(x10) // ......................................................................*.............................................................................................................................................................................................................................................................................................. + vsll.vi v14, v21, 2 // ......................................................................*.............................................................................................................................................................................................................................................................................................. + xor x15, x1, x15 // .......................................................................*............................................................................................................................................................................................................................................................................................. + andn x9, x6, x28 // .......................................................................*............................................................................................................................................................................................................................................................................................. + vxor.vv v22, v31, v22 // ........................................................................*............................................................................................................................................................................................................................................................................................ + vor.vv v31, v11, v7 // .........................................................................*........................................................................................................................................................................................................................................................................................... + rori x14, x3, 25 // .........................................................................*........................................................................................................................................................................................................................................................................................... + andn x3, x29, x23 // ..........................................................................*.......................................................................................................................................................................................................................................................................................... + vxor.vv v7, v7, v29 // ..........................................................................*.......................................................................................................................................................................................................................................................................................... + lw x8, 18*8(x10) // ...........................................................................*......................................................................................................................................................................................................................................................................................... + vsrl.vi v29, v5, 28 // ...........................................................................*......................................................................................................................................................................................................................................................................................... + li x1, 36 // ............................................................................*........................................................................................................................................................................................................................................................................................ + vnot.v v28, v13 // ............................................................................*........................................................................................................................................................................................................................................................................................ + vxor.vv v30, v6, v30 // .............................................................................*....................................................................................................................................................................................................................................................................................... + xor x3, x3, x8 // .............................................................................*....................................................................................................................................................................................................................................................................................... + vsll.vx v24, v5, x1 // ..............................................................................*...................................................................................................................................................................................................................................................................................... + sw x13, 9*8+4(x10) // ..............................................................................*...................................................................................................................................................................................................................................................................................... + sw x3, 12*8(x10) // ...............................................................................*..................................................................................................................................................................................................................................................................................... + vsrl.vx v5, v21, x26 // ...............................................................................*..................................................................................................................................................................................................................................................................................... + sw x27, 7*8+4(x10) // ................................................................................*.................................................................................................................................................................................................................................................................................... + xor x17, x24, x17 // ................................................................................*.................................................................................................................................................................................................................................................................................... + lw x27, 11*8+4(x10) // .................................................................................*................................................................................................................................................................................................................................................................................... + andn x3, x23, x8 // .................................................................................*................................................................................................................................................................................................................................................................................... + lw x1, 24*8+4(x10) // ..................................................................................*.................................................................................................................................................................................................................................................................................. + vxor.vv v21, v29, v24 // ..................................................................................*.................................................................................................................................................................................................................................................................................. + andn x13, x22, x4 // ...................................................................................*................................................................................................................................................................................................................................................................................. + vxor.vv v24, v5, v14 // ...................................................................................*................................................................................................................................................................................................................................................................................. + vand.vv v29, v10, v11 // ....................................................................................*................................................................................................................................................................................................................................................................................ + xor x23, x13, x27 // ....................................................................................*................................................................................................................................................................................................................................................................................ + vor.vv v14, v9, v10 // .....................................................................................*............................................................................................................................................................................................................................................................................... + rori x13, x1, 25 // .....................................................................................*............................................................................................................................................................................................................................................................................... + xor x24, x9, x22 // ......................................................................................*.............................................................................................................................................................................................................................................................................. + andn x9, x4, x27 // ......................................................................................*.............................................................................................................................................................................................................................................................................. + sw x24, 13*8+4(x10) // .......................................................................................*............................................................................................................................................................................................................................................................................. + vxor.vv v6, v11, v27 // .......................................................................................*............................................................................................................................................................................................................................................................................. + lw x24, 11*8(x10) // ........................................................................................*............................................................................................................................................................................................................................................................................ + vxor.vv v9, v9, v29 // ........................................................................................*............................................................................................................................................................................................................................................................................ + lw x4, 19*8+4(x10) // .........................................................................................*........................................................................................................................................................................................................................................................................... + vxor.vv v8, v8, v14 // .........................................................................................*........................................................................................................................................................................................................................................................................... + sw x23, 11*8+4(x10) // ..........................................................................................*.......................................................................................................................................................................................................................................................................... + vxor.vv v5, v10, v31 // ..........................................................................................*.......................................................................................................................................................................................................................................................................... + rori x1, x4, 28 // ...........................................................................................*......................................................................................................................................................................................................................................................................... + vor.vv v31, v16, v12 // ...........................................................................................*......................................................................................................................................................................................................................................................................... + vand.vv v27, v12, v13 // ............................................................................................*........................................................................................................................................................................................................................................................................ + andn x23, x27, x6 // ............................................................................................*........................................................................................................................................................................................................................................................................ + vnot.v v13, v13 // .............................................................................................*....................................................................................................................................................................................................................................................................... + sw x1, 19*8+4(x10) // .............................................................................................*....................................................................................................................................................................................................................................................................... + vor.vv v29, v30, v15 // ..............................................................................................*...................................................................................................................................................................................................................................................................... + lw x22, 15*8+4(x10) // ..............................................................................................*...................................................................................................................................................................................................................................................................... + vand.vv v14, v15, v16 // ...............................................................................................*..................................................................................................................................................................................................................................................................... + xor x28, x23, x28 // ...............................................................................................*..................................................................................................................................................................................................................................................................... + andn x25, x30, x22 // ................................................................................................*.................................................................................................................................................................................................................................................................... + lw x26, 11*8+4(x10) // .................................................................................................*................................................................................................................................................................................................................................................................... + vand.vv v10, v19, v20 // .................................................................................................*................................................................................................................................................................................................................................................................... + vand.vv v11, v28, v30 // ..................................................................................................*.................................................................................................................................................................................................................................................................. + lw x23, 20*8+4(x10) // ..................................................................................................*.................................................................................................................................................................................................................................................................. + vxor.vv v13, v13, v29 // ...................................................................................................*................................................................................................................................................................................................................................................................. + xor x6, x9, x6 // ...................................................................................................*................................................................................................................................................................................................................................................................. + vnot.v v28, v18 // ....................................................................................................*................................................................................................................................................................................................................................................................ + xor x1, x25, x23 // ....................................................................................................*................................................................................................................................................................................................................................................................ + vxor.vv v14, v30, v14 // .....................................................................................................*............................................................................................................................................................................................................................................................... + andn x27, x22, x23 // .....................................................................................................*............................................................................................................................................................................................................................................................... + vand.vv v29, v21, v17 // ......................................................................................................*.............................................................................................................................................................................................................................................................. + lw x25, 7*8(x10) // ......................................................................................................*.............................................................................................................................................................................................................................................................. + sw x1, 19*8+4(x10) // .......................................................................................................*............................................................................................................................................................................................................................................................. + vnot.v v30, v18 // .......................................................................................................*............................................................................................................................................................................................................................................................. + xor x4, x3, x24 // ........................................................................................................*............................................................................................................................................................................................................................................................ + andn x3, x24, x7 // ........................................................................................................*............................................................................................................................................................................................................................................................ + xor x29, x3, x29 // .........................................................................................................*........................................................................................................................................................................................................................................................... + lw x3, 11*8(x10) // .........................................................................................................*........................................................................................................................................................................................................................................................... + sw x4, 11*8(x10) // ..........................................................................................................*.......................................................................................................................................................................................................................................................... + vxor.vv v12, v12, v11 // ..........................................................................................................*.......................................................................................................................................................................................................................................................... + rori x9, x3, 27 // ...........................................................................................................*......................................................................................................................................................................................................................................................... + andn x3, x8, x24 // ...........................................................................................................*......................................................................................................................................................................................................................................................... + xor x7, x3, x7 // ............................................................................................................*........................................................................................................................................................................................................................................................ + lw x24, 15*8(x10) // ............................................................................................................*........................................................................................................................................................................................................................................................ + lw x4, 0*8(x10) // .............................................................................................................*....................................................................................................................................................................................................................................................... + rori x3, x25, 29 // .............................................................................................................*....................................................................................................................................................................................................................................................... + vor.vv v18, v17, v18 // ..............................................................................................................*...................................................................................................................................................................................................................................................... + lw x1, 24*8+4(x10) // ..............................................................................................................*...................................................................................................................................................................................................................................................... + sw x3, 11*8(x10) // ...............................................................................................................*..................................................................................................................................................................................................................................................... + andn x3, x9, x31 // ...............................................................................................................*..................................................................................................................................................................................................................................................... + xor x25, x27, x1 // ................................................................................................................*.................................................................................................................................................................................................................................................... + lw x27, 22*8+4(x10) // ................................................................................................................*.................................................................................................................................................................................................................................................... + rori x26, x26, 27 // .................................................................................................................*................................................................................................................................................................................................................................................... + xor x8, x3, x24 // .................................................................................................................*................................................................................................................................................................................................................................................... + sw x25, 18*8+4(x10) // ..................................................................................................................*.................................................................................................................................................................................................................................................. + andn x3, x31, x24 // ..................................................................................................................*.................................................................................................................................................................................................................................................. + sw x8, 15*8(x10) // ...................................................................................................................*................................................................................................................................................................................................................................................. + andn x25, x26, x30 // ...................................................................................................................*................................................................................................................................................................................................................................................. + xor x22, x25, x22 // ....................................................................................................................*................................................................................................................................................................................................................................................ + andn x8, x23, x1 // ....................................................................................................................*................................................................................................................................................................................................................................................ + xor x8, x26, x8 // .....................................................................................................................*............................................................................................................................................................................................................................................... + lw x23, 20*8(x10) // .....................................................................................................................*............................................................................................................................................................................................................................................... + lw x25, 24*8(x10) // ......................................................................................................................*.............................................................................................................................................................................................................................................. + vxor.vv v11, v16, v27 // ......................................................................................................................*.............................................................................................................................................................................................................................................. + xor x3, x3, x23 // .......................................................................................................................*............................................................................................................................................................................................................................................. + sw x22, 15*8+4(x10) // .......................................................................................................................*............................................................................................................................................................................................................................................. + sw x3, 19*8(x10) // ........................................................................................................................*............................................................................................................................................................................................................................................ + andn x3, x25, x9 // ........................................................................................................................*............................................................................................................................................................................................................................................ + xor x31, x3, x31 // .........................................................................................................................*........................................................................................................................................................................................................................................... + andn x3, x23, x25 // .........................................................................................................................*........................................................................................................................................................................................................................................... + lw x22, 1*8(x10) // ..........................................................................................................................*.......................................................................................................................................................................................................................................... + vor.vv v27, v22, v23 // ..........................................................................................................................*.......................................................................................................................................................................................................................................... + vxor.vv v16, v21, v18 // ...........................................................................................................................*......................................................................................................................................................................................................................................... + xor x9, x9, x3 // ...........................................................................................................................*......................................................................................................................................................................................................................................... + vxor.vv v18, v28, v10 // ............................................................................................................................*........................................................................................................................................................................................................................................ + andn x3, x19, x22 // ............................................................................................................................*........................................................................................................................................................................................................................................ + vxor.vv v10, v15, v31 // .............................................................................................................................*....................................................................................................................................................................................................................................... + xor x3, x3, x4 // .............................................................................................................................*....................................................................................................................................................................................................................................... + sw x3, 24*8(x10) // ..............................................................................................................................*...................................................................................................................................................................................................................................... + andn x3, x24, x23 // ..............................................................................................................................*...................................................................................................................................................................................................................................... + xor x3, x3, x25 // ...............................................................................................................................*..................................................................................................................................................................................................................................... + lw x23, 22*8(x10) // ...............................................................................................................................*..................................................................................................................................................................................................................................... + vnot.v v31, v1 // ................................................................................................................................*.................................................................................................................................................................................................................................... + sw x3, 18*8(x10) // ................................................................................................................................*.................................................................................................................................................................................................................................... + vand.vv v15, v0, v1 // .................................................................................................................................*................................................................................................................................................................................................................................... + lw x24, 0*8+4(x10) // .................................................................................................................................*................................................................................................................................................................................................................................... + vnot.v v1, v1 // ..................................................................................................................................*.................................................................................................................................................................................................................................. + andn x3, x23, x19 // ..................................................................................................................................*.................................................................................................................................................................................................................................. + vor.vv v28, v20, v21 // ...................................................................................................................................*................................................................................................................................................................................................................................. + xor x3, x3, x22 // ...................................................................................................................................*................................................................................................................................................................................................................................. + sw x3, 20*8(x10) // ....................................................................................................................................*................................................................................................................................................................................................................................ + vxor.vv v21, v31, v27 // ....................................................................................................................................*................................................................................................................................................................................................................................ + vor.vv v27, v24, v0 // .....................................................................................................................................*............................................................................................................................................................................................................................... + andn x3, x4, x21 // .....................................................................................................................................*............................................................................................................................................................................................................................... + andn x1, x1, x26 // ......................................................................................................................................*.............................................................................................................................................................................................................................. + xor x25, x3, x23 // ......................................................................................................................................*.............................................................................................................................................................................................................................. + xor x30, x1, x30 // .......................................................................................................................................*............................................................................................................................................................................................................................. + sw x25, 22*8(x10) // .......................................................................................................................................*............................................................................................................................................................................................................................. + lw x26, 1*8+4(x10) // ........................................................................................................................................*............................................................................................................................................................................................................................ + vand.vv v31, v23, v24 // ........................................................................................................................................*............................................................................................................................................................................................................................ + vxor.vv v24, v24, v15 // .........................................................................................................................................*........................................................................................................................................................................................................................... + andn x3, x21, x23 // .........................................................................................................................................*........................................................................................................................................................................................................................... + vxor.vv v15, v20, v29 // ..........................................................................................................................................*.......................................................................................................................................................................................................................... + xor x19, x3, x19 // ..........................................................................................................................................*.......................................................................................................................................................................................................................... + vand.vv v20, v1, v22 // ...........................................................................................................................................*......................................................................................................................................................................................................................... + andn x3, x22, x4 // ...........................................................................................................................................*......................................................................................................................................................................................................................... + xor x21, x21, x3 // ............................................................................................................................................*........................................................................................................................................................................................................................ + andn x4, x24, x20 // ............................................................................................................................................*........................................................................................................................................................................................................................ + xor x23, x4, x27 // .............................................................................................................................................*....................................................................................................................................................................................................................... + vor.vv v29, v30, v19 // .............................................................................................................................................*....................................................................................................................................................................................................................... + sw x23, 22*8+4(x10) // ..............................................................................................................................................*...................................................................................................................................................................................................................... + andn x4, x18, x26 // ..............................................................................................................................................*...................................................................................................................................................................................................................... + vor.vv v30, v4, v25 // ................................................................................................................................................*.................................................................................................................................................................................................................... + lw x22, 19*4(x2) // ................................................................................................................................................*.................................................................................................................................................................................................................... + vxor.vv v17, v17, v29 // .................................................................................................................................................*................................................................................................................................................................................................................... + lw x1, 16*4(x2) // .................................................................................................................................................*................................................................................................................................................................................................................... + lw x23, 18*4(x2) // ..................................................................................................................................................*.................................................................................................................................................................................................................. + vand.vv v29, v25, v26 // ..................................................................................................................................................*.................................................................................................................................................................................................................. + sw x1, 16*4(x2) // ...................................................................................................................................................*................................................................................................................................................................................................................. + xor x4, x4, x24 // ...................................................................................................................................................*................................................................................................................................................................................................................. + vxor.vv v19, v19, v28 // ....................................................................................................................................................*................................................................................................................................................................................................................ + sw x4, 24*8+4(x10) // ....................................................................................................................................................*................................................................................................................................................................................................................ + vxor.vv v20, v0, v20 // .....................................................................................................................................................*............................................................................................................................................................................................................... + lw x4, 20*4(x2) // .....................................................................................................................................................*............................................................................................................................................................................................................... + vand.vv v1, v3, v4 // ......................................................................................................................................................*.............................................................................................................................................................................................................. + andn x25, x20, x27 // ......................................................................................................................................................*.............................................................................................................................................................................................................. + vxor.vv v4, v4, v29 // .......................................................................................................................................................*............................................................................................................................................................................................................. + andn x3, x12, x4 // .......................................................................................................................................................*............................................................................................................................................................................................................. + vor.vv v29, v26, v2 // ........................................................................................................................................................*............................................................................................................................................................................................................ + andn x27, x27, x18 // ........................................................................................................................................................*............................................................................................................................................................................................................ + xor x27, x27, x26 // .........................................................................................................................................................*........................................................................................................................................................................................................... + vxor.vv v22, v22, v31 // .........................................................................................................................................................*........................................................................................................................................................................................................... + sw x27, 20*8+4(x10) // ..........................................................................................................................................................*.......................................................................................................................................................................................................... + andn x1, x26, x24 // ..........................................................................................................................................................*.......................................................................................................................................................................................................... + xor x18, x25, x18 // ...........................................................................................................................................................*......................................................................................................................................................................................................... + lw x27, 28*4(x2) // ...........................................................................................................................................................*......................................................................................................................................................................................................... + vxor.vv v28, v25, v29 // ............................................................................................................................................................*........................................................................................................................................................................................................ + lw x26, 17*4(x2) // ............................................................................................................................................................*........................................................................................................................................................................................................ + vle64.v v29, (x27) // .............................................................................................................................................................*....................................................................................................................................................................................................... + xor x20, x20, x1 // .............................................................................................................................................................*....................................................................................................................................................................................................... + addi x25, x26, 8 // ..............................................................................................................................................................*...................................................................................................................................................................................................... + lw x24, 21*4(x2) // ..............................................................................................................................................................*...................................................................................................................................................................................................... + xor x3, x3, x23 // ...............................................................................................................................................................*..................................................................................................................................................................................................... + lw x1, 0(x26) // ...............................................................................................................................................................*..................................................................................................................................................................................................... + sw x25, 17*4(x2) // ................................................................................................................................................................*.................................................................................................................................................................................................... + vxor.vv v0, v28, v29 // ................................................................................................................................................................*.................................................................................................................................................................................................... + lw x25, 4(x26) // .................................................................................................................................................................*................................................................................................................................................................................................... + vnot.v v29, v2 // .................................................................................................................................................................*................................................................................................................................................................................................... + xor x3, x3, x1 // ..................................................................................................................................................................*.................................................................................................................................................................................................. + andn x1, x11, x24 // ..................................................................................................................................................................*.................................................................................................................................................................................................. + sw x3, 0*8(x10) // ...................................................................................................................................................................*................................................................................................................................................................................................. + xor x1, x1, x22 // ...................................................................................................................................................................*................................................................................................................................................................................................. + vxor.vv v23, v23, v27 // ....................................................................................................................................................................*................................................................................................................................................................................................ + xor x26, x1, x25 // ....................................................................................................................................................................*................................................................................................................................................................................................ + vor.vv v29, v29, v3 // .....................................................................................................................................................................*............................................................................................................................................................................................... + sw x26, 0*8+4(x10) // .....................................................................................................................................................................*............................................................................................................................................................................................... + vxor.vv v2, v2, v1 // ......................................................................................................................................................................*.............................................................................................................................................................................................. + lw x26, 3*8(x10) // ......................................................................................................................................................................*.............................................................................................................................................................................................. + vxor.vv v3, v3, v30 // .......................................................................................................................................................................*............................................................................................................................................................................................. + lw x25, 3*8+4(x10) // .......................................................................................................................................................................*............................................................................................................................................................................................. + vxor.vv v31, v4, v9 // ........................................................................................................................................................................*............................................................................................................................................................................................ + andn x3, x26, x12 // ........................................................................................................................................................................*............................................................................................................................................................................................ + xor x3, x3, x4 // .........................................................................................................................................................................*........................................................................................................................................................................................... + andn x1, x25, x11 // .........................................................................................................................................................................*........................................................................................................................................................................................... + sw x3, 1*8(x10) // ..........................................................................................................................................................................*.......................................................................................................................................................................................... + xor x1, x1, x24 // ..........................................................................................................................................................................*.......................................................................................................................................................................................... + sw x1, 1*8+4(x10) // ...........................................................................................................................................................................*......................................................................................................................................................................................... + andn x1, x22, x13 // ...........................................................................................................................................................................*......................................................................................................................................................................................... + xor x1, x1, x25 // ............................................................................................................................................................................*........................................................................................................................................................................................ + andn x3, x23, x14 // ............................................................................................................................................................................*........................................................................................................................................................................................ + addi x27, x27, 16 // .............................................................................................................................................................................*....................................................................................................................................................................................... + xor x3, x3, x26 // .............................................................................................................................................................................*....................................................................................................................................................................................... + sw x3, 3*8(x10) // ..............................................................................................................................................................................*...................................................................................................................................................................................... + andn x3, x14, x26 // ..............................................................................................................................................................................*...................................................................................................................................................................................... + sw x1, 3*8+4(x10) // ...............................................................................................................................................................................*..................................................................................................................................................................................... + andn x1, x13, x25 // ...............................................................................................................................................................................*..................................................................................................................................................................................... + xor x12, x3, x12 // ................................................................................................................................................................................*.................................................................................................................................................................................... + vxor.vv v1, v26, v29 // ................................................................................................................................................................................*.................................................................................................................................................................................... + vxor.vv v29, v3, v8 // .................................................................................................................................................................................*................................................................................................................................................................................... + xor x11, x1, x11 // .................................................................................................................................................................................*................................................................................................................................................................................... + andn x3, x4, x23 // ..................................................................................................................................................................................*.................................................................................................................................................................................. + sw x27, 28*4(x2) // ..................................................................................................................................................................................*.................................................................................................................................................................................. + andn x1, x24, x22 // ...................................................................................................................................................................................*................................................................................................................................................................................. + xor x14, x3, x14 // ...................................................................................................................................................................................*................................................................................................................................................................................. + lw x22, 3*8+4(x10) // ....................................................................................................................................................................................*................................................................................................................................................................................ + xor x13, x1, x13 // ....................................................................................................................................................................................*................................................................................................................................................................................ + xor x25, x17, x20 // .....................................................................................................................................................................................*............................................................................................................................................................................... + lw x3, 0*8(x10) // .....................................................................................................................................................................................*............................................................................................................................................................................... + lw x26, 15*8(x10) // ......................................................................................................................................................................................*.............................................................................................................................................................................. + xor x23, x16, x7 // ......................................................................................................................................................................................*.............................................................................................................................................................................. + xor x1, x23, x3 // .......................................................................................................................................................................................*............................................................................................................................................................................. + lw x3, 20*8(x10) // .......................................................................................................................................................................................*............................................................................................................................................................................. + xor x27, x5, x21 // ........................................................................................................................................................................................*............................................................................................................................................................................ + lw x24, 18*8+4(x10) // ........................................................................................................................................................................................*............................................................................................................................................................................ + lw x4, 13*8(x10) // .........................................................................................................................................................................................*........................................................................................................................................................................... + vxor.vv v26, v1, v6 // .........................................................................................................................................................................................*........................................................................................................................................................................... + xor x23, x1, x26 // ..........................................................................................................................................................................................*.......................................................................................................................................................................... + xor x26, x13, x28 // ..........................................................................................................................................................................................*.......................................................................................................................................................................... + xor x25, x25, x22 // ...........................................................................................................................................................................................*......................................................................................................................................................................... + lw x1, 13*8+4(x10) // ...........................................................................................................................................................................................*......................................................................................................................................................................... + xor x23, x23, x3 // ............................................................................................................................................................................................*........................................................................................................................................................................ + lw x3, 3*8(x10) // ............................................................................................................................................................................................*........................................................................................................................................................................ + vxor.vv v26, v26, v11 // .............................................................................................................................................................................................*....................................................................................................................................................................... + xor x1, x25, x1 // .............................................................................................................................................................................................*....................................................................................................................................................................... + xor x25, x27, x3 // ..............................................................................................................................................................................................*...................................................................................................................................................................... + vxor.vv v29, v29, v13 // ..............................................................................................................................................................................................*...................................................................................................................................................................... + xor x22, x1, x24 // ...............................................................................................................................................................................................*..................................................................................................................................................................... + lw x1, 9*8+4(x10) // ...............................................................................................................................................................................................*..................................................................................................................................................................... + sw x23, 18*4(x2) // ................................................................................................................................................................................................*.................................................................................................................................................................... + xor x24, x23, x22 // ................................................................................................................................................................................................*.................................................................................................................................................................... + xor x26, x26, x1 // .................................................................................................................................................................................................*................................................................................................................................................................... + vxor.vv v30, v26, v16 // .................................................................................................................................................................................................*................................................................................................................................................................... + vxor.vv v28, v29, v18 // ..................................................................................................................................................................................................*.................................................................................................................................................................. + lw x27, 0*8+4(x10) // ..................................................................................................................................................................................................*.................................................................................................................................................................. + xor x23, x25, x4 // ...................................................................................................................................................................................................*................................................................................................................................................................. + lw x25, 20*8+4(x10) // ...................................................................................................................................................................................................*................................................................................................................................................................. + lw x3, 18*8(x10) // ....................................................................................................................................................................................................*................................................................................................................................................................ + vxor.vv v26, v31, v14 // ....................................................................................................................................................................................................*................................................................................................................................................................ + sw x22, 25*4(x2) // .....................................................................................................................................................................................................*............................................................................................................................................................... + li x4, 64-1 // .....................................................................................................................................................................................................*............................................................................................................................................................... + lw x22, 19*8+4(x10) // ......................................................................................................................................................................................................*.............................................................................................................................................................. + vxor.vv v27, v28, v23 // ......................................................................................................................................................................................................*.............................................................................................................................................................. + xor x28, x28, x24 // .......................................................................................................................................................................................................*............................................................................................................................................................. + xor x1, x1, x24 // .......................................................................................................................................................................................................*............................................................................................................................................................. + sw x1, 9*8+4(x10) // ........................................................................................................................................................................................................*............................................................................................................................................................ + vxor.vv v25, v26, v19 // ........................................................................................................................................................................................................*............................................................................................................................................................ + vxor.vv v31, v0, v5 // .........................................................................................................................................................................................................*........................................................................................................................................................... + xor x1, x15, x6 // .........................................................................................................................................................................................................*........................................................................................................................................................... + vsrl.vx v29, v27, x4 // ..........................................................................................................................................................................................................*.......................................................................................................................................................... + xor x27, x1, x27 // ..........................................................................................................................................................................................................*.......................................................................................................................................................... + vxor.vv v30, v30, v21 // ...........................................................................................................................................................................................................*......................................................................................................................................................... + xor x1, x22, x24 // ...........................................................................................................................................................................................................*......................................................................................................................................................... + xor x23, x23, x3 // ............................................................................................................................................................................................................*........................................................................................................................................................ + vxor.vv v26, v25, v24 // ............................................................................................................................................................................................................*........................................................................................................................................................ + sw x1, 19*8+4(x10) // .............................................................................................................................................................................................................*....................................................................................................................................................... + vsll.vi v25, v27, 1 // .............................................................................................................................................................................................................*....................................................................................................................................................... + xor x13, x13, x24 // ..............................................................................................................................................................................................................*...................................................................................................................................................... + lw x1, 15*8+4(x10) // ..............................................................................................................................................................................................................*...................................................................................................................................................... + sw x23, 24*4(x2) // ...............................................................................................................................................................................................................*..................................................................................................................................................... + vsrl.vx v28, v30, x4 // ...............................................................................................................................................................................................................*..................................................................................................................................................... + lw x3, 9*8(x10) // ................................................................................................................................................................................................................*.................................................................................................................................................... + xor x22, x26, x22 // ................................................................................................................................................................................................................*.................................................................................................................................................... + vxor.vv v29, v29, v25 // .................................................................................................................................................................................................................*................................................................................................................................................... + xor x26, x27, x1 // .................................................................................................................................................................................................................*................................................................................................................................................... + vsll.vi v25, v30, 1 // ..................................................................................................................................................................................................................*.................................................................................................................................................. + xor x1, x14, x29 // ..................................................................................................................................................................................................................*.................................................................................................................................................. + xor x1, x1, x3 // ...................................................................................................................................................................................................................*................................................................................................................................................. + xor x26, x26, x25 // ...................................................................................................................................................................................................................*................................................................................................................................................. + lw x27, 19*8(x10) // ....................................................................................................................................................................................................................*................................................................................................................................................ + rori x25, x26, 32-1 // ....................................................................................................................................................................................................................*................................................................................................................................................ + vxor.vv v31, v31, v10 // .....................................................................................................................................................................................................................*............................................................................................................................................... + xor x23, x25, x23 // .....................................................................................................................................................................................................................*............................................................................................................................................... + vxor.vv v28, v28, v25 // ......................................................................................................................................................................................................................*.............................................................................................................................................. + xor x3, x3, x23 // ......................................................................................................................................................................................................................*.............................................................................................................................................. + sw x3, 9*8(x10) // .......................................................................................................................................................................................................................*............................................................................................................................................. + vxor.vv v25, v2, v7 // .......................................................................................................................................................................................................................*............................................................................................................................................. + vxor.vv v29, v29, v30 // ........................................................................................................................................................................................................................*............................................................................................................................................ + sw x26, 19*4(x2) // ........................................................................................................................................................................................................................*............................................................................................................................................ + lw x26, 24*8+4(x10) // .........................................................................................................................................................................................................................*........................................................................................................................................... + xor x25, x31, x19 // .........................................................................................................................................................................................................................*........................................................................................................................................... + lw x3, 1*8(x10) // ..........................................................................................................................................................................................................................*.......................................................................................................................................... + vxor.vv v30, v31, v15 // ..........................................................................................................................................................................................................................*.......................................................................................................................................... + vxor.vv v31, v25, v12 // ...........................................................................................................................................................................................................................*......................................................................................................................................... + xor x24, x26, x24 // ...........................................................................................................................................................................................................................*......................................................................................................................................... + sw x24, 24*8+4(x10) // ............................................................................................................................................................................................................................*........................................................................................................................................ + xor x24, x27, x23 // ............................................................................................................................................................................................................................*........................................................................................................................................ + sw x24, 19*8(x10) // .............................................................................................................................................................................................................................*....................................................................................................................................... + xor x24, x22, x26 // .............................................................................................................................................................................................................................*....................................................................................................................................... + xor x25, x25, x3 // ..............................................................................................................................................................................................................................*...................................................................................................................................... + vxor.vv v30, v30, v20 // ..............................................................................................................................................................................................................................*...................................................................................................................................... + vxor.vv v25, v31, v17 // ...............................................................................................................................................................................................................................*..................................................................................................................................... + lw x26, 6*8(x10) // ...............................................................................................................................................................................................................................*..................................................................................................................................... + xor x29, x29, x23 // ................................................................................................................................................................................................................................*.................................................................................................................................... + lw x3, 11*8(x10) // ................................................................................................................................................................................................................................*.................................................................................................................................... + xor x26, x25, x26 // .................................................................................................................................................................................................................................*................................................................................................................................... + vsrl.vx v31, v26, x4 // .................................................................................................................................................................................................................................*................................................................................................................................... + xor x26, x26, x3 // ..................................................................................................................................................................................................................................*.................................................................................................................................. + lw x3, 24*8(x10) // ..................................................................................................................................................................................................................................*.................................................................................................................................. + sw x26, 20*4(x2) // ...................................................................................................................................................................................................................................*................................................................................................................................. + vxor.vv v25, v25, v22 // ...................................................................................................................................................................................................................................*................................................................................................................................. + vxor.vv v22, v22, v29 // ....................................................................................................................................................................................................................................*................................................................................................................................ + xor x26, x26, x24 // ....................................................................................................................................................................................................................................*................................................................................................................................ + vxor.vv v12, v12, v29 // .....................................................................................................................................................................................................................................*............................................................................................................................... + xor x22, x1, x27 // .....................................................................................................................................................................................................................................*............................................................................................................................... + vxor.vv v7, v7, v29 // ......................................................................................................................................................................................................................................*.............................................................................................................................. + lw x27, 15*8+4(x10) // ......................................................................................................................................................................................................................................*.............................................................................................................................. + xor x25, x22, x3 // .......................................................................................................................................................................................................................................*............................................................................................................................. + vxor.vv v17, v17, v29 // .......................................................................................................................................................................................................................................*............................................................................................................................. + vxor.vv v28, v28, v26 // ........................................................................................................................................................................................................................................*............................................................................................................................ + xor x27, x27, x26 // ........................................................................................................................................................................................................................................*............................................................................................................................ + vxor.vv v2, v2, v29 // .........................................................................................................................................................................................................................................*........................................................................................................................... + lw x1, 0*8+4(x10) // .........................................................................................................................................................................................................................................*........................................................................................................................... + xor x14, x14, x23 // ..........................................................................................................................................................................................................................................*.......................................................................................................................... + vsll.vi v29, v26, 1 // ..........................................................................................................................................................................................................................................*.......................................................................................................................... + xor x1, x1, x26 // ...........................................................................................................................................................................................................................................*......................................................................................................................... + vsrl.vx v26, v30, x4 // ...........................................................................................................................................................................................................................................*......................................................................................................................... + sw x1, 0*8+4(x10) // ............................................................................................................................................................................................................................................*........................................................................................................................ + vxor.vv v20, v20, v28 // ............................................................................................................................................................................................................................................*........................................................................................................................ + xor x3, x3, x23 // .............................................................................................................................................................................................................................................*....................................................................................................................... + vxor.vv v15, v15, v28 // .............................................................................................................................................................................................................................................*....................................................................................................................... + sw x27, 15*8+4(x10) // ..............................................................................................................................................................................................................................................*...................................................................................................................... + vxor.vv v10, v10, v28 // ..............................................................................................................................................................................................................................................*...................................................................................................................... + vxor.vv v0, v0, v28 // ...............................................................................................................................................................................................................................................*..................................................................................................................... + lw x23, 24*4(x2) // ...............................................................................................................................................................................................................................................*..................................................................................................................... + vxor.vv v5, v5, v28 // ................................................................................................................................................................................................................................................*.................................................................................................................... + sw x3, 24*8(x10) // ................................................................................................................................................................................................................................................*.................................................................................................................... + lw x1, 21*4(x2) // .................................................................................................................................................................................................................................................*................................................................................................................... + vxor.vv v28, v31, v29 // .................................................................................................................................................................................................................................................*................................................................................................................... + vsrl.vx v31, v25, x4 // ..................................................................................................................................................................................................................................................*.................................................................................................................. + lw x4, 20*8+4(x10) // ..................................................................................................................................................................................................................................................*.................................................................................................................. + vsll.vi v29, v25, 1 // ...................................................................................................................................................................................................................................................*................................................................................................................. + sw x24, 27*4(x2) // ...................................................................................................................................................................................................................................................*................................................................................................................. + xor x27, x30, x18 // ....................................................................................................................................................................................................................................................*................................................................................................................ + xor x23, x23, x1 // ....................................................................................................................................................................................................................................................*................................................................................................................ + xor x4, x4, x26 // .....................................................................................................................................................................................................................................................*............................................................................................................... + lw x1, 6*8+4(x10) // .....................................................................................................................................................................................................................................................*............................................................................................................... + sw x4, 20*8+4(x10) // ......................................................................................................................................................................................................................................................*.............................................................................................................. + xor x15, x15, x26 // ......................................................................................................................................................................................................................................................*.............................................................................................................. + vxor.vv v31, v31, v29 // .......................................................................................................................................................................................................................................................*............................................................................................................. + xor x6, x6, x26 // .......................................................................................................................................................................................................................................................*............................................................................................................. + vxor.vv v25, v28, v25 // ........................................................................................................................................................................................................................................................*............................................................................................................ + lw x4, 1*8+4(x10) // ........................................................................................................................................................................................................................................................*............................................................................................................ + xor x26, x27, x4 // ..........................................................................................................................................................................................................................................................*.......................................................................................................... + vsll.vi v29, v30, 1 // ..........................................................................................................................................................................................................................................................*.......................................................................................................... + vxor.vv v31, v31, v30 // ...........................................................................................................................................................................................................................................................*......................................................................................................... + lw x22, 25*4(x2) // ...........................................................................................................................................................................................................................................................*......................................................................................................... + xor x1, x26, x1 // ............................................................................................................................................................................................................................................................*........................................................................................................ + lw x3, 20*8(x10) // ............................................................................................................................................................................................................................................................*........................................................................................................ + lw x27, 11*8+4(x10) // .............................................................................................................................................................................................................................................................*....................................................................................................... + vxor.vv v3, v3, v25 // .............................................................................................................................................................................................................................................................*....................................................................................................... + vxor.vv v23, v23, v25 // ..............................................................................................................................................................................................................................................................*...................................................................................................... + lw x26, 15*8(x10) // ..............................................................................................................................................................................................................................................................*...................................................................................................... + vxor.vv v13, v13, v25 // ...............................................................................................................................................................................................................................................................*..................................................................................................... + xor x1, x1, x27 // ...............................................................................................................................................................................................................................................................*..................................................................................................... + rori x27, x1, 32-1 // ................................................................................................................................................................................................................................................................*.................................................................................................... + sw x1, 21*4(x2) // ................................................................................................................................................................................................................................................................*.................................................................................................... + xor x27, x27, x25 // .................................................................................................................................................................................................................................................................*................................................................................................... + lw x1, 0*8(x10) // .................................................................................................................................................................................................................................................................*................................................................................................... + xor x3, x3, x27 // ..................................................................................................................................................................................................................................................................*.................................................................................................. + rori x4, x22, 32-1 // ..................................................................................................................................................................................................................................................................*.................................................................................................. + sw x3, 20*8(x10) // ...................................................................................................................................................................................................................................................................*................................................................................................. + xor x1, x1, x27 // ...................................................................................................................................................................................................................................................................*................................................................................................. + sw x1, 0*8(x10) // ....................................................................................................................................................................................................................................................................*................................................................................................ + xor x16, x16, x27 // ....................................................................................................................................................................................................................................................................*................................................................................................ + lw x3, 7*8(x10) // .....................................................................................................................................................................................................................................................................*............................................................................................... + xor x7, x7, x27 // .....................................................................................................................................................................................................................................................................*............................................................................................... + xor x27, x26, x27 // ......................................................................................................................................................................................................................................................................*.............................................................................................. + lw x1, 7*8+4(x10) // ......................................................................................................................................................................................................................................................................*.............................................................................................. + sw x27, 15*8(x10) // .......................................................................................................................................................................................................................................................................*............................................................................................. + xor x27, x11, x8 // .......................................................................................................................................................................................................................................................................*............................................................................................. + lw x26, 12*8+4(x10) // ........................................................................................................................................................................................................................................................................*............................................................................................ + xor x8, x8, x23 // ........................................................................................................................................................................................................................................................................*............................................................................................ + xor x27, x27, x1 // .........................................................................................................................................................................................................................................................................*........................................................................................... + lw x22, 20*4(x2) // .........................................................................................................................................................................................................................................................................*........................................................................................... + vxor.vv v18, v18, v25 // ..........................................................................................................................................................................................................................................................................*.......................................................................................... + xor x1, x1, x23 // ..........................................................................................................................................................................................................................................................................*.......................................................................................... + sw x1, 7*8+4(x10) // ...........................................................................................................................................................................................................................................................................*......................................................................................... + xor x4, x4, x22 // ...........................................................................................................................................................................................................................................................................*......................................................................................... + xor x1, x12, x9 // ............................................................................................................................................................................................................................................................................*........................................................................................ + sw x25, 26*4(x2) // ............................................................................................................................................................................................................................................................................*........................................................................................ + xor x1, x1, x3 // .............................................................................................................................................................................................................................................................................*....................................................................................... + xor x3, x3, x4 // .............................................................................................................................................................................................................................................................................*....................................................................................... + xor x22, x27, x26 // ..............................................................................................................................................................................................................................................................................*...................................................................................... + sw x3, 7*8(x10) // ..............................................................................................................................................................................................................................................................................*...................................................................................... + xor x12, x12, x4 // ...............................................................................................................................................................................................................................................................................*..................................................................................... + lw x3, 12*8(x10) // ...............................................................................................................................................................................................................................................................................*..................................................................................... + xor x11, x11, x23 // ................................................................................................................................................................................................................................................................................*.................................................................................... + vxor.vv v29, v26, v29 // ................................................................................................................................................................................................................................................................................*.................................................................................... + xor x27, x1, x3 // .................................................................................................................................................................................................................................................................................*................................................................................... + xor x3, x3, x4 // .................................................................................................................................................................................................................................................................................*................................................................................... + xor x1, x26, x23 // ..................................................................................................................................................................................................................................................................................*.................................................................................. + sw x3, 12*8(x10) // ..................................................................................................................................................................................................................................................................................*.................................................................................. + sw x1, 12*8+4(x10) // ...................................................................................................................................................................................................................................................................................*................................................................................. + vxor.vv v16, v16, v31 // ...................................................................................................................................................................................................................................................................................*................................................................................. + lw x3, 22*8(x10) // ....................................................................................................................................................................................................................................................................................*................................................................................ + vxor.vv v26, v29, v27 // ....................................................................................................................................................................................................................................................................................*................................................................................ + lw x1, 22*8+4(x10) // .....................................................................................................................................................................................................................................................................................*............................................................................... + vxor.vv v1, v1, v31 // .....................................................................................................................................................................................................................................................................................*............................................................................... + vxor.vv v29, v6, v31 // ......................................................................................................................................................................................................................................................................................*.............................................................................. + xor x9, x9, x4 // ......................................................................................................................................................................................................................................................................................*.............................................................................. + xor x22, x22, x1 // .......................................................................................................................................................................................................................................................................................*............................................................................. + xor x1, x1, x23 // .......................................................................................................................................................................................................................................................................................*............................................................................. + sw x1, 22*8+4(x10) // ........................................................................................................................................................................................................................................................................................*............................................................................ + xor x23, x27, x3 // ........................................................................................................................................................................................................................................................................................*............................................................................ + rori x27, x24, 32-1 // .........................................................................................................................................................................................................................................................................................*........................................................................... + lw x26, 3*8+4(x10) // .........................................................................................................................................................................................................................................................................................*........................................................................... + xor x3, x3, x4 // ..........................................................................................................................................................................................................................................................................................*.......................................................................... + xor x24, x25, x22 // ..........................................................................................................................................................................................................................................................................................*.......................................................................... + sw x3, 22*8(x10) // ...........................................................................................................................................................................................................................................................................................*......................................................................... + xor x26, x26, x24 // ...........................................................................................................................................................................................................................................................................................*......................................................................... + rori x25, x22, 32-1 // ............................................................................................................................................................................................................................................................................................*........................................................................ + lw x1, 18*4(x2) // ............................................................................................................................................................................................................................................................................................*........................................................................ + lw x4, 19*4(x2) // .............................................................................................................................................................................................................................................................................................*....................................................................... + xor x1, x25, x1 // ..............................................................................................................................................................................................................................................................................................*...................................................................... + lw x25, 1*8(x10) // ..............................................................................................................................................................................................................................................................................................*...................................................................... + xor x19, x19, x1 // ...............................................................................................................................................................................................................................................................................................*..................................................................... + xor x17, x17, x24 // ...............................................................................................................................................................................................................................................................................................*..................................................................... + rori x3, x19, 31 // ................................................................................................................................................................................................................................................................................................*.................................................................... + xor x19, x25, x1 // ................................................................................................................................................................................................................................................................................................*.................................................................... + xor x25, x27, x23 // .................................................................................................................................................................................................................................................................................................*................................................................... + lw x27, 11*8(x10) // .................................................................................................................................................................................................................................................................................................*................................................................... + sw x19, 1*8(x10) // ..................................................................................................................................................................................................................................................................................................*.................................................................. + rori x19, x17, 4 // ..................................................................................................................................................................................................................................................................................................*.................................................................. + xor x27, x27, x1 // ...................................................................................................................................................................................................................................................................................................*................................................................. + xor x31, x31, x1 // ...................................................................................................................................................................................................................................................................................................*................................................................. + vsrl.vi v27, v23, 8 // ....................................................................................................................................................................................................................................................................................................*................................................................ + xor x4, x23, x4 // ....................................................................................................................................................................................................................................................................................................*................................................................ + sw x23, 22*4(x2) // .....................................................................................................................................................................................................................................................................................................*............................................................... + li x23, 56 // .....................................................................................................................................................................................................................................................................................................*............................................................... + vsll.vi v28, v1, 1 // ......................................................................................................................................................................................................................................................................................................*.............................................................. + sw x3, 0*8(x10) // ......................................................................................................................................................................................................................................................................................................*.............................................................. + vsll.vx v6, v23, x23 // .......................................................................................................................................................................................................................................................................................................*............................................................. + lw x3, 3*8(x10) // .......................................................................................................................................................................................................................................................................................................*............................................................. + vxor.vv v23, v19, v26 // ........................................................................................................................................................................................................................................................................................................*............................................................ + li x23, 55 // ........................................................................................................................................................................................................................................................................................................*............................................................ + xor x3, x3, x25 // .........................................................................................................................................................................................................................................................................................................*........................................................... + vxor.vv v8, v8, v25 // .........................................................................................................................................................................................................................................................................................................*........................................................... + sw x3, 3*8(x10) // ..........................................................................................................................................................................................................................................................................................................*.......................................................... + li x17, 63 // ..........................................................................................................................................................................................................................................................................................................*.......................................................... + vxor.vv v19, v27, v6 // ...........................................................................................................................................................................................................................................................................................................*......................................................... + lw x3, 18*8(x10) // ...........................................................................................................................................................................................................................................................................................................*......................................................... + vsrl.vx v30, v1, x17 // ............................................................................................................................................................................................................................................................................................................*........................................................ + lw x17, 6*8+4(x10) // ............................................................................................................................................................................................................................................................................................................*........................................................ + xor x3, x3, x25 // .............................................................................................................................................................................................................................................................................................................*....................................................... + vsll.vx v6, v8, x23 // .............................................................................................................................................................................................................................................................................................................*....................................................... + xor x17, x17, x4 // ..............................................................................................................................................................................................................................................................................................................*...................................................... + vsrl.vi v8, v8, 9 // ..............................................................................................................................................................................................................................................................................................................*...................................................... + lw x23, 13*8(x10) // ...............................................................................................................................................................................................................................................................................................................*..................................................... + xor x5, x5, x25 // ...............................................................................................................................................................................................................................................................................................................*..................................................... + sw x17, 6*8+4(x10) // ................................................................................................................................................................................................................................................................................................................*.................................................... + xor x21, x21, x25 // ................................................................................................................................................................................................................................................................................................................*.................................................... + xor x23, x23, x25 // .................................................................................................................................................................................................................................................................................................................*................................................... + lw x25, 0*8+4(x10) // .................................................................................................................................................................................................................................................................................................................*................................................... + vxor.vv v1, v8, v6 // ..................................................................................................................................................................................................................................................................................................................*.................................................. + mv x17, x17 // ..................................................................................................................................................................................................................................................................................................................*.................................................. + sw x25, 19*4(x2) // ...................................................................................................................................................................................................................................................................................................................*................................................. + xor x25, x30, x4 // ...................................................................................................................................................................................................................................................................................................................*................................................. + vxor.vv v14, v14, v26 // ....................................................................................................................................................................................................................................................................................................................*................................................ + li x30, 41 // ....................................................................................................................................................................................................................................................................................................................*................................................ + sw x23, 13*8(x10) // .....................................................................................................................................................................................................................................................................................................................*............................................... + li x23, 39 // .....................................................................................................................................................................................................................................................................................................................*............................................... + vsll.vx v27, v15, x30 // ......................................................................................................................................................................................................................................................................................................................*.............................................. + li x30, 43 // ......................................................................................................................................................................................................................................................................................................................*.............................................. + vsrl.vx v8, v13, x23 // .......................................................................................................................................................................................................................................................................................................................*............................................. + lw x23, 13*8+4(x10) // .......................................................................................................................................................................................................................................................................................................................*............................................. + vxor.vv v24, v24, v26 // ........................................................................................................................................................................................................................................................................................................................*............................................ + vmv.v.v v25, v0 // ........................................................................................................................................................................................................................................................................................................................*............................................ + vsll.vx v6, v12, x30 // .........................................................................................................................................................................................................................................................................................................................*........................................... + li x30, 56 // .........................................................................................................................................................................................................................................................................................................................*........................................... + vsrl.vi v0, v12, 21 // ..........................................................................................................................................................................................................................................................................................................................*.......................................... + sw x3, 18*8(x10) // ..........................................................................................................................................................................................................................................................................................................................*.......................................... + vsll.vi v12, v23, 8 // ...........................................................................................................................................................................................................................................................................................................................*......................................... + lw x3, 18*8(x10) // ...........................................................................................................................................................................................................................................................................................................................*......................................... + sw x27, 11*8(x10) // ............................................................................................................................................................................................................................................................................................................................*........................................ + vsrl.vx v23, v23, x30 // ............................................................................................................................................................................................................................................................................................................................*........................................ + vxor.vv v11, v11, v31 // .............................................................................................................................................................................................................................................................................................................................*....................................... + rori x27, x3, 22 // .............................................................................................................................................................................................................................................................................................................................*....................................... + vxor.vv v21, v21, v31 // ..............................................................................................................................................................................................................................................................................................................................*...................................... + xor x30, x18, x4 // ..............................................................................................................................................................................................................................................................................................................................*...................................... + rori x18, x5, 5 // ...............................................................................................................................................................................................................................................................................................................................*..................................... + vsll.vi v31, v13, 25 // ...............................................................................................................................................................................................................................................................................................................................*..................................... + lw x5, 18*8+4(x10) // ................................................................................................................................................................................................................................................................................................................................*.................................... + vxor.vv v13, v23, v12 // .................................................................................................................................................................................................................................................................................................................................*................................... + rori x7, x7, 31 // .................................................................................................................................................................................................................................................................................................................................*................................... + xor x5, x5, x24 // ..................................................................................................................................................................................................................................................................................................................................*.................................. + sw x7, 13*8+4(x10) // ..................................................................................................................................................................................................................................................................................................................................*.................................. + xor x23, x23, x24 // ...................................................................................................................................................................................................................................................................................................................................*................................. + rori x6, x6, 30 // ....................................................................................................................................................................................................................................................................................................................................*................................ + lw x7, 1*8+4(x10) // ....................................................................................................................................................................................................................................................................................................................................*................................ + sw x26, 3*8+4(x10) // .....................................................................................................................................................................................................................................................................................................................................*............................... + vsll.vi v23, v7, 6 // .....................................................................................................................................................................................................................................................................................................................................*............................... + rori x7, x7, 31 // ......................................................................................................................................................................................................................................................................................................................................*.............................. + sw x23, 13*8+4(x10) // ......................................................................................................................................................................................................................................................................................................................................*.............................. + li x23, 45 // .......................................................................................................................................................................................................................................................................................................................................*............................. + sw x5, 18*8+4(x10) // .......................................................................................................................................................................................................................................................................................................................................*............................. + vxor.vv v12, v8, v31 // ........................................................................................................................................................................................................................................................................................................................................*............................ + li x5, 44 // ........................................................................................................................................................................................................................................................................................................................................*............................ + vsrl.vi v31, v29, 20 // .........................................................................................................................................................................................................................................................................................................................................*........................... + lw x26, 1*8+4(x10) // .........................................................................................................................................................................................................................................................................................................................................*........................... + lw x3, 1*8(x10) // ..........................................................................................................................................................................................................................................................................................................................................*.......................... + vsll.vx v8, v29, x5 // ..........................................................................................................................................................................................................................................................................................................................................*.......................... + vsrl.vi v29, v16, 19 // ...........................................................................................................................................................................................................................................................................................................................................*......................... + xor x26, x26, x4 // ...........................................................................................................................................................................................................................................................................................................................................*......................... + vxor.vv v9, v9, v26 // ............................................................................................................................................................................................................................................................................................................................................*........................ + sw x6, 13*8(x10) // ............................................................................................................................................................................................................................................................................................................................................*........................ + mv x6, x3 // .............................................................................................................................................................................................................................................................................................................................................*....................... + vxor.vv v4, v4, v26 // .............................................................................................................................................................................................................................................................................................................................................*....................... + vxor.vv v26, v31, v8 // ..............................................................................................................................................................................................................................................................................................................................................*...................... + li x5, 62 // ..............................................................................................................................................................................................................................................................................................................................................*...................... + sw x26, 1*8+4(x10) // ...............................................................................................................................................................................................................................................................................................................................................*..................... + li x26, 58 // ...............................................................................................................................................................................................................................................................................................................................................*..................... + vsll.vx v8, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................*.................... + lw x3, 6*8(x10) // ................................................................................................................................................................................................................................................................................................................................................*.................... + vsrl.vx v31, v7, x26 // .................................................................................................................................................................................................................................................................................................................................................*................... + lw x26, 18*8+4(x10) // .................................................................................................................................................................................................................................................................................................................................................*................... + vsll.vx v7, v16, x23 // ..................................................................................................................................................................................................................................................................................................................................................*.................. + xor x3, x3, x1 // ..................................................................................................................................................................................................................................................................................................................................................*.................. + sw x3, 6*8(x10) // ...................................................................................................................................................................................................................................................................................................................................................*................. + rori x23, x26, 21 // ...................................................................................................................................................................................................................................................................................................................................................*................. + sw x23, 3*8(x10) // ....................................................................................................................................................................................................................................................................................................................................................*................ + xor x20, x20, x24 // ....................................................................................................................................................................................................................................................................................................................................................*................ + vxor.vv v16, v31, v23 // .....................................................................................................................................................................................................................................................................................................................................................*............... + sw x22, 23*4(x2) // .....................................................................................................................................................................................................................................................................................................................................................*............... + rori x30, x30, 31 // ......................................................................................................................................................................................................................................................................................................................................................*.............. + vsrl.vi v23, v15, 23 // ......................................................................................................................................................................................................................................................................................................................................................*.............. + sw x30, 0*8+4(x10) // .......................................................................................................................................................................................................................................................................................................................................................*............. + vxor.vv v15, v30, v28 // .......................................................................................................................................................................................................................................................................................................................................................*............. + lw x22, 3*8(x10) // ........................................................................................................................................................................................................................................................................................................................................................*............ + rori x11, x11, 1 // ........................................................................................................................................................................................................................................................................................................................................................*............ + sw x11, 1*8+4(x10) // .........................................................................................................................................................................................................................................................................................................................................................*........... + rori x5, x25, 9 // .........................................................................................................................................................................................................................................................................................................................................................*........... + lw x24, 12*8+4(x10) // ..........................................................................................................................................................................................................................................................................................................................................................*.......... + rori x25, x17, 10 // ..........................................................................................................................................................................................................................................................................................................................................................*.......... + rori x17, x31, 10 // ...........................................................................................................................................................................................................................................................................................................................................................*......... + sw x27, 3*8+4(x10) // ...........................................................................................................................................................................................................................................................................................................................................................*......... + rori x31, x16, 14 // ............................................................................................................................................................................................................................................................................................................................................................*........ + vsrl.vi v28, v2, 2 // ............................................................................................................................................................................................................................................................................................................................................................*........ + vxor.vv v2, v0, v6 // .............................................................................................................................................................................................................................................................................................................................................................*....... + lw x30, 11*8+4(x10) // .............................................................................................................................................................................................................................................................................................................................................................*....... + mv x23, x3 // ..............................................................................................................................................................................................................................................................................................................................................................*...... + lw x3, 12*8(x10) // ..............................................................................................................................................................................................................................................................................................................................................................*...... + xor x26, x30, x4 // ...............................................................................................................................................................................................................................................................................................................................................................*..... + rori x4, x12, 1 // ...............................................................................................................................................................................................................................................................................................................................................................*..... + rori x12, x24, 10 // ................................................................................................................................................................................................................................................................................................................................................................*.... + lw x24, 0*8(x10) // ................................................................................................................................................................................................................................................................................................................................................................*.... + rori x16, x23, 10 // .................................................................................................................................................................................................................................................................................................................................................................*... + sw x26, 11*8+4(x10) // .................................................................................................................................................................................................................................................................................................................................................................*... + sw x24, 18*4(x2) // ..................................................................................................................................................................................................................................................................................................................................................................*.. + rori x11, x3, 11 // ..................................................................................................................................................................................................................................................................................................................................................................*.. + sw x16, 20*4(x2) // ...................................................................................................................................................................................................................................................................................................................................................................*. + rori x30, x15, 14 // ...................................................................................................................................................................................................................................................................................................................................................................*. + vsll.vi v30, v3, 28 // ....................................................................................................................................................................................................................................................................................................................................................................* + lw x15, 3*8+4(x10) // ....................................................................................................................................................................................................................................................................................................................................................................* + + // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------ + // li x27, 46 // ...........*......................................................................................................................................................................................................................................................................................................................................................... + // lw x1, 7*8+4(x10) // ...........*......................................................................................................................................................................................................................................................................................................................................................... + // rori x24, x9, 25 // ............*........................................................................................................................................................................................................................................................................................................................................................ + // lw x9, 13*8+4(x10) // *.................................................................................................................................................................................................................................................................................................................................................................... + // lw x26, 9*8+4(x10) // ............*........................................................................................................................................................................................................................................................................................................................................................ + // li x16, 61 // .............*....................................................................................................................................................................................................................................................................................................................................................... + // vxor.vv v0, v28, v8 // ...*................................................................................................................................................................................................................................................................................................................................................................. + // rori x3, x9, 19 // ..*.................................................................................................................................................................................................................................................................................................................................................................. + // sw x3, 18*8(x10) // ...*................................................................................................................................................................................................................................................................................................................................................................. + // rori x26, x26, 22 // ..............*...................................................................................................................................................................................................................................................................................................................................................... + // sw x25, 21*4(x2) // ..............*...................................................................................................................................................................................................................................................................................................................................................... + // vsrl.vx v6, v10, x16 // ...............*..................................................................................................................................................................................................................................................................................................................................................... + // lw x25, 9*8(x10) // ...............*..................................................................................................................................................................................................................................................................................................................................................... + // vsll.vi v31, v10, 3 // ....*................................................................................................................................................................................................................................................................................................................................................................ + // li x23, 36 // ..................*.................................................................................................................................................................................................................................................................................................................................................. + // sw x26, 12*8+4(x10) // ................*.................................................................................................................................................................................................................................................................................................................................................... + // li x9, 43 // .....*............................................................................................................................................................................................................................................................................................................................................................... + // lw x26, 22*8+4(x10) // .................*................................................................................................................................................................................................................................................................................................................................................... + // rori x3, x25, 22 // ..................*.................................................................................................................................................................................................................................................................................................................................................. + // vsrl.vx v28, v3, x23 // ..........................*.......................................................................................................................................................................................................................................................................................................................................... + // sw x4, 1*8(x10) // .*................................................................................................................................................................................................................................................................................................................................................................... + // vsll.vi v3, v18, 21 // *.................................................................................................................................................................................................................................................................................................................................................................... + // sw x3, 12*8(x10) // ...................*................................................................................................................................................................................................................................................................................................................................................. + // rori x15, x15, 18 // .......*............................................................................................................................................................................................................................................................................................................................................................. + // lw x3, 22*8(x10) // ......*.............................................................................................................................................................................................................................................................................................................................................................. + // vxor.vv v8, v29, v7 // ........*............................................................................................................................................................................................................................................................................................................................................................ + // vxor.vv v10, v28, v30 // ..............................*...................................................................................................................................................................................................................................................................................................................................... + // lw x23, 13*8(x10) // ..........*.......................................................................................................................................................................................................................................................................................................................................................... + // rori x16, x22, 18 // ................*.................................................................................................................................................................................................................................................................................................................................................... + // vxor.vv v23, v23, v27 // .......*............................................................................................................................................................................................................................................................................................................................................................. + // rori x23, x23, 20 // ........................*............................................................................................................................................................................................................................................................................................................................................ + // vsrl.vx v28, v18, x9 // .............*....................................................................................................................................................................................................................................................................................................................................................... + // vxor.vv v7, v6, v31 // .................................*................................................................................................................................................................................................................................................................................................................................... + // rori x9, x3, 2 // .................*................................................................................................................................................................................................................................................................................................................................................... + // sw x23, 18*8+4(x10) // .........................*........................................................................................................................................................................................................................................................................................................................................... + // vsll.vi v27, v11, 10 // ..........*.......................................................................................................................................................................................................................................................................................................................................................... + // li x23, 49 // ...................*................................................................................................................................................................................................................................................................................................................................................. + // rori x22, x26, 1 // ...........................*......................................................................................................................................................................................................................................................................................................................................... + // vxor.vv v3, v28, v3 // ...........................*......................................................................................................................................................................................................................................................................................................................................... + // sw x22, 9*8(x10) // ..............................*...................................................................................................................................................................................................................................................................................................................................... + // vsll.vi v29, v17, 15 // ....................*................................................................................................................................................................................................................................................................................................................................................ + // sw x9, 9*8+4(x10) // ....................*................................................................................................................................................................................................................................................................................................................................................ + // rori x29, x29, 13 // .....................*............................................................................................................................................................................................................................................................................................................................................... + // vsrl.vx v6, v17, x23 // ......................*.............................................................................................................................................................................................................................................................................................................................................. + // li x23, 54 // .......................*............................................................................................................................................................................................................................................................................................................................................. + // lw x4, 20*8(x10) // ......................*.............................................................................................................................................................................................................................................................................................................................................. + // rori x3, x28, 12 // .*................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, 20*8+4(x10) // .......................*............................................................................................................................................................................................................................................................................................................................................. + // rori x26, x1, 29 // ...................................*................................................................................................................................................................................................................................................................................................................................. + // sw x3, 22*8(x10) // ..*.................................................................................................................................................................................................................................................................................................................................................................. + // sw x29, 22*8+4(x10) // ........................*............................................................................................................................................................................................................................................................................................................................................ + // rori x29, x4, 23 // ............................*........................................................................................................................................................................................................................................................................................................................................ + // vsrl.vx v31, v11, x23 // .............................*....................................................................................................................................................................................................................................................................................................................................... + // rori x28, x28, 23 // .............................*....................................................................................................................................................................................................................................................................................................................................... + // rori x21, x21, 4 // .........*........................................................................................................................................................................................................................................................................................................................................................... + // lw x3, 15*8(x10) // ....*................................................................................................................................................................................................................................................................................................................................................................ + // rori x20, x20, 4 // .....*............................................................................................................................................................................................................................................................................................................................................................... + // lw x25, 15*8+4(x10) // .........*........................................................................................................................................................................................................................................................................................................................................................... + // vxor.vv v18, v6, v29 // ............................*........................................................................................................................................................................................................................................................................................................................................ + // sw x21, 20*8(x10) // ..........................*.......................................................................................................................................................................................................................................................................................................................................... + // vxor.vv v17, v31, v27 // ..................................*.................................................................................................................................................................................................................................................................................................................................. + // li x4, 44 // .........................*........................................................................................................................................................................................................................................................................................................................................... + // sw x20, 20*8+4(x10) // ........*............................................................................................................................................................................................................................................................................................................................................................ + // rori x20, x3, 12 // ......*.............................................................................................................................................................................................................................................................................................................................................................. + // vsll.vi v28, v9, 20 // .....................*............................................................................................................................................................................................................................................................................................................................................... + // rori x21, x25, 11 // .................................*................................................................................................................................................................................................................................................................................................................................... + // rori x1, x14, 19 // ...............................*..................................................................................................................................................................................................................................................................................................................................... + // vsrl.vx v29, v9, x4 // ...............................*..................................................................................................................................................................................................................................................................................................................................... + // li x4, 61 // ................................*.................................................................................................................................................................................................................................................................................................................................... + // rori x14, x13, 18 // ..................................*.................................................................................................................................................................................................................................................................................................................................. + // vsrl.vi v6, v22, 3 // ................................*.................................................................................................................................................................................................................................................................................................................................... + // lw x3, 24*8(x10) // ......................................................................*.............................................................................................................................................................................................................................................................................................. + // lw x25, 24*8+4(x10) // ..................................................................................*.................................................................................................................................................................................................................................................................................. + // vsll.vx v31, v22, x4 // ..............................................*...................................................................................................................................................................................................................................................................................................................... + // vxor.vv v11, v29, v28 // ..........................................*.......................................................................................................................................................................................................................................................................................................................... + // sw x14, 15*8(x10) // ...............................................*..................................................................................................................................................................................................................................................................................................................... + // sw x1, 15*8+4(x10) // ..............................................*...................................................................................................................................................................................................................................................................................................................... + // rori x14, x3, 25 // .........................................................................*........................................................................................................................................................................................................................................................................................... + // sw x24, 24*8+4(x10) // ...........................................*......................................................................................................................................................................................................................................................................................................................... + // rori x13, x25, 25 // .....................................................................................*............................................................................................................................................................................................................................................................................... + // vxor.vv v9, v6, v31 // ....................................................*................................................................................................................................................................................................................................................................................................................ + // lw x3, 11*8(x10) // .........................................................................................................*........................................................................................................................................................................................................................................................... + // rori x9, x8, 24 // .....................................*............................................................................................................................................................................................................................................................................................................................... + // lw x25, 11*8+4(x10) // .................................................................................................*................................................................................................................................................................................................................................................................... + // li x1, 39 // ...........................................................*......................................................................................................................................................................................................................................................................................................... + // sw x9, 24*8(x10) // ..........................................*.......................................................................................................................................................................................................................................................................................................................... + // vsrl.vi v27, v14, 25 // ..................................................................*.................................................................................................................................................................................................................................................................................................. + // rori x8, x25, 27 // .................................................................................................................*................................................................................................................................................................................................................................................... + // vsll.vx v6, v14, x1 // ....................................................................*................................................................................................................................................................................................................................................................................................ + // lw x1, 7*8(x10) // ......................................................................................................*.............................................................................................................................................................................................................................................................. + // rori x9, x3, 27 // ...........................................................................................................*......................................................................................................................................................................................................................................................... + // vsrl.vx v31, v20, x27 // ....................................*................................................................................................................................................................................................................................................................................................................................ + // vsll.vi v29, v20, 18 // .................................................................*................................................................................................................................................................................................................................................................................................... + // sw x26, 11*8+4(x10) // .....................................*............................................................................................................................................................................................................................................................................................................................... + // rori x3, x1, 29 // .............................................................................................................*....................................................................................................................................................................................................................................................... + // lw x1, 19*8(x10) // ....................................................*................................................................................................................................................................................................................................................................................................................ + // vxor.vv v22, v27, v6 // ........................................................................*............................................................................................................................................................................................................................................................................................ + // lw x27, 19*8+4(x10) // .........................................................................................*........................................................................................................................................................................................................................................................................... + // sw x3, 11*8(x10) // ...............................................................................................................*..................................................................................................................................................................................................................................................... + // rori x3, x1, 28 // ......................................................*.............................................................................................................................................................................................................................................................................................................. + // vxor.vv v14, v31, v29 // .............................................................................*....................................................................................................................................................................................................................................................................................... + // li x1, 37 // .............................................................*....................................................................................................................................................................................................................................................................................................... + // rori x27, x27, 28 // ...........................................................................................*......................................................................................................................................................................................................................................................................... + // lw x24, 13*8(x10) // .........................................*........................................................................................................................................................................................................................................................................................................................... + // vsll.vi v27, v4, 27 // ..........................................................*.......................................................................................................................................................................................................................................................................................................... + // lw x23, 13*8+4(x10) // ....................................*................................................................................................................................................................................................................................................................................................................................ + // sw x3, 19*8(x10) // ............................................................*........................................................................................................................................................................................................................................................................................................ + // vsrl.vx v6, v4, x1 // ...............................................................*..................................................................................................................................................................................................................................................................................................... + // li x1, 50 // ..........................................................*.......................................................................................................................................................................................................................................................................................................... + // sw x27, 19*8+4(x10) // .............................................................................................*....................................................................................................................................................................................................................................................................... + // lw x26, 12*8(x10) // ......................................*.............................................................................................................................................................................................................................................................................................................................. + // vsll.vi v31, v24, 14 // ...........................................................*......................................................................................................................................................................................................................................................................................................... + // lw x4, 12*8+4(x10) // ...................................*................................................................................................................................................................................................................................................................................................................................. + // andn x3, x5, x24 // ...........................................*......................................................................................................................................................................................................................................................................................................................... + // vsrl.vx v29, v24, x1 // ............................................................*........................................................................................................................................................................................................................................................................................................ + // andn x1, x17, x23 // ......................................*.............................................................................................................................................................................................................................................................................................................................. + // xor x3, x3, x26 // ............................................*........................................................................................................................................................................................................................................................................................................................ + // lw x22, 9*8(x10) // .......................................*............................................................................................................................................................................................................................................................................................................................. + // xor x1, x1, x4 // .......................................*............................................................................................................................................................................................................................................................................................................................. + // lw x25, 9*8+4(x10) // .....................................................*............................................................................................................................................................................................................................................................................................................... + // vxor.vv v20, v6, v27 // ...................................................................*................................................................................................................................................................................................................................................................................................. + // sw x3, 6*8(x10) // .............................................*....................................................................................................................................................................................................................................................................................................................... + // vxor.vv v4, v29, v31 // ................................................................*.................................................................................................................................................................................................................................................................................................... + // li x27, 62 // ..................................................................*.................................................................................................................................................................................................................................................................................................. + // sw x1, 6*8+4(x10) // ........................................*............................................................................................................................................................................................................................................................................................................................ + // andn x3, x22, x5 // .............................................*....................................................................................................................................................................................................................................................................................................................... + // andn x1, x25, x17 // .......................................................*............................................................................................................................................................................................................................................................................................................. + // vsll.vi v6, v21, 2 // ......................................................................*.............................................................................................................................................................................................................................................................................................. + // xor x3, x3, x24 // ................................................*.................................................................................................................................................................................................................................................................................................................... + // xor x1, x1, x23 // ........................................................*............................................................................................................................................................................................................................................................................................................ + // sw x3, 7*8(x10) // .................................................*................................................................................................................................................................................................................................................................................................................... + // vsrl.vx v31, v21, x27 // ...............................................................................*..................................................................................................................................................................................................................................................................................... + // li x27, 36 // ............................................................................*........................................................................................................................................................................................................................................................................................ + // sw x1, 7*8+4(x10) // ................................................................................*.................................................................................................................................................................................................................................................................................... + // andn x3, x16, x22 // .................................................*................................................................................................................................................................................................................................................................................................................... + // vsrl.vi v21, v5, 28 // ...........................................................................*......................................................................................................................................................................................................................................................................................... + // andn x1, x15, x25 // .......................................................*............................................................................................................................................................................................................................................................................................................. + // vsll.vx v29, v5, x27 // ..............................................................................*...................................................................................................................................................................................................................................................................................... + // xor x5, x3, x5 // ..................................................*.................................................................................................................................................................................................................................................................................................................. + // xor x17, x1, x17 // ................................................................................*.................................................................................................................................................................................................................................................................................... + // vand.vv v27, v7, v8 // ..............................................................*...................................................................................................................................................................................................................................................................................................... + // andn x3, x26, x16 // ........................................*............................................................................................................................................................................................................................................................................................................................ + // xor x27, x3, x22 // .........................................*........................................................................................................................................................................................................................................................................................................................... + // andn x22, x4, x15 // ...............................................*..................................................................................................................................................................................................................................................................................................................... + // vxor.vv v24, v31, v6 // ...................................................................................*................................................................................................................................................................................................................................................................................. + // xor x25, x22, x25 // ................................................................*.................................................................................................................................................................................................................................................................................................... + // sw x25, 9*8+4(x10) // ..............................................................................*...................................................................................................................................................................................................................................................................................... + // andn x25, x23, x4 // ...................................................*................................................................................................................................................................................................................................................................................................................. + // andn x3, x24, x26 // ..................................................*.................................................................................................................................................................................................................................................................................................................. + // vnot.v v30, v9 // .........................................................*........................................................................................................................................................................................................................................................................................................... + // lw x23, 19*8(x10) // .................................................................*................................................................................................................................................................................................................................................................................................... + // vor.vv v5, v11, v7 // .........................................................................*........................................................................................................................................................................................................................................................................................... + // lw x22, 19*8+4(x10) // ............................................*........................................................................................................................................................................................................................................................................................................................ + // vor.vv v28, v9, v10 // .....................................................................................*............................................................................................................................................................................................................................................................................... + // xor x16, x3, x16 // ...................................................*................................................................................................................................................................................................................................................................................................................. + // andn x3, x7, x29 // ..............................................................*...................................................................................................................................................................................................................................................................................................... + // xor x3, x3, x23 // ...................................................................*................................................................................................................................................................................................................................................................................................. + // lw x4, 18*8+4(x10) // ......................................................*.............................................................................................................................................................................................................................................................................................................. + // sw x3, 13*8(x10) // ....................................................................*................................................................................................................................................................................................................................................................................................ + // vxor.vv v5, v10, v5 // ..........................................................................................*.......................................................................................................................................................................................................................................................................... + // andn x3, x29, x23 // ..........................................................................*.......................................................................................................................................................................................................................................................................................... + // vor.vv v30, v30, v8 // .............................................................*....................................................................................................................................................................................................................................................................................................... + // sw x27, 9*8(x10) // ................................................*.................................................................................................................................................................................................................................................................................................................... + // andn x1, x28, x22 // .....................................................*............................................................................................................................................................................................................................................................................................................... + // vnot.v v31, v13 // ............................................................................*........................................................................................................................................................................................................................................................................................ + // xor x24, x1, x4 // ........................................................*............................................................................................................................................................................................................................................................................................................ + // andn x26, x6, x28 // .......................................................................*............................................................................................................................................................................................................................................................................................. + // sw x24, 12*8+4(x10) // .........................................................*........................................................................................................................................................................................................................................................................................................... + // xor x15, x25, x15 // .......................................................................*............................................................................................................................................................................................................................................................................................. + // vxor.vv v7, v7, v30 // ..........................................................................*.......................................................................................................................................................................................................................................................................................... + // lw x25, 18*8(x10) // ...........................................................................*......................................................................................................................................................................................................................................................................................... + // vxor.vv v8, v8, v28 // .........................................................................................*........................................................................................................................................................................................................................................................................... + // xor x1, x26, x22 // ......................................................................................*.............................................................................................................................................................................................................................................................................. + // lw x27, 11*8(x10) // ........................................................................................*............................................................................................................................................................................................................................................................................ + // vxor.vv v6, v11, v27 // .......................................................................................*............................................................................................................................................................................................................................................................................. + // sw x1, 13*8+4(x10) // .......................................................................................*............................................................................................................................................................................................................................................................................. + // vand.vv v30, v10, v11 // ....................................................................................*................................................................................................................................................................................................................................................................................ + // lw x24, 11*8+4(x10) // .................................................................................*................................................................................................................................................................................................................................................................................... + // xor x3, x3, x25 // .............................................................................*....................................................................................................................................................................................................................................................................................... + // vxor.vv v21, v21, v29 // ..................................................................................*.................................................................................................................................................................................................................................................................................. + // vand.vv v10, v31, v14 // ..................................................................................................*.................................................................................................................................................................................................................................................................. + // sw x3, 12*8(x10) // ...............................................................................*..................................................................................................................................................................................................................................................................................... + // vnot.v v27, v13 // .............................................................................................*....................................................................................................................................................................................................................................................................... + // lw x26, 20*8(x10) // .....................................................................................................................*............................................................................................................................................................................................................................................... + // vor.vv v31, v16, v12 // ...........................................................................................*......................................................................................................................................................................................................................................................................... + // vand.vv v11, v12, v13 // ............................................................................................*........................................................................................................................................................................................................................................................................ + // andn x1, x4, x24 // ......................................................................................*.............................................................................................................................................................................................................................................................................. + // andn x3, x23, x25 // .................................................................................*................................................................................................................................................................................................................................................................................... + // vand.vv v29, v21, v17 // ......................................................................................................*.............................................................................................................................................................................................................................................................. + // xor x23, x3, x27 // ........................................................................................................*............................................................................................................................................................................................................................................................ + // andn x4, x22, x4 // ...................................................................................*................................................................................................................................................................................................................................................................................. + // andn x22, x24, x6 // ............................................................................................*........................................................................................................................................................................................................................................................................ + // xor x6, x1, x6 // ...................................................................................................*................................................................................................................................................................................................................................................................. + // vxor.vv v9, v9, v30 // ........................................................................................*............................................................................................................................................................................................................................................................................ + // andn x3, x27, x7 // ........................................................................................................*............................................................................................................................................................................................................................................................ + // xor x29, x3, x29 // .........................................................................................................*........................................................................................................................................................................................................................................................... + // lw x1, 15*8(x10) // ............................................................................................................*........................................................................................................................................................................................................................................................ + // xor x28, x22, x28 // ...............................................................................................*..................................................................................................................................................................................................................................................................... + // lw x22, 15*8+4(x10) // ..............................................................................................*...................................................................................................................................................................................................................................................................... + // xor x24, x4, x24 // ....................................................................................*................................................................................................................................................................................................................................................................................ + // andn x3, x31, x1 // ..................................................................................................................*.................................................................................................................................................................................................................................................. + // lw x4, 24*8(x10) // ......................................................................................................................*.............................................................................................................................................................................................................................................. + // xor x3, x3, x26 // .......................................................................................................................*............................................................................................................................................................................................................................................. + // sw x3, 19*8(x10) // ........................................................................................................................*............................................................................................................................................................................................................................................ + // andn x3, x1, x26 // ..............................................................................................................................*...................................................................................................................................................................................................................................... + // xor x3, x3, x4 // ...............................................................................................................................*..................................................................................................................................................................................................................................... + // vxor.vv v11, v16, v11 // ......................................................................................................................*.............................................................................................................................................................................................................................................. + // sw x3, 18*8(x10) // ................................................................................................................................*.................................................................................................................................................................................................................................... + // andn x3, x9, x31 // ...............................................................................................................*..................................................................................................................................................................................................................................................... + // sw x24, 11*8+4(x10) // ..........................................................................................*.......................................................................................................................................................................................................................................................................... + // vxor.vv v12, v12, v10 // ..........................................................................................................*.......................................................................................................................................................................................................................................................... + // lw x24, 20*8+4(x10) // ..................................................................................................*.................................................................................................................................................................................................................................................................. + // xor x1, x3, x1 // .................................................................................................................*................................................................................................................................................................................................................................................... + // andn x3, x25, x27 // ...........................................................................................................*......................................................................................................................................................................................................................................................... + // lw x27, 24*8+4(x10) // ..............................................................................................................*...................................................................................................................................................................................................................................................... + // andn x25, x8, x30 // ...................................................................................................................*................................................................................................................................................................................................................................................. + // xor x7, x3, x7 // ............................................................................................................*........................................................................................................................................................................................................................................................ + // andn x3, x4, x9 // ........................................................................................................................*............................................................................................................................................................................................................................................ + // vnot.v v30, v18 // .......................................................................................................*............................................................................................................................................................................................................................................................. + // vand.vv v16, v15, v16 // ...............................................................................................*..................................................................................................................................................................................................................................................................... + // xor x25, x25, x22 // ....................................................................................................................*................................................................................................................................................................................................................................................ + // xor x31, x3, x31 // .........................................................................................................................*........................................................................................................................................................................................................................................... + // sw x23, 11*8(x10) // ..........................................................................................................*.......................................................................................................................................................................................................................................................... + // andn x23, x30, x22 // ................................................................................................*.................................................................................................................................................................................................................................................................... + // vor.vv v13, v14, v15 // ..............................................................................................*...................................................................................................................................................................................................................................................................... + // vand.vv v10, v19, v20 // .................................................................................................*................................................................................................................................................................................................................................................................... + // sw x1, 15*8(x10) // ...................................................................................................................*................................................................................................................................................................................................................................................. + // andn x1, x24, x27 // ....................................................................................................................*................................................................................................................................................................................................................................................ + // vxor.vv v14, v14, v16 // .....................................................................................................*............................................................................................................................................................................................................................................................... + // andn x22, x22, x24 // .....................................................................................................*............................................................................................................................................................................................................................................................... + // vnot.v v28, v18 // ....................................................................................................*................................................................................................................................................................................................................................................................ + // vxor.vv v13, v27, v13 // ...................................................................................................*................................................................................................................................................................................................................................................................. + // xor x23, x23, x24 // ....................................................................................................*................................................................................................................................................................................................................................................................ + // vor.vv v16, v17, v18 // ..............................................................................................................*...................................................................................................................................................................................................................................................... + // xor x22, x22, x27 // ................................................................................................................*.................................................................................................................................................................................................................................................... + // vor.vv v18, v30, v19 // .............................................................................................................................................*....................................................................................................................................................................................................................... + // sw x22, 18*8+4(x10) // ..................................................................................................................*.................................................................................................................................................................................................................................................. + // sw x23, 19*8+4(x10) // .......................................................................................................*............................................................................................................................................................................................................................................................. + // andn x27, x27, x8 // ......................................................................................................................................*.............................................................................................................................................................................................................................. + // xor x30, x27, x30 // .......................................................................................................................................*............................................................................................................................................................................................................................. + // lw x22, 0*8(x10) // .............................................................................................................*....................................................................................................................................................................................................................................................... + // andn x3, x26, x4 // .........................................................................................................................*........................................................................................................................................................................................................................................... + // lw x24, 0*8+4(x10) // .................................................................................................................................*................................................................................................................................................................................................................................... + // vxor.vv v17, v17, v18 // .................................................................................................................................................*................................................................................................................................................................................................................... + // xor x8, x8, x1 // .....................................................................................................................*............................................................................................................................................................................................................................................... + // vxor.vv v18, v28, v10 // ............................................................................................................................*........................................................................................................................................................................................................................................ + // lw x26, 1*8(x10) // ..........................................................................................................................*.......................................................................................................................................................................................................................................... + // xor x9, x9, x3 // ...........................................................................................................................*......................................................................................................................................................................................................................................... + // lw x23, 1*8+4(x10) // ........................................................................................................................................*............................................................................................................................................................................................................................ + // andn x3, x19, x26 // ............................................................................................................................*........................................................................................................................................................................................................................................ + // lw x1, 22*8(x10) // ...............................................................................................................................*..................................................................................................................................................................................................................................... + // andn x27, x18, x23 // ..............................................................................................................................................*...................................................................................................................................................................................................................... + // lw x4, 22*8+4(x10) // ................................................................................................................*.................................................................................................................................................................................................................................................... + // xor x3, x3, x22 // .............................................................................................................................*....................................................................................................................................................................................................................................... + // vor.vv v27, v24, v0 // .....................................................................................................................................*............................................................................................................................................................................................................................... + // sw x3, 24*8(x10) // ..............................................................................................................................*...................................................................................................................................................................................................................................... + // andn x3, x1, x19 // ..................................................................................................................................*.................................................................................................................................................................................................................................. + // sw x25, 15*8+4(x10) // .......................................................................................................................*............................................................................................................................................................................................................................................. + // xor x27, x27, x24 // ...................................................................................................................................................*................................................................................................................................................................................................................. + // andn x25, x20, x4 // ......................................................................................................................................................*.............................................................................................................................................................................................................. + // sw x27, 24*8+4(x10) // ....................................................................................................................................................*................................................................................................................................................................................................................ + // andn x27, x4, x18 // ........................................................................................................................................................*............................................................................................................................................................................................................ + // xor x18, x25, x18 // ...........................................................................................................................................................*......................................................................................................................................................................................................... + // andn x25, x24, x20 // ............................................................................................................................................*........................................................................................................................................................................................................................ + // xor x3, x3, x26 // ...................................................................................................................................*................................................................................................................................................................................................................................. + // xor x27, x27, x23 // .........................................................................................................................................................*........................................................................................................................................................................................................... + // sw x3, 20*8(x10) // ....................................................................................................................................*................................................................................................................................................................................................................................ + // sw x27, 20*8+4(x10) // ..........................................................................................................................................................*.......................................................................................................................................................................................................... + // vxor.vv v10, v15, v31 // .............................................................................................................................*....................................................................................................................................................................................................................................... + // andn x3, x21, x1 // .........................................................................................................................................*........................................................................................................................................................................................................................... + // vor.vv v31, v22, v23 // ..........................................................................................................................*.......................................................................................................................................................................................................................................... + // vand.vv v28, v0, v1 // .................................................................................................................................*................................................................................................................................................................................................................................... + // xor x19, x3, x19 // ..........................................................................................................................................*.......................................................................................................................................................................................................................... + // andn x3, x22, x21 // .....................................................................................................................................*............................................................................................................................................................................................................................... + // vxor.vv v16, v21, v16 // ...........................................................................................................................*......................................................................................................................................................................................................................................... + // lw x27, 17*4(x2) // ............................................................................................................................................................*........................................................................................................................................................................................................ + // xor x1, x3, x1 // ......................................................................................................................................*.............................................................................................................................................................................................................................. + // andn x3, x26, x22 // ...........................................................................................................................................*......................................................................................................................................................................................................................... + // vor.vv v15, v20, v21 // ...................................................................................................................................*................................................................................................................................................................................................................................. + // xor x25, x25, x4 // .............................................................................................................................................*....................................................................................................................................................................................................................... + // lw x4, 0(x27) // ...............................................................................................................................................................*..................................................................................................................................................................................................... + // sw x1, 22*8(x10) // .......................................................................................................................................*............................................................................................................................................................................................................................. + // vor.vv v30, v26, v2 // ........................................................................................................................................................*............................................................................................................................................................................................................ + // sw x25, 22*8+4(x10) // ..............................................................................................................................................*...................................................................................................................................................................................................................... + // xor x21, x21, x3 // ............................................................................................................................................*........................................................................................................................................................................................................................ + // lw x22, 20*4(x2) // .....................................................................................................................................................*............................................................................................................................................................................................................... + // vnot.v v21, v1 // ..................................................................................................................................*.................................................................................................................................................................................................................................. + // lw x26, 19*4(x2) // ................................................................................................................................................*.................................................................................................................................................................................................................... + // vxor.vv v19, v19, v15 // ....................................................................................................................................................*................................................................................................................................................................................................................ + // lw x25, 4(x27) // .................................................................................................................................................................*................................................................................................................................................................................................... + // addi x1, x27, 8 // ..............................................................................................................................................................*...................................................................................................................................................................................................... + // andn x3, x12, x22 // .......................................................................................................................................................*............................................................................................................................................................................................................. + // vxor.vv v15, v20, v29 // ..........................................................................................................................................*.......................................................................................................................................................................................................................... + // vand.vv v20, v21, v22 // ...........................................................................................................................................*......................................................................................................................................................................................................................... + // andn x27, x23, x24 // ..........................................................................................................................................................*.......................................................................................................................................................................................................... + // lw x24, 21*4(x2) // ..............................................................................................................................................................*...................................................................................................................................................................................................... + // vand.vv v21, v23, v24 // ........................................................................................................................................*............................................................................................................................................................................................................................ + // lw x23, 18*4(x2) // ..................................................................................................................................................*.................................................................................................................................................................................................................. + // vnot.v v29, v1 // ................................................................................................................................*.................................................................................................................................................................................................................................... + // sw x1, 17*4(x2) // ................................................................................................................................................................*.................................................................................................................................................................................................... + // andn x1, x11, x24 // ..................................................................................................................................................................*.................................................................................................................................................................................................. + // xor x3, x3, x23 // ...............................................................................................................................................................*..................................................................................................................................................................................................... + // vxor.vv v20, v0, v20 // .....................................................................................................................................................*............................................................................................................................................................................................................... + // xor x1, x1, x26 // ...................................................................................................................................................................*................................................................................................................................................................................................. + // vxor.vv v24, v24, v28 // .........................................................................................................................................*........................................................................................................................................................................................................................... + // vxor.vv v22, v22, v21 // .........................................................................................................................................................*........................................................................................................................................................................................................... + // xor x1, x1, x25 // ....................................................................................................................................................................*................................................................................................................................................................................................ + // xor x3, x3, x4 // ..................................................................................................................................................................*.................................................................................................................................................................................................. + // vxor.vv v21, v29, v31 // ....................................................................................................................................*................................................................................................................................................................................................................................ + // xor x20, x20, x27 // .............................................................................................................................................................*....................................................................................................................................................................................................... + // lw x4, 3*8(x10) // ......................................................................................................................................................................*.............................................................................................................................................................................................. + // vxor.vv v23, v23, v27 // ....................................................................................................................................................................*................................................................................................................................................................................................ + // lw x25, 3*8+4(x10) // .......................................................................................................................................................................*............................................................................................................................................................................................. + // vxor.vv v0, v25, v30 // ............................................................................................................................................................*........................................................................................................................................................................................................ + // sw x3, 0*8(x10) // ...................................................................................................................................................................*................................................................................................................................................................................................. + // vnot.v v29, v2 // .................................................................................................................................................................*................................................................................................................................................................................................... + // sw x1, 0*8+4(x10) // .....................................................................................................................................................................*............................................................................................................................................................................................... + // vor.vv v1, v4, v25 // ................................................................................................................................................*.................................................................................................................................................................................................................... + // andn x3, x4, x12 // ........................................................................................................................................................................*............................................................................................................................................................................................ + // andn x1, x25, x11 // .........................................................................................................................................................................*........................................................................................................................................................................................... + // xor x3, x3, x22 // .........................................................................................................................................................................*........................................................................................................................................................................................... + // xor x1, x1, x24 // ..........................................................................................................................................................................*.......................................................................................................................................................................................... + // sw x3, 1*8(x10) // ..........................................................................................................................................................................*.......................................................................................................................................................................................... + // vand.vv v27, v3, v4 // ......................................................................................................................................................*.............................................................................................................................................................................................................. + // sw x1, 1*8+4(x10) // ...........................................................................................................................................................................*......................................................................................................................................................................................... + // vand.vv v25, v25, v26 // ..................................................................................................................................................*.................................................................................................................................................................................................................. + // lw x27, 28*4(x2) // ...........................................................................................................................................................*......................................................................................................................................................................................................... + // andn x3, x23, x14 // ............................................................................................................................................................................*........................................................................................................................................................................................ + // vor.vv v31, v29, v3 // .....................................................................................................................................................................*............................................................................................................................................................................................... + // andn x1, x26, x13 // ...........................................................................................................................................................................*......................................................................................................................................................................................... + // vle64.v v29, (x27) // .............................................................................................................................................................*....................................................................................................................................................................................................... + // xor x3, x3, x4 // .............................................................................................................................................................................*....................................................................................................................................................................................... + // xor x1, x1, x25 // ............................................................................................................................................................................*........................................................................................................................................................................................ + // sw x3, 3*8(x10) // ..............................................................................................................................................................................*...................................................................................................................................................................................... + // vxor.vv v2, v2, v27 // ......................................................................................................................................................................*.............................................................................................................................................................................................. + // sw x1, 3*8+4(x10) // ...............................................................................................................................................................................*..................................................................................................................................................................................... + // andn x3, x14, x4 // ..............................................................................................................................................................................*...................................................................................................................................................................................... + // addi x27, x27, 16 // .............................................................................................................................................................................*....................................................................................................................................................................................... + // andn x1, x13, x25 // ...............................................................................................................................................................................*..................................................................................................................................................................................... + // vxor.vv v3, v3, v1 // .......................................................................................................................................................................*............................................................................................................................................................................................. + // xor x12, x3, x12 // ................................................................................................................................................................................*.................................................................................................................................................................................... + // sw x27, 28*4(x2) // ..................................................................................................................................................................................*.................................................................................................................................................................................. + // xor x11, x1, x11 // .................................................................................................................................................................................*................................................................................................................................................................................... + // vxor.vv v1, v26, v31 // ................................................................................................................................................................................*.................................................................................................................................................................................... + // andn x3, x22, x23 // ..................................................................................................................................................................................*.................................................................................................................................................................................. + // andn x1, x24, x26 // ...................................................................................................................................................................................*................................................................................................................................................................................. + // vxor.vv v4, v4, v25 // .......................................................................................................................................................*............................................................................................................................................................................................................. + // xor x14, x3, x14 // ...................................................................................................................................................................................*................................................................................................................................................................................. + // xor x13, x1, x13 // ....................................................................................................................................................................................*................................................................................................................................................................................ + // vxor.vv v0, v0, v29 // ................................................................................................................................................................*.................................................................................................................................................................................................... + // lw x4, 16*4(x2) // .................................................................................................................................................*................................................................................................................................................................................................................... + // lw x3, 0*8(x10) // .....................................................................................................................................................................................*............................................................................................................................................................................... + // xor x1, x17, x20 // .....................................................................................................................................................................................*............................................................................................................................................................................... + // lw x23, 15*8(x10) // ......................................................................................................................................................................................*.............................................................................................................................................................................. + // xor x26, x16, x7 // ......................................................................................................................................................................................*.............................................................................................................................................................................. + // xor x24, x26, x3 // .......................................................................................................................................................................................*............................................................................................................................................................................. + // lw x3, 20*8(x10) // .......................................................................................................................................................................................*............................................................................................................................................................................. + // xor x27, x24, x23 // ..........................................................................................................................................................................................*.......................................................................................................................................................................... + // lw x23, 3*8+4(x10) // ....................................................................................................................................................................................*................................................................................................................................................................................ + // xor x24, x27, x3 // ............................................................................................................................................................................................*........................................................................................................................................................................ + // lw x26, 13*8+4(x10) // ...........................................................................................................................................................................................*......................................................................................................................................................................... + // vxor.vv v30, v1, v6 // .........................................................................................................................................................................................*........................................................................................................................................................................... + // xor x25, x1, x23 // ...........................................................................................................................................................................................*......................................................................................................................................................................... + // xor x1, x25, x26 // .............................................................................................................................................................................................*....................................................................................................................................................................... + // lw x27, 18*8+4(x10) // ........................................................................................................................................................................................*............................................................................................................................................................................ + // xor x26, x5, x21 // ........................................................................................................................................................................................*............................................................................................................................................................................ + // vxor.vv v31, v3, v8 // .................................................................................................................................................................................*................................................................................................................................................................................... + // lw x3, 3*8(x10) // ............................................................................................................................................................................................*........................................................................................................................................................................ + // xor x1, x1, x27 // ...............................................................................................................................................................................................*..................................................................................................................................................................... + // vxor.vv v27, v30, v11 // .............................................................................................................................................................................................*....................................................................................................................................................................... + // lw x25, 13*8(x10) // .........................................................................................................................................................................................*........................................................................................................................................................................... + // sw x4, 16*4(x2) // ...................................................................................................................................................*................................................................................................................................................................................................................. + // xor x22, x24, x1 // ................................................................................................................................................................................................*.................................................................................................................................................................... + // xor x23, x26, x3 // ..............................................................................................................................................................................................*...................................................................................................................................................................... + // vxor.vv v29, v31, v13 // ..............................................................................................................................................................................................*...................................................................................................................................................................... + // lw x26, 9*8+4(x10) // ...............................................................................................................................................................................................*..................................................................................................................................................................... + // xor x4, x13, x28 // ..........................................................................................................................................................................................*.......................................................................................................................................................................... + // sw x1, 25*4(x2) // .....................................................................................................................................................................................................*............................................................................................................................................................... + // vxor.vv v25, v27, v16 // .................................................................................................................................................................................................*................................................................................................................................................................... + // vxor.vv v31, v4, v9 // ........................................................................................................................................................................*............................................................................................................................................................................................ + // xor x27, x4, x26 // .................................................................................................................................................................................................*................................................................................................................................................................... + // sw x24, 18*4(x2) // ................................................................................................................................................................................................*.................................................................................................................................................................... + // vxor.vv v26, v29, v18 // ..................................................................................................................................................................................................*.................................................................................................................................................................. + // lw x24, 0*8+4(x10) // ..................................................................................................................................................................................................*.................................................................................................................................................................. + // xor x23, x23, x25 // ...................................................................................................................................................................................................*................................................................................................................................................................. + // lw x1, 20*8+4(x10) // ...................................................................................................................................................................................................*................................................................................................................................................................. + // vxor.vv v29, v25, v21 // ...........................................................................................................................................................................................................*......................................................................................................................................................... + // vxor.vv v30, v0, v5 // .........................................................................................................................................................................................................*........................................................................................................................................................... + // lw x3, 18*8(x10) // ....................................................................................................................................................................................................*................................................................................................................................................................ + // vxor.vv v27, v26, v23 // ......................................................................................................................................................................................................*.............................................................................................................................................................. + // li x4, 64-1 // .....................................................................................................................................................................................................*............................................................................................................................................................... + // vxor.vv v26, v31, v14 // ....................................................................................................................................................................................................*................................................................................................................................................................ + // lw x25, 19*8+4(x10) // ......................................................................................................................................................................................................*.............................................................................................................................................................. + // vsrl.vx v31, v29, x4 // ...............................................................................................................................................................................................................*..................................................................................................................................................... + // xor x13, x13, x22 // ..............................................................................................................................................................................................................*...................................................................................................................................................... + // xor x28, x28, x22 // .......................................................................................................................................................................................................*............................................................................................................................................................. + // xor x26, x26, x22 // .......................................................................................................................................................................................................*............................................................................................................................................................. + // sw x26, 9*8+4(x10) // ........................................................................................................................................................................................................*............................................................................................................................................................ + // xor x26, x15, x6 // .........................................................................................................................................................................................................*........................................................................................................................................................... + // xor x26, x26, x24 // ..........................................................................................................................................................................................................*.......................................................................................................................................................... + // xor x24, x25, x22 // ...........................................................................................................................................................................................................*......................................................................................................................................................... + // vxor.vv v26, v26, v19 // ........................................................................................................................................................................................................*............................................................................................................................................................ + // xor x27, x27, x25 // ................................................................................................................................................................................................................*.................................................................................................................................................... + // sw x24, 19*8+4(x10) // .............................................................................................................................................................................................................*....................................................................................................................................................... + // vsll.vi v28, v29, 1 // ..................................................................................................................................................................................................................*.................................................................................................................................................. + // vxor.vv v30, v30, v10 // .....................................................................................................................................................................................................................*............................................................................................................................................... + // xor x24, x23, x3 // ............................................................................................................................................................................................................*........................................................................................................................................................ + // vsrl.vx v25, v27, x4 // ..........................................................................................................................................................................................................*.......................................................................................................................................................... + // lw x25, 15*8+4(x10) // ..............................................................................................................................................................................................................*...................................................................................................................................................... + // sw x24, 24*4(x2) // ...............................................................................................................................................................................................................*..................................................................................................................................................... + // vxor.vv v26, v26, v24 // ............................................................................................................................................................................................................*........................................................................................................................................................ + // lw x3, 9*8(x10) // ................................................................................................................................................................................................................*.................................................................................................................................................... + // xor x25, x26, x25 // .................................................................................................................................................................................................................*................................................................................................................................................... + // xor x23, x25, x1 // ...................................................................................................................................................................................................................*................................................................................................................................................. + // vxor.vv v28, v31, v28 // ......................................................................................................................................................................................................................*.............................................................................................................................................. + // vsll.vi v31, v27, 1 // .............................................................................................................................................................................................................*....................................................................................................................................................... + // lw x1, 19*8(x10) // ....................................................................................................................................................................................................................*................................................................................................................................................ + // xor x26, x14, x29 // ..................................................................................................................................................................................................................*.................................................................................................................................................. + // rori x25, x23, 32-1 // ....................................................................................................................................................................................................................*................................................................................................................................................ + // xor x26, x26, x3 // ...................................................................................................................................................................................................................*................................................................................................................................................. + // xor x24, x25, x24 // .....................................................................................................................................................................................................................*............................................................................................................................................... + // xor x3, x3, x24 // ......................................................................................................................................................................................................................*.............................................................................................................................................. + // vxor.vv v31, v25, v31 // .................................................................................................................................................................................................................*................................................................................................................................................... + // sw x3, 9*8(x10) // .......................................................................................................................................................................................................................*............................................................................................................................................. + // vxor.vv v25, v2, v7 // .......................................................................................................................................................................................................................*............................................................................................................................................. + // lw x3, 24*8(x10) // ..................................................................................................................................................................................................................................*.................................................................................................................................. + // xor x29, x29, x24 // ................................................................................................................................................................................................................................*.................................................................................................................................... + // vxor.vv v30, v30, v15 // ..........................................................................................................................................................................................................................*.......................................................................................................................................... + // xor x26, x26, x1 // .....................................................................................................................................................................................................................................*............................................................................................................................... + // xor x25, x26, x3 // .......................................................................................................................................................................................................................................*............................................................................................................................. + // vxor.vv v28, v28, v26 // ........................................................................................................................................................................................................................................*............................................................................................................................ + // vxor.vv v25, v25, v12 // ...........................................................................................................................................................................................................................*......................................................................................................................................... + // xor x1, x1, x24 // ............................................................................................................................................................................................................................*........................................................................................................................................ + // vxor.vv v29, v31, v29 // ........................................................................................................................................................................................................................*............................................................................................................................................ + // sw x1, 19*8(x10) // .............................................................................................................................................................................................................................*....................................................................................................................................... + // sw x23, 19*4(x2) // ........................................................................................................................................................................................................................*............................................................................................................................................ + // xor x3, x3, x24 // .............................................................................................................................................................................................................................................*....................................................................................................................... + // sw x3, 24*8(x10) // ................................................................................................................................................................................................................................................*.................................................................................................................... + // vxor.vv v30, v30, v20 // ..............................................................................................................................................................................................................................*...................................................................................................................................... + // lw x1, 24*8+4(x10) // .........................................................................................................................................................................................................................*........................................................................................................................................... + // vxor.vv v31, v25, v17 // ...............................................................................................................................................................................................................................*..................................................................................................................................... + // lw x26, 1*8+4(x10) // ........................................................................................................................................................................................................................................................*............................................................................................................ + // xor x14, x14, x24 // ..........................................................................................................................................................................................................................................*.......................................................................................................................... + // xor x23, x31, x19 // .........................................................................................................................................................................................................................*........................................................................................................................................... + // lw x3, 1*8(x10) // ..........................................................................................................................................................................................................................*.......................................................................................................................................... + // vxor.vv v10, v10, v28 // ..............................................................................................................................................................................................................................................*...................................................................................................................... + // xor x22, x1, x22 // ...........................................................................................................................................................................................................................*......................................................................................................................................... + // xor x24, x27, x1 // .............................................................................................................................................................................................................................*....................................................................................................................................... + // vxor.vv v31, v31, v22 // ...................................................................................................................................................................................................................................*................................................................................................................................. + // vxor.vv v0, v0, v28 // ...............................................................................................................................................................................................................................................*..................................................................................................................... + // sw x22, 24*8+4(x10) // ............................................................................................................................................................................................................................*........................................................................................................................................ + // vxor.vv v5, v5, v28 // ................................................................................................................................................................................................................................................*.................................................................................................................... + // sw x24, 27*4(x2) // ...................................................................................................................................................................................................................................................*................................................................................................................. + // xor x23, x23, x3 // ..............................................................................................................................................................................................................................*...................................................................................................................................... + // lw x27, 6*8(x10) // ...............................................................................................................................................................................................................................*..................................................................................................................................... + // lw x22, 6*8+4(x10) // .....................................................................................................................................................................................................................................................*............................................................................................................... + // xor x1, x30, x18 // ....................................................................................................................................................................................................................................................*................................................................................................................ + // xor x1, x1, x26 // ..........................................................................................................................................................................................................................................................*.......................................................................................................... + // lw x3, 11*8(x10) // ................................................................................................................................................................................................................................*.................................................................................................................................... + // lw x26, 11*8+4(x10) // .............................................................................................................................................................................................................................................................*....................................................................................................... + // xor x27, x23, x27 // .................................................................................................................................................................................................................................*................................................................................................................................... + // xor x27, x27, x3 // ..................................................................................................................................................................................................................................*.................................................................................................................................. + // xor x1, x1, x22 // ............................................................................................................................................................................................................................................................*........................................................................................................ + // xor x1, x1, x26 // ...............................................................................................................................................................................................................................................................*..................................................................................................... + // sw x27, 20*4(x2) // ...................................................................................................................................................................................................................................*................................................................................................................................. + // sw x1, 21*4(x2) // ................................................................................................................................................................................................................................................................*.................................................................................................... + // rori x26, x1, 32-1 // ................................................................................................................................................................................................................................................................*.................................................................................................... + // lw x1, 15*8(x10) // ..............................................................................................................................................................................................................................................................*...................................................................................................... + // xor x22, x27, x24 // ....................................................................................................................................................................................................................................*................................................................................................................................ + // xor x27, x26, x25 // .................................................................................................................................................................................................................................................................*................................................................................................... + // lw x26, 0*8(x10) // .................................................................................................................................................................................................................................................................*................................................................................................... + // xor x16, x16, x27 // ....................................................................................................................................................................................................................................................................*................................................................................................ + // lw x23, 0*8+4(x10) // .........................................................................................................................................................................................................................................*........................................................................................................................... + // xor x26, x26, x27 // ...................................................................................................................................................................................................................................................................*................................................................................................. + // xor x15, x15, x22 // ......................................................................................................................................................................................................................................................*.............................................................................................................. + // sw x26, 0*8(x10) // ....................................................................................................................................................................................................................................................................*................................................................................................ + // xor x23, x23, x22 // ...........................................................................................................................................................................................................................................*......................................................................................................................... + // sw x23, 0*8+4(x10) // ............................................................................................................................................................................................................................................*........................................................................................................................ + // vxor.vv v15, v15, v28 // .............................................................................................................................................................................................................................................*....................................................................................................................... + // lw x26, 20*8+4(x10) // ..................................................................................................................................................................................................................................................*.................................................................................................................. + // vxor.vv v20, v20, v28 // ............................................................................................................................................................................................................................................*........................................................................................................................ + // lw x23, 15*8+4(x10) // ......................................................................................................................................................................................................................................*.............................................................................................................................. + // vxor.vv v2, v2, v29 // .........................................................................................................................................................................................................................................*........................................................................................................................... + // xor x6, x6, x22 // .......................................................................................................................................................................................................................................................*............................................................................................................. + // vsll.vi v28, v26, 1 // ..........................................................................................................................................................................................................................................*.......................................................................................................................... + // vsrl.vx v26, v26, x4 // .................................................................................................................................................................................................................................*................................................................................................................................... + // xor x1, x1, x27 // ......................................................................................................................................................................................................................................................................*.............................................................................................. + // xor x23, x23, x22 // ........................................................................................................................................................................................................................................*............................................................................................................................ + // vxor.vv v7, v7, v29 // ......................................................................................................................................................................................................................................*.............................................................................................................................. + // lw x3, 20*8(x10) // ............................................................................................................................................................................................................................................................*........................................................................................................ + // vxor.vv v12, v12, v29 // .....................................................................................................................................................................................................................................*............................................................................................................................... + // sw x1, 15*8(x10) // .......................................................................................................................................................................................................................................................................*............................................................................................. + // vsrl.vx v25, v31, x4 // ..................................................................................................................................................................................................................................................*.................................................................................................................. + // lw x1, 7*8+4(x10) // ......................................................................................................................................................................................................................................................................*.............................................................................................. + // vxor.vv v28, v26, v28 // .................................................................................................................................................................................................................................................*................................................................................................................... + // xor x3, x3, x27 // ..................................................................................................................................................................................................................................................................*.................................................................................................. + // vsll.vi v26, v31, 1 // ...................................................................................................................................................................................................................................................*................................................................................................................. + // xor x7, x7, x27 // .....................................................................................................................................................................................................................................................................*............................................................................................... + // sw x3, 20*8(x10) // ...................................................................................................................................................................................................................................................................*................................................................................................. + // vxor.vv v22, v22, v29 // ....................................................................................................................................................................................................................................*................................................................................................................................ + // xor x27, x26, x22 // .....................................................................................................................................................................................................................................................*............................................................................................................... + // vxor.vv v17, v17, v29 // .......................................................................................................................................................................................................................................*............................................................................................................................. + // sw x27, 20*8+4(x10) // ......................................................................................................................................................................................................................................................*.............................................................................................................. + // vxor.vv v29, v25, v26 // .......................................................................................................................................................................................................................................................*............................................................................................................. + // lw x26, 25*4(x2) // ...........................................................................................................................................................................................................................................................*......................................................................................................... + // vsrl.vx v26, v30, x4 // ...........................................................................................................................................................................................................................................*......................................................................................................................... + // lw x27, 24*4(x2) // ...............................................................................................................................................................................................................................................*..................................................................................................................... + // lw x22, 21*4(x2) // .................................................................................................................................................................................................................................................*................................................................................................................... + // rori x26, x26, 32-1 // ..................................................................................................................................................................................................................................................................*.................................................................................................. + // sw x23, 15*8+4(x10) // ..............................................................................................................................................................................................................................................*...................................................................................................................... + // vxor.vv v25, v28, v31 // ........................................................................................................................................................................................................................................................*............................................................................................................ + // xor x23, x27, x22 // ....................................................................................................................................................................................................................................................*................................................................................................................ + // lw x4, 20*4(x2) // .........................................................................................................................................................................................................................................................................*........................................................................................... + // xor x22, x11, x8 // .......................................................................................................................................................................................................................................................................*............................................................................................. + // xor x8, x8, x23 // ........................................................................................................................................................................................................................................................................*............................................................................................ + // xor x27, x1, x23 // ..........................................................................................................................................................................................................................................................................*.......................................................................................... + // xor x22, x22, x1 // .........................................................................................................................................................................................................................................................................*........................................................................................... + // lw x1, 12*8+4(x10) // ........................................................................................................................................................................................................................................................................*............................................................................................ + // vxor.vv v31, v29, v30 // ...........................................................................................................................................................................................................................................................*......................................................................................................... + // vsll.vi v29, v30, 1 // ..........................................................................................................................................................................................................................................................*.......................................................................................................... + // lw x3, 7*8(x10) // .....................................................................................................................................................................................................................................................................*............................................................................................... + // xor x4, x26, x4 // ...........................................................................................................................................................................................................................................................................*......................................................................................... + // vxor.vv v3, v3, v25 // .............................................................................................................................................................................................................................................................*....................................................................................................... + // sw x27, 7*8+4(x10) // ...........................................................................................................................................................................................................................................................................*......................................................................................... + // vxor.vv v8, v8, v25 // .........................................................................................................................................................................................................................................................................................................*........................................................... + // xor x27, x12, x9 // ............................................................................................................................................................................................................................................................................*........................................................................................ + // vxor.vv v23, v23, v25 // ..............................................................................................................................................................................................................................................................*...................................................................................................... + // vxor.vv v13, v13, v25 // ...............................................................................................................................................................................................................................................................*..................................................................................................... + // sw x25, 26*4(x2) // ............................................................................................................................................................................................................................................................................*........................................................................................ + // xor x26, x27, x3 // .............................................................................................................................................................................................................................................................................*....................................................................................... + // xor x3, x3, x4 // .............................................................................................................................................................................................................................................................................*....................................................................................... + // xor x27, x22, x1 // ..............................................................................................................................................................................................................................................................................*...................................................................................... + // sw x3, 7*8(x10) // ..............................................................................................................................................................................................................................................................................*...................................................................................... + // vxor.vv v18, v18, v25 // ..........................................................................................................................................................................................................................................................................*.......................................................................................... + // lw x3, 12*8(x10) // ...............................................................................................................................................................................................................................................................................*..................................................................................... + // xor x12, x12, x4 // ...............................................................................................................................................................................................................................................................................*..................................................................................... + // xor x11, x11, x23 // ................................................................................................................................................................................................................................................................................*.................................................................................... + // vxor.vv v29, v26, v29 // ................................................................................................................................................................................................................................................................................*.................................................................................... + // xor x26, x26, x3 // .................................................................................................................................................................................................................................................................................*................................................................................... + // xor x3, x3, x4 // .................................................................................................................................................................................................................................................................................*................................................................................... + // xor x1, x1, x23 // ..................................................................................................................................................................................................................................................................................*.................................................................................. + // sw x3, 12*8(x10) // ..................................................................................................................................................................................................................................................................................*.................................................................................. + // vxor.vv v16, v16, v31 // ...................................................................................................................................................................................................................................................................................*................................................................................. + // sw x1, 12*8+4(x10) // ...................................................................................................................................................................................................................................................................................*................................................................................. + // vxor.vv v26, v29, v27 // ....................................................................................................................................................................................................................................................................................*................................................................................ + // lw x3, 22*8(x10) // ....................................................................................................................................................................................................................................................................................*................................................................................ + // vxor.vv v1, v1, v31 // .....................................................................................................................................................................................................................................................................................*............................................................................... + // lw x1, 22*8+4(x10) // .....................................................................................................................................................................................................................................................................................*............................................................................... + // xor x9, x9, x4 // ......................................................................................................................................................................................................................................................................................*.............................................................................. + // vxor.vv v29, v6, v31 // ......................................................................................................................................................................................................................................................................................*.............................................................................. + // xor x22, x27, x1 // .......................................................................................................................................................................................................................................................................................*............................................................................. + // xor x1, x1, x23 // .......................................................................................................................................................................................................................................................................................*............................................................................. + // sw x1, 22*8+4(x10) // ........................................................................................................................................................................................................................................................................................*............................................................................ + // xor x23, x26, x3 // ........................................................................................................................................................................................................................................................................................*............................................................................ + // xor x3, x3, x4 // ..........................................................................................................................................................................................................................................................................................*.......................................................................... + // vxor.vv v21, v21, v31 // ..............................................................................................................................................................................................................................................................................................................................*...................................... + // rori x27, x24, 32-1 // .........................................................................................................................................................................................................................................................................................*........................................................................... + // lw x1, 3*8+4(x10) // .........................................................................................................................................................................................................................................................................................*........................................................................... + // sw x3, 22*8(x10) // ...........................................................................................................................................................................................................................................................................................*......................................................................... + // xor x24, x25, x22 // ..........................................................................................................................................................................................................................................................................................*.......................................................................... + // vxor.vv v11, v11, v31 // .............................................................................................................................................................................................................................................................................................................................*....................................... + // xor x26, x1, x24 // ...........................................................................................................................................................................................................................................................................................*......................................................................... + // rori x25, x22, 32-1 // ............................................................................................................................................................................................................................................................................................*........................................................................ + // lw x1, 18*4(x2) // ............................................................................................................................................................................................................................................................................................*........................................................................ + // xor x20, x20, x24 // ....................................................................................................................................................................................................................................................................................................................................................*................ + // lw x4, 19*4(x2) // .............................................................................................................................................................................................................................................................................................*....................................................................... + // xor x1, x25, x1 // ..............................................................................................................................................................................................................................................................................................*...................................................................... + // lw x25, 11*8(x10) // .................................................................................................................................................................................................................................................................................................*................................................................... + // xor x19, x19, x1 // ...............................................................................................................................................................................................................................................................................................*..................................................................... + // xor x4, x23, x4 // ....................................................................................................................................................................................................................................................................................................*................................................................ + // rori x3, x19, 31 // ................................................................................................................................................................................................................................................................................................*.................................................................... + // xor x25, x25, x1 // ...................................................................................................................................................................................................................................................................................................*................................................................. + // xor x19, x17, x24 // ...............................................................................................................................................................................................................................................................................................*..................................................................... + // xor x17, x18, x4 // ..............................................................................................................................................................................................................................................................................................................................*...................................... + // rori x19, x19, 4 // ..................................................................................................................................................................................................................................................................................................*.................................................................. + // sw x3, 0*8(x10) // ......................................................................................................................................................................................................................................................................................................*.............................................................. + // li x18, 41 // ....................................................................................................................................................................................................................................................................................................................*................................................ + // lw x3, 6*8(x10) // ................................................................................................................................................................................................................................................................................................................................................*.................... + // sw x25, 11*8(x10) // ............................................................................................................................................................................................................................................................................................................................*........................................ + // xor x25, x27, x23 // .................................................................................................................................................................................................................................................................................................*................................................................... + // xor x3, x3, x1 // ..................................................................................................................................................................................................................................................................................................................................................*.................. + // vsll.vx v27, v15, x18 // ......................................................................................................................................................................................................................................................................................................................*.............................................. + // sw x3, 6*8(x10) // ...................................................................................................................................................................................................................................................................................................................................................*................. + // xor x5, x5, x25 // ...............................................................................................................................................................................................................................................................................................................*..................................................... + // mv x27, x3 // ..............................................................................................................................................................................................................................................................................................................................................................*...... + // lw x3, 18*8(x10) // ...........................................................................................................................................................................................................................................................................................................*......................................................... + // rori x18, x5, 5 // ...............................................................................................................................................................................................................................................................................................................................*..................................... + // lw x5, 6*8+4(x10) // ............................................................................................................................................................................................................................................................................................................*........................................................ + // xor x3, x3, x25 // .............................................................................................................................................................................................................................................................................................................*....................................................... + // sw x26, 3*8+4(x10) // .....................................................................................................................................................................................................................................................................................................................................*............................... + // sw x3, 18*8(x10) // ..........................................................................................................................................................................................................................................................................................................................*.......................................... + // xor x5, x5, x4 // ..............................................................................................................................................................................................................................................................................................................*...................................................... + // xor x30, x30, x4 // ...................................................................................................................................................................................................................................................................................................................*................................................. + // lw x26, 1*8(x10) // ..............................................................................................................................................................................................................................................................................................*...................................................................... + // xor x31, x31, x1 // ...................................................................................................................................................................................................................................................................................................*................................................................. + // rori x17, x17, 31 // ......................................................................................................................................................................................................................................................................................................................................................*.............. + // xor x1, x26, x1 // ................................................................................................................................................................................................................................................................................................*.................................................................... + // sw x17, 0*8+4(x10) // .......................................................................................................................................................................................................................................................................................................................................................*............. + // sw x1, 1*8(x10) // ..................................................................................................................................................................................................................................................................................................*.................................................................. + // xor x21, x21, x25 // ................................................................................................................................................................................................................................................................................................................*.................................................... + // sw x22, 23*4(x2) // .....................................................................................................................................................................................................................................................................................................................................................*............... + // vsrl.vi v31, v23, 8 // ....................................................................................................................................................................................................................................................................................................*................................................................ + // vsll.vi v30, v13, 25 // ...............................................................................................................................................................................................................................................................................................................................*..................................... + // lw x3, 3*8(x10) // .......................................................................................................................................................................................................................................................................................................*............................................................. + // vmv.v.v v25, v0 // ........................................................................................................................................................................................................................................................................................................................*............................................ + // lw x26, 13*8(x10) // ...............................................................................................................................................................................................................................................................................................................*..................................................... + // xor x3, x3, x25 // .........................................................................................................................................................................................................................................................................................................*........................................................... + // lw x1, 18*8+4(x10) // ................................................................................................................................................................................................................................................................................................................................*.................................... + // xor x26, x26, x25 // .................................................................................................................................................................................................................................................................................................................*................................................... + // sw x5, 6*8+4(x10) // ................................................................................................................................................................................................................................................................................................................*.................................................... + // xor x25, x1, x24 // ..................................................................................................................................................................................................................................................................................................................................*.................................. + // vsrl.vi v0, v12, 21 // ..........................................................................................................................................................................................................................................................................................................................*.......................................... + // vxor.vv v28, v19, v26 // ........................................................................................................................................................................................................................................................................................................*............................................................ + // li x1, 39 // .....................................................................................................................................................................................................................................................................................................................*............................................... + // sw x26, 13*8(x10) // .....................................................................................................................................................................................................................................................................................................................*............................................... + // mv x17, x5 // ..................................................................................................................................................................................................................................................................................................................*.................................................. + // li x22, 43 // ......................................................................................................................................................................................................................................................................................................................*.............................................. + // vsrl.vx v13, v13, x1 // .......................................................................................................................................................................................................................................................................................................................*............................................. + // li x1, 62 // ..............................................................................................................................................................................................................................................................................................................................................*...................... + // vxor.vv v9, v9, v26 // ............................................................................................................................................................................................................................................................................................................................................*........................ + // sw x23, 22*4(x2) // .....................................................................................................................................................................................................................................................................................................*............................................................... + // vxor.vv v4, v4, v26 // .............................................................................................................................................................................................................................................................................................................................................*....................... + // lw x5, 11*8+4(x10) // .............................................................................................................................................................................................................................................................................................................................................................*....... + // vsll.vx v6, v12, x22 // .........................................................................................................................................................................................................................................................................................................................*........................................... + // vxor.vv v12, v13, v30 // ........................................................................................................................................................................................................................................................................................................................................*............................ + // sw x25, 18*8+4(x10) // .......................................................................................................................................................................................................................................................................................................................................*............................. + // vxor.vv v14, v14, v26 // ....................................................................................................................................................................................................................................................................................................................*................................................ + // xor x5, x5, x4 // ...............................................................................................................................................................................................................................................................................................................................................................*..... + // li x26, 44 // ........................................................................................................................................................................................................................................................................................................................................*............................ + // sw x5, 11*8+4(x10) // .................................................................................................................................................................................................................................................................................................................................................................*... + // vxor.vv v24, v24, v26 // ........................................................................................................................................................................................................................................................................................................................*............................................ + // rori x25, x27, 10 // .................................................................................................................................................................................................................................................................................................................................................................*... + // vsrl.vi v13, v8, 9 // ..............................................................................................................................................................................................................................................................................................................*...................................................... + // li x23, 55 // ........................................................................................................................................................................................................................................................................................................*............................................................ + // vsll.vi v30, v28, 8 // ...........................................................................................................................................................................................................................................................................................................................*......................................... + // li x5, 56 // .........................................................................................................................................................................................................................................................................................................................*........................................... + // vsll.vx v26, v8, x23 // .............................................................................................................................................................................................................................................................................................................*....................................................... + // sw x3, 3*8(x10) // ..........................................................................................................................................................................................................................................................................................................*.......................................................... + // li x27, 63 // ..........................................................................................................................................................................................................................................................................................................*.......................................................... + // vsrl.vx v19, v28, x5 // ............................................................................................................................................................................................................................................................................................................................*........................................ + // li x5, 56 // .....................................................................................................................................................................................................................................................................................................*............................................................... + // vsll.vi v28, v1, 1 // ......................................................................................................................................................................................................................................................................................................*.............................................................. + // vsrl.vx v8, v1, x27 // ............................................................................................................................................................................................................................................................................................................*........................................................ + // lw x22, 3*8(x10) // ........................................................................................................................................................................................................................................................................................................................................................*............ + // vxor.vv v1, v13, v26 // ..................................................................................................................................................................................................................................................................................................................*.................................................. + // lw x3, 18*8(x10) // ...........................................................................................................................................................................................................................................................................................................................*......................................... + // vxor.vv v13, v19, v30 // .................................................................................................................................................................................................................................................................................................................................*................................... + // lw x23, 0*8+4(x10) // .................................................................................................................................................................................................................................................................................................................*................................................... + // rori x27, x3, 22 // .............................................................................................................................................................................................................................................................................................................................*....................................... + // vsll.vx v19, v23, x5 // .......................................................................................................................................................................................................................................................................................................*............................................................. + // vsrl.vi v26, v29, 20 // .........................................................................................................................................................................................................................................................................................................................................*........................... + // lw x3, 1*8(x10) // ..........................................................................................................................................................................................................................................................................................................................................*.......................... + // sw x23, 19*4(x2) // ...................................................................................................................................................................................................................................................................................................................*................................................. + // vsrl.vi v23, v15, 23 // ......................................................................................................................................................................................................................................................................................................................................................*.............. + // vxor.vv v15, v8, v28 // .......................................................................................................................................................................................................................................................................................................................................................*............. + // lw x5, 0*8(x10) // ................................................................................................................................................................................................................................................................................................................................................................*.... + // vxor.vv v19, v31, v19 // ...........................................................................................................................................................................................................................................................................................................*......................................................... + // lw x23, 13*8+4(x10) // .......................................................................................................................................................................................................................................................................................................................*............................................. + // sw x5, 18*4(x2) // ..................................................................................................................................................................................................................................................................................................................................................................*.. + // vsll.vi v31, v7, 6 // .....................................................................................................................................................................................................................................................................................................................................*............................... + // rori x5, x30, 9 // .........................................................................................................................................................................................................................................................................................................................................................*........... + // sw x25, 20*4(x2) // ...................................................................................................................................................................................................................................................................................................................................................................*. + // lw x25, 1*8+4(x10) // .........................................................................................................................................................................................................................................................................................................................................*........................... + // rori x30, x15, 14 // ...................................................................................................................................................................................................................................................................................................................................................................*. + // lw x15, 18*8+4(x10) // .................................................................................................................................................................................................................................................................................................................................................*................... + // vsll.vx v8, v2, x1 // ................................................................................................................................................................................................................................................................................................................................................*.................... + // sw x27, 3*8+4(x10) // ...........................................................................................................................................................................................................................................................................................................................................................*......... + // xor x23, x23, x24 // ...................................................................................................................................................................................................................................................................................................................................*................................. + // rori x27, x15, 21 // ...................................................................................................................................................................................................................................................................................................................................................*................. + // vsll.vx v30, v29, x26 // ..........................................................................................................................................................................................................................................................................................................................................*.......................... + // sw x23, 13*8+4(x10) // ......................................................................................................................................................................................................................................................................................................................................*.............................. + // xor x4, x25, x4 // ...........................................................................................................................................................................................................................................................................................................................................*......................... + // sw x4, 1*8+4(x10) // ...............................................................................................................................................................................................................................................................................................................................................*..................... + // rori x23, x6, 30 // ....................................................................................................................................................................................................................................................................................................................................*................................ + // sw x27, 3*8(x10) // ....................................................................................................................................................................................................................................................................................................................................................*................ + // li x27, 58 // ...............................................................................................................................................................................................................................................................................................................................................*..................... + // vxor.vv v26, v26, v30 // ..............................................................................................................................................................................................................................................................................................................................................*...................... + // rori x24, x11, 1 // ........................................................................................................................................................................................................................................................................................................................................................*............ + // vsrl.vx v28, v7, x27 // .................................................................................................................................................................................................................................................................................................................................................*................... + // lw x11, 12*8+4(x10) // ..........................................................................................................................................................................................................................................................................................................................................................*.......... + // mv x6, x3 // .............................................................................................................................................................................................................................................................................................................................................*....................... + // rori x4, x12, 1 // ...............................................................................................................................................................................................................................................................................................................................................................*..... + // rori x12, x11, 10 // ................................................................................................................................................................................................................................................................................................................................................................*.... + // sw x23, 13*8(x10) // ............................................................................................................................................................................................................................................................................................................................................*........................ + // li x1, 45 // .......................................................................................................................................................................................................................................................................................................................................*............................. + // lw x3, 12*8(x10) // ..............................................................................................................................................................................................................................................................................................................................................................*...... + // rori x23, x7, 31 // .................................................................................................................................................................................................................................................................................................................................*................................... + // lw x15, 3*8+4(x10) // ....................................................................................................................................................................................................................................................................................................................................................................* + // rori x11, x3, 11 // ..................................................................................................................................................................................................................................................................................................................................................................*.. + // lw x27, 1*8+4(x10) // ....................................................................................................................................................................................................................................................................................................................................*................................ + // vsll.vi v30, v3, 28 // ....................................................................................................................................................................................................................................................................................................................................................................* + // sw x23, 13*8+4(x10) // ..................................................................................................................................................................................................................................................................................................................................*.................................. + // rori x7, x27, 31 // ......................................................................................................................................................................................................................................................................................................................................*.............................. + // vsll.vx v7, v16, x1 // ..................................................................................................................................................................................................................................................................................................................................................*.................. + // vsrl.vi v29, v16, 19 // ...........................................................................................................................................................................................................................................................................................................................................*......................... + // rori x25, x17, 10 // ..........................................................................................................................................................................................................................................................................................................................................................*.......... + // vxor.vv v16, v28, v31 // .....................................................................................................................................................................................................................................................................................................................................................*............... + // rori x17, x31, 10 // ...........................................................................................................................................................................................................................................................................................................................................................*......... + // vsrl.vi v28, v2, 2 // ............................................................................................................................................................................................................................................................................................................................................................*........ + // sw x24, 1*8+4(x10) // .........................................................................................................................................................................................................................................................................................................................................................*........... + // vxor.vv v2, v0, v6 // .............................................................................................................................................................................................................................................................................................................................................................*....... + // rori x31, x16, 14 // ............................................................................................................................................................................................................................................................................................................................................................*........ + + addi tp, tp, -1 + bnez tp, loop_start + li x27, 46 // .................................................................................................................................................................................*............................................................................................................................................................................... + lw x1, 7*8+4(x10) // .................................................................................................................................................................................*............................................................................................................................................................................... + rori x24, x9, 25 // ..................................................................................................................................................................................*.............................................................................................................................................................................. + lw x9, 13*8+4(x10) // ..................................................................................................................................................................................*.............................................................................................................................................................................. + lw x26, 9*8+4(x10) // ...................................................................................................................................................................................*............................................................................................................................................................................. + li x16, 61 // ...................................................................................................................................................................................*............................................................................................................................................................................. + vxor.vv v0, v28, v8 // ....................................................................................................................................................................................*............................................................................................................................................................................ + rori x3, x9, 19 // ....................................................................................................................................................................................*............................................................................................................................................................................ + sw x3, 18*8(x10) // .....................................................................................................................................................................................*........................................................................................................................................................................... + rori x26, x26, 22 // .....................................................................................................................................................................................*........................................................................................................................................................................... + sw x25, 21*4(x2) // ......................................................................................................................................................................................*.......................................................................................................................................................................... + vsrl.vx v6, v10, x16 // ......................................................................................................................................................................................*.......................................................................................................................................................................... + lw x25, 9*8(x10) // .......................................................................................................................................................................................*......................................................................................................................................................................... + vsll.vi v31, v10, 3 // .......................................................................................................................................................................................*......................................................................................................................................................................... + li x23, 36 // ........................................................................................................................................................................................*........................................................................................................................................................................ + sw x26, 12*8+4(x10) // ........................................................................................................................................................................................*........................................................................................................................................................................ + li x9, 43 // .........................................................................................................................................................................................*....................................................................................................................................................................... + lw x26, 22*8+4(x10) // .........................................................................................................................................................................................*....................................................................................................................................................................... + rori x3, x25, 22 // ..........................................................................................................................................................................................*...................................................................................................................................................................... + vsrl.vx v28, v3, x23 // ..........................................................................................................................................................................................*...................................................................................................................................................................... + sw x4, 1*8(x10) // ...........................................................................................................................................................................................*..................................................................................................................................................................... + vsll.vi v3, v18, 21 // ...........................................................................................................................................................................................*..................................................................................................................................................................... + sw x3, 12*8(x10) // ............................................................................................................................................................................................*.................................................................................................................................................................... + rori x15, x15, 18 // ............................................................................................................................................................................................*.................................................................................................................................................................... + lw x3, 22*8(x10) // .............................................................................................................................................................................................*................................................................................................................................................................... + vxor.vv v8, v29, v7 // .............................................................................................................................................................................................*................................................................................................................................................................... + vxor.vv v10, v28, v30 // ..............................................................................................................................................................................................*.................................................................................................................................................................. + lw x23, 13*8(x10) // ..............................................................................................................................................................................................*.................................................................................................................................................................. + rori x16, x22, 18 // ...............................................................................................................................................................................................*................................................................................................................................................................. + vxor.vv v23, v23, v27 // ...............................................................................................................................................................................................*................................................................................................................................................................. + rori x23, x23, 20 // ................................................................................................................................................................................................*................................................................................................................................................................ + vsrl.vx v28, v18, x9 // ................................................................................................................................................................................................*................................................................................................................................................................ + vxor.vv v7, v6, v31 // .................................................................................................................................................................................................*............................................................................................................................................................... + rori x9, x3, 2 // .................................................................................................................................................................................................*............................................................................................................................................................... + sw x23, 18*8+4(x10) // ..................................................................................................................................................................................................*.............................................................................................................................................................. + vsll.vi v27, v11, 10 // ..................................................................................................................................................................................................*.............................................................................................................................................................. + li x23, 49 // ...................................................................................................................................................................................................*............................................................................................................................................................. + rori x22, x26, 1 // ...................................................................................................................................................................................................*............................................................................................................................................................. + vxor.vv v3, v28, v3 // ....................................................................................................................................................................................................*............................................................................................................................................................ + sw x22, 9*8(x10) // ....................................................................................................................................................................................................*............................................................................................................................................................ + vsll.vi v29, v17, 15 // .....................................................................................................................................................................................................*........................................................................................................................................................... + sw x9, 9*8+4(x10) // .....................................................................................................................................................................................................*........................................................................................................................................................... + rori x29, x29, 13 // ......................................................................................................................................................................................................*.......................................................................................................................................................... + vsrl.vx v6, v17, x23 // ......................................................................................................................................................................................................*.......................................................................................................................................................... + li x23, 54 // .......................................................................................................................................................................................................*......................................................................................................................................................... + lw x4, 20*8(x10) // .......................................................................................................................................................................................................*......................................................................................................................................................... + rori x3, x28, 12 // ........................................................................................................................................................................................................*........................................................................................................................................................ + lw x28, 20*8+4(x10) // ........................................................................................................................................................................................................*........................................................................................................................................................ + rori x26, x1, 29 // .........................................................................................................................................................................................................*....................................................................................................................................................... + sw x3, 22*8(x10) // .........................................................................................................................................................................................................*....................................................................................................................................................... + sw x29, 22*8+4(x10) // ..........................................................................................................................................................................................................*...................................................................................................................................................... + rori x29, x4, 23 // ..........................................................................................................................................................................................................*...................................................................................................................................................... + vsrl.vx v31, v11, x23 // ...........................................................................................................................................................................................................*..................................................................................................................................................... + rori x28, x28, 23 // ...........................................................................................................................................................................................................*..................................................................................................................................................... + rori x21, x21, 4 // ............................................................................................................................................................................................................*.................................................................................................................................................... + lw x3, 15*8(x10) // ............................................................................................................................................................................................................*.................................................................................................................................................... + rori x20, x20, 4 // .............................................................................................................................................................................................................*................................................................................................................................................... + lw x25, 15*8+4(x10) // .............................................................................................................................................................................................................*................................................................................................................................................... + vxor.vv v18, v6, v29 // ..............................................................................................................................................................................................................*.................................................................................................................................................. + sw x21, 20*8(x10) // ..............................................................................................................................................................................................................*.................................................................................................................................................. + vxor.vv v17, v31, v27 // ...............................................................................................................................................................................................................*................................................................................................................................................. + li x4, 44 // ...............................................................................................................................................................................................................*................................................................................................................................................. + sw x20, 20*8+4(x10) // ................................................................................................................................................................................................................*................................................................................................................................................ + rori x20, x3, 12 // ................................................................................................................................................................................................................*................................................................................................................................................ + vsll.vi v28, v9, 20 // .................................................................................................................................................................................................................*............................................................................................................................................... + rori x21, x25, 11 // .................................................................................................................................................................................................................*............................................................................................................................................... + rori x1, x14, 19 // ..................................................................................................................................................................................................................*.............................................................................................................................................. + vsrl.vx v29, v9, x4 // ..................................................................................................................................................................................................................*.............................................................................................................................................. + li x4, 61 // ...................................................................................................................................................................................................................*............................................................................................................................................. + rori x14, x13, 18 // ...................................................................................................................................................................................................................*............................................................................................................................................. + vsrl.vi v6, v22, 3 // ....................................................................................................................................................................................................................*............................................................................................................................................ + lw x3, 24*8(x10) // ....................................................................................................................................................................................................................*............................................................................................................................................ + lw x25, 24*8+4(x10) // .....................................................................................................................................................................................................................*........................................................................................................................................... + vsll.vx v31, v22, x4 // .....................................................................................................................................................................................................................*........................................................................................................................................... + vxor.vv v11, v29, v28 // ......................................................................................................................................................................................................................*.......................................................................................................................................... + sw x14, 15*8(x10) // ......................................................................................................................................................................................................................*.......................................................................................................................................... + sw x1, 15*8+4(x10) // .......................................................................................................................................................................................................................*......................................................................................................................................... + rori x14, x3, 25 // .......................................................................................................................................................................................................................*......................................................................................................................................... + sw x24, 24*8+4(x10) // ........................................................................................................................................................................................................................*........................................................................................................................................ + rori x13, x25, 25 // ........................................................................................................................................................................................................................*........................................................................................................................................ + vxor.vv v9, v6, v31 // .........................................................................................................................................................................................................................*....................................................................................................................................... + lw x3, 11*8(x10) // .........................................................................................................................................................................................................................*....................................................................................................................................... + rori x9, x8, 24 // ..........................................................................................................................................................................................................................*...................................................................................................................................... + lw x25, 11*8+4(x10) // ..........................................................................................................................................................................................................................*...................................................................................................................................... + li x1, 39 // ...........................................................................................................................................................................................................................*..................................................................................................................................... + sw x9, 24*8(x10) // ...........................................................................................................................................................................................................................*..................................................................................................................................... + vsrl.vi v27, v14, 25 // ............................................................................................................................................................................................................................*.................................................................................................................................... + rori x8, x25, 27 // ............................................................................................................................................................................................................................*.................................................................................................................................... + vsll.vx v6, v14, x1 // .............................................................................................................................................................................................................................*................................................................................................................................... + lw x1, 7*8(x10) // .............................................................................................................................................................................................................................*................................................................................................................................... + rori x9, x3, 27 // ..............................................................................................................................................................................................................................*.................................................................................................................................. + vsrl.vx v31, v20, x27 // ..............................................................................................................................................................................................................................*.................................................................................................................................. + vsll.vi v29, v20, 18 // ...............................................................................................................................................................................................................................*................................................................................................................................. + sw x26, 11*8+4(x10) // ...............................................................................................................................................................................................................................*................................................................................................................................. + rori x3, x1, 29 // ................................................................................................................................................................................................................................*................................................................................................................................ + lw x1, 19*8(x10) // ................................................................................................................................................................................................................................*................................................................................................................................ + vxor.vv v22, v27, v6 // .................................................................................................................................................................................................................................*............................................................................................................................... + lw x27, 19*8+4(x10) // .................................................................................................................................................................................................................................*............................................................................................................................... + sw x3, 11*8(x10) // ..................................................................................................................................................................................................................................*.............................................................................................................................. + rori x3, x1, 28 // ..................................................................................................................................................................................................................................*.............................................................................................................................. + vxor.vv v14, v31, v29 // ...................................................................................................................................................................................................................................*............................................................................................................................. + li x1, 37 // ...................................................................................................................................................................................................................................*............................................................................................................................. + rori x27, x27, 28 // ....................................................................................................................................................................................................................................*............................................................................................................................ + lw x24, 13*8(x10) // ....................................................................................................................................................................................................................................*............................................................................................................................ + vsll.vi v27, v4, 27 // .....................................................................................................................................................................................................................................*........................................................................................................................... + lw x23, 13*8+4(x10) // .....................................................................................................................................................................................................................................*........................................................................................................................... + sw x3, 19*8(x10) // ......................................................................................................................................................................................................................................*.......................................................................................................................... + vsrl.vx v6, v4, x1 // ......................................................................................................................................................................................................................................*.......................................................................................................................... + li x1, 50 // .......................................................................................................................................................................................................................................*......................................................................................................................... + sw x27, 19*8+4(x10) // .......................................................................................................................................................................................................................................*......................................................................................................................... + lw x26, 12*8(x10) // ........................................................................................................................................................................................................................................*........................................................................................................................ + vsll.vi v31, v24, 14 // ........................................................................................................................................................................................................................................*........................................................................................................................ + lw x4, 12*8+4(x10) // .........................................................................................................................................................................................................................................*....................................................................................................................... + andn x3, x5, x24 // .........................................................................................................................................................................................................................................*....................................................................................................................... + vsrl.vx v29, v24, x1 // ..........................................................................................................................................................................................................................................*...................................................................................................................... + andn x1, x17, x23 // ..........................................................................................................................................................................................................................................*...................................................................................................................... + xor x3, x3, x26 // ...........................................................................................................................................................................................................................................*..................................................................................................................... + lw x22, 9*8(x10) // ...........................................................................................................................................................................................................................................*..................................................................................................................... + xor x1, x1, x4 // ............................................................................................................................................................................................................................................*.................................................................................................................... + lw x25, 9*8+4(x10) // ............................................................................................................................................................................................................................................*.................................................................................................................... + vxor.vv v20, v6, v27 // .............................................................................................................................................................................................................................................*................................................................................................................... + sw x3, 6*8(x10) // .............................................................................................................................................................................................................................................*................................................................................................................... + vxor.vv v4, v29, v31 // ..............................................................................................................................................................................................................................................*.................................................................................................................. + li x27, 62 // ..............................................................................................................................................................................................................................................*.................................................................................................................. + sw x1, 6*8+4(x10) // ...............................................................................................................................................................................................................................................*................................................................................................................. + andn x3, x22, x5 // ...............................................................................................................................................................................................................................................*................................................................................................................. + andn x1, x25, x17 // ................................................................................................................................................................................................................................................*................................................................................................................ + vsll.vi v6, v21, 2 // ................................................................................................................................................................................................................................................*................................................................................................................ + xor x3, x3, x24 // .................................................................................................................................................................................................................................................*............................................................................................................... + xor x1, x1, x23 // .................................................................................................................................................................................................................................................*............................................................................................................... + sw x3, 7*8(x10) // ..................................................................................................................................................................................................................................................*.............................................................................................................. + vsrl.vx v31, v21, x27 // ..................................................................................................................................................................................................................................................*.............................................................................................................. + li x27, 36 // ...................................................................................................................................................................................................................................................*............................................................................................................. + sw x1, 7*8+4(x10) // ...................................................................................................................................................................................................................................................*............................................................................................................. + andn x3, x16, x22 // ....................................................................................................................................................................................................................................................*............................................................................................................ + vsrl.vi v21, v5, 28 // ....................................................................................................................................................................................................................................................*............................................................................................................ + andn x1, x15, x25 // .....................................................................................................................................................................................................................................................*........................................................................................................... + vsll.vx v29, v5, x27 // .....................................................................................................................................................................................................................................................*........................................................................................................... + xor x5, x3, x5 // ......................................................................................................................................................................................................................................................*.......................................................................................................... + xor x17, x1, x17 // ......................................................................................................................................................................................................................................................*.......................................................................................................... + vand.vv v27, v7, v8 // .......................................................................................................................................................................................................................................................*......................................................................................................... + andn x3, x26, x16 // .......................................................................................................................................................................................................................................................*......................................................................................................... + xor x27, x3, x22 // ........................................................................................................................................................................................................................................................*........................................................................................................ + andn x22, x4, x15 // ........................................................................................................................................................................................................................................................*........................................................................................................ + vxor.vv v24, v31, v6 // .........................................................................................................................................................................................................................................................*....................................................................................................... + xor x25, x22, x25 // .........................................................................................................................................................................................................................................................*....................................................................................................... + sw x25, 9*8+4(x10) // ..........................................................................................................................................................................................................................................................*...................................................................................................... + andn x25, x23, x4 // ..........................................................................................................................................................................................................................................................*...................................................................................................... + andn x3, x24, x26 // ...........................................................................................................................................................................................................................................................*..................................................................................................... + vnot.v v30, v9 // ...........................................................................................................................................................................................................................................................*..................................................................................................... + lw x23, 19*8(x10) // ............................................................................................................................................................................................................................................................*.................................................................................................... + vor.vv v5, v11, v7 // ............................................................................................................................................................................................................................................................*.................................................................................................... + lw x22, 19*8+4(x10) // .............................................................................................................................................................................................................................................................*................................................................................................... + vor.vv v28, v9, v10 // .............................................................................................................................................................................................................................................................*................................................................................................... + xor x16, x3, x16 // ..............................................................................................................................................................................................................................................................*.................................................................................................. + andn x3, x7, x29 // ..............................................................................................................................................................................................................................................................*.................................................................................................. + xor x3, x3, x23 // ...............................................................................................................................................................................................................................................................*................................................................................................. + lw x4, 18*8+4(x10) // ...............................................................................................................................................................................................................................................................*................................................................................................. + sw x3, 13*8(x10) // ................................................................................................................................................................................................................................................................*................................................................................................ + vxor.vv v5, v10, v5 // ................................................................................................................................................................................................................................................................*................................................................................................ + andn x3, x29, x23 // .................................................................................................................................................................................................................................................................*............................................................................................... + vor.vv v30, v30, v8 // .................................................................................................................................................................................................................................................................*............................................................................................... + sw x27, 9*8(x10) // ..................................................................................................................................................................................................................................................................*.............................................................................................. + andn x1, x28, x22 // ..................................................................................................................................................................................................................................................................*.............................................................................................. + vnot.v v31, v13 // ...................................................................................................................................................................................................................................................................*............................................................................................. + xor x24, x1, x4 // ...................................................................................................................................................................................................................................................................*............................................................................................. + andn x26, x6, x28 // ....................................................................................................................................................................................................................................................................*............................................................................................ + sw x24, 12*8+4(x10) // ....................................................................................................................................................................................................................................................................*............................................................................................ + xor x15, x25, x15 // .....................................................................................................................................................................................................................................................................*........................................................................................... + vxor.vv v7, v7, v30 // .....................................................................................................................................................................................................................................................................*........................................................................................... + lw x25, 18*8(x10) // ......................................................................................................................................................................................................................................................................*.......................................................................................... + vxor.vv v8, v8, v28 // ......................................................................................................................................................................................................................................................................*.......................................................................................... + xor x1, x26, x22 // .......................................................................................................................................................................................................................................................................*......................................................................................... + lw x27, 11*8(x10) // .......................................................................................................................................................................................................................................................................*......................................................................................... + vxor.vv v6, v11, v27 // ........................................................................................................................................................................................................................................................................*........................................................................................ + sw x1, 13*8+4(x10) // ........................................................................................................................................................................................................................................................................*........................................................................................ + vand.vv v30, v10, v11 // .........................................................................................................................................................................................................................................................................*....................................................................................... + lw x24, 11*8+4(x10) // .........................................................................................................................................................................................................................................................................*....................................................................................... + xor x3, x3, x25 // ..........................................................................................................................................................................................................................................................................*...................................................................................... + vxor.vv v21, v21, v29 // ..........................................................................................................................................................................................................................................................................*...................................................................................... + vand.vv v10, v31, v14 // ...........................................................................................................................................................................................................................................................................*..................................................................................... + sw x3, 12*8(x10) // ...........................................................................................................................................................................................................................................................................*..................................................................................... + vnot.v v27, v13 // ............................................................................................................................................................................................................................................................................*.................................................................................... + lw x26, 20*8(x10) // .............................................................................................................................................................................................................................................................................*................................................................................... + vor.vv v31, v16, v12 // .............................................................................................................................................................................................................................................................................*................................................................................... + vand.vv v11, v12, v13 // ..............................................................................................................................................................................................................................................................................*.................................................................................. + andn x1, x4, x24 // ..............................................................................................................................................................................................................................................................................*.................................................................................. + andn x3, x23, x25 // ...............................................................................................................................................................................................................................................................................*................................................................................. + vand.vv v29, v21, v17 // ...............................................................................................................................................................................................................................................................................*................................................................................. + xor x23, x3, x27 // ................................................................................................................................................................................................................................................................................*................................................................................ + andn x4, x22, x4 // ................................................................................................................................................................................................................................................................................*................................................................................ + andn x22, x24, x6 // .................................................................................................................................................................................................................................................................................*............................................................................... + xor x6, x1, x6 // .................................................................................................................................................................................................................................................................................*............................................................................... + vxor.vv v9, v9, v30 // ..................................................................................................................................................................................................................................................................................*.............................................................................. + andn x3, x27, x7 // ..................................................................................................................................................................................................................................................................................*.............................................................................. + xor x29, x3, x29 // ...................................................................................................................................................................................................................................................................................*............................................................................. + lw x1, 15*8(x10) // ...................................................................................................................................................................................................................................................................................*............................................................................. + xor x28, x22, x28 // ....................................................................................................................................................................................................................................................................................*............................................................................ + lw x22, 15*8+4(x10) // ....................................................................................................................................................................................................................................................................................*............................................................................ + xor x24, x4, x24 // .....................................................................................................................................................................................................................................................................................*........................................................................... + andn x3, x31, x1 // .....................................................................................................................................................................................................................................................................................*........................................................................... + lw x4, 24*8(x10) // ......................................................................................................................................................................................................................................................................................*.......................................................................... + xor x3, x3, x26 // ......................................................................................................................................................................................................................................................................................*.......................................................................... + sw x3, 19*8(x10) // .......................................................................................................................................................................................................................................................................................*......................................................................... + andn x3, x1, x26 // .......................................................................................................................................................................................................................................................................................*......................................................................... + xor x3, x3, x4 // ........................................................................................................................................................................................................................................................................................*........................................................................ + vxor.vv v11, v16, v11 // ........................................................................................................................................................................................................................................................................................*........................................................................ + sw x3, 18*8(x10) // .........................................................................................................................................................................................................................................................................................*....................................................................... + andn x3, x9, x31 // .........................................................................................................................................................................................................................................................................................*....................................................................... + sw x24, 11*8+4(x10) // ..........................................................................................................................................................................................................................................................................................*...................................................................... + vxor.vv v12, v12, v10 // ..........................................................................................................................................................................................................................................................................................*...................................................................... + lw x24, 20*8+4(x10) // ...........................................................................................................................................................................................................................................................................................*..................................................................... + xor x1, x3, x1 // ...........................................................................................................................................................................................................................................................................................*..................................................................... + andn x3, x25, x27 // ............................................................................................................................................................................................................................................................................................*.................................................................... + lw x27, 24*8+4(x10) // ............................................................................................................................................................................................................................................................................................*.................................................................... + andn x25, x8, x30 // .............................................................................................................................................................................................................................................................................................*................................................................... + xor x7, x3, x7 // .............................................................................................................................................................................................................................................................................................*................................................................... + andn x3, x4, x9 // ..............................................................................................................................................................................................................................................................................................*.................................................................. + vnot.v v30, v18 // ..............................................................................................................................................................................................................................................................................................*.................................................................. + vand.vv v16, v15, v16 // ...............................................................................................................................................................................................................................................................................................*................................................................. + xor x25, x25, x22 // ...............................................................................................................................................................................................................................................................................................*................................................................. + xor x31, x3, x31 // ................................................................................................................................................................................................................................................................................................*................................................................ + sw x23, 11*8(x10) // ................................................................................................................................................................................................................................................................................................*................................................................ + andn x23, x30, x22 // .................................................................................................................................................................................................................................................................................................*............................................................... + vor.vv v13, v14, v15 // .................................................................................................................................................................................................................................................................................................*............................................................... + vand.vv v10, v19, v20 // ..................................................................................................................................................................................................................................................................................................*.............................................................. + sw x1, 15*8(x10) // ..................................................................................................................................................................................................................................................................................................*.............................................................. + andn x1, x24, x27 // ...................................................................................................................................................................................................................................................................................................*............................................................. + vxor.vv v14, v14, v16 // ...................................................................................................................................................................................................................................................................................................*............................................................. + andn x22, x22, x24 // ....................................................................................................................................................................................................................................................................................................*............................................................ + vnot.v v28, v18 // ....................................................................................................................................................................................................................................................................................................*............................................................ + vxor.vv v13, v27, v13 // .....................................................................................................................................................................................................................................................................................................*........................................................... + xor x23, x23, x24 // .....................................................................................................................................................................................................................................................................................................*........................................................... + vor.vv v16, v17, v18 // ......................................................................................................................................................................................................................................................................................................*.......................................................... + xor x22, x22, x27 // ......................................................................................................................................................................................................................................................................................................*.......................................................... + vor.vv v18, v30, v19 // .......................................................................................................................................................................................................................................................................................................*......................................................... + sw x22, 18*8+4(x10) // .......................................................................................................................................................................................................................................................................................................*......................................................... + sw x23, 19*8+4(x10) // ........................................................................................................................................................................................................................................................................................................*........................................................ + andn x27, x27, x8 // ........................................................................................................................................................................................................................................................................................................*........................................................ + xor x30, x27, x30 // .........................................................................................................................................................................................................................................................................................................*....................................................... + lw x22, 0*8(x10) // .........................................................................................................................................................................................................................................................................................................*....................................................... + andn x3, x26, x4 // ..........................................................................................................................................................................................................................................................................................................*...................................................... + lw x24, 0*8+4(x10) // ..........................................................................................................................................................................................................................................................................................................*...................................................... + vxor.vv v17, v17, v18 // ...........................................................................................................................................................................................................................................................................................................*..................................................... + xor x8, x8, x1 // ...........................................................................................................................................................................................................................................................................................................*..................................................... + vxor.vv v18, v28, v10 // ............................................................................................................................................................................................................................................................................................................*.................................................... + lw x26, 1*8(x10) // ............................................................................................................................................................................................................................................................................................................*.................................................... + xor x9, x9, x3 // .............................................................................................................................................................................................................................................................................................................*................................................... + lw x23, 1*8+4(x10) // .............................................................................................................................................................................................................................................................................................................*................................................... + andn x3, x19, x26 // ..............................................................................................................................................................................................................................................................................................................*.................................................. + lw x1, 22*8(x10) // ..............................................................................................................................................................................................................................................................................................................*.................................................. + andn x27, x18, x23 // ...............................................................................................................................................................................................................................................................................................................*................................................. + lw x4, 22*8+4(x10) // ...............................................................................................................................................................................................................................................................................................................*................................................. + xor x3, x3, x22 // ................................................................................................................................................................................................................................................................................................................*................................................ + vor.vv v27, v24, v0 // ................................................................................................................................................................................................................................................................................................................*................................................ + sw x3, 24*8(x10) // .................................................................................................................................................................................................................................................................................................................*............................................... + andn x3, x1, x19 // .................................................................................................................................................................................................................................................................................................................*............................................... + sw x25, 15*8+4(x10) // ..................................................................................................................................................................................................................................................................................................................*.............................................. + xor x27, x27, x24 // ..................................................................................................................................................................................................................................................................................................................*.............................................. + andn x25, x20, x4 // ...................................................................................................................................................................................................................................................................................................................*............................................. + sw x27, 24*8+4(x10) // ...................................................................................................................................................................................................................................................................................................................*............................................. + andn x27, x4, x18 // ....................................................................................................................................................................................................................................................................................................................*............................................ + xor x18, x25, x18 // ....................................................................................................................................................................................................................................................................................................................*............................................ + andn x25, x24, x20 // .....................................................................................................................................................................................................................................................................................................................*........................................... + xor x3, x3, x26 // .....................................................................................................................................................................................................................................................................................................................*........................................... + xor x27, x27, x23 // ......................................................................................................................................................................................................................................................................................................................*.......................................... + sw x3, 20*8(x10) // ......................................................................................................................................................................................................................................................................................................................*.......................................... + sw x27, 20*8+4(x10) // .......................................................................................................................................................................................................................................................................................................................*......................................... + vxor.vv v10, v15, v31 // .......................................................................................................................................................................................................................................................................................................................*......................................... + andn x3, x21, x1 // ........................................................................................................................................................................................................................................................................................................................*........................................ + vor.vv v31, v22, v23 // ........................................................................................................................................................................................................................................................................................................................*........................................ + vand.vv v28, v0, v1 // .........................................................................................................................................................................................................................................................................................................................*....................................... + xor x19, x3, x19 // .........................................................................................................................................................................................................................................................................................................................*....................................... + andn x3, x22, x21 // ..........................................................................................................................................................................................................................................................................................................................*...................................... + vxor.vv v16, v21, v16 // ..........................................................................................................................................................................................................................................................................................................................*...................................... + lw x27, 17*4(x2) // ...........................................................................................................................................................................................................................................................................................................................*..................................... + xor x1, x3, x1 // ...........................................................................................................................................................................................................................................................................................................................*..................................... + andn x3, x26, x22 // ............................................................................................................................................................................................................................................................................................................................*.................................... + vor.vv v15, v20, v21 // ............................................................................................................................................................................................................................................................................................................................*.................................... + xor x25, x25, x4 // .............................................................................................................................................................................................................................................................................................................................*................................... + lw x4, 0(x27) // .............................................................................................................................................................................................................................................................................................................................*................................... + sw x1, 22*8(x10) // ..............................................................................................................................................................................................................................................................................................................................*.................................. + vor.vv v30, v26, v2 // ..............................................................................................................................................................................................................................................................................................................................*.................................. + sw x25, 22*8+4(x10) // ...............................................................................................................................................................................................................................................................................................................................*................................. + xor x21, x21, x3 // ...............................................................................................................................................................................................................................................................................................................................*................................. + lw x22, 20*4(x2) // ................................................................................................................................................................................................................................................................................................................................*................................ + vnot.v v21, v1 // ................................................................................................................................................................................................................................................................................................................................*................................ + lw x26, 19*4(x2) // .................................................................................................................................................................................................................................................................................................................................*............................... + vxor.vv v19, v19, v15 // .................................................................................................................................................................................................................................................................................................................................*............................... + lw x25, 4(x27) // ..................................................................................................................................................................................................................................................................................................................................*.............................. + addi x1, x27, 8 // ..................................................................................................................................................................................................................................................................................................................................*.............................. + andn x3, x12, x22 // ...................................................................................................................................................................................................................................................................................................................................*............................. + vxor.vv v15, v20, v29 // ...................................................................................................................................................................................................................................................................................................................................*............................. + vand.vv v20, v21, v22 // ....................................................................................................................................................................................................................................................................................................................................*............................ + andn x27, x23, x24 // ....................................................................................................................................................................................................................................................................................................................................*............................ + lw x24, 21*4(x2) // .....................................................................................................................................................................................................................................................................................................................................*........................... + vand.vv v21, v23, v24 // .....................................................................................................................................................................................................................................................................................................................................*........................... + lw x23, 18*4(x2) // ......................................................................................................................................................................................................................................................................................................................................*.......................... + vnot.v v29, v1 // ......................................................................................................................................................................................................................................................................................................................................*.......................... + sw x1, 17*4(x2) // .......................................................................................................................................................................................................................................................................................................................................*......................... + andn x1, x11, x24 // .......................................................................................................................................................................................................................................................................................................................................*......................... + xor x3, x3, x23 // ........................................................................................................................................................................................................................................................................................................................................*........................ + vxor.vv v20, v0, v20 // ........................................................................................................................................................................................................................................................................................................................................*........................ + xor x1, x1, x26 // .........................................................................................................................................................................................................................................................................................................................................*....................... + vxor.vv v24, v24, v28 // .........................................................................................................................................................................................................................................................................................................................................*....................... + vxor.vv v22, v22, v21 // ..........................................................................................................................................................................................................................................................................................................................................*...................... + xor x1, x1, x25 // ..........................................................................................................................................................................................................................................................................................................................................*...................... + xor x3, x3, x4 // ...........................................................................................................................................................................................................................................................................................................................................*..................... + vxor.vv v21, v29, v31 // ...........................................................................................................................................................................................................................................................................................................................................*..................... + xor x20, x20, x27 // ............................................................................................................................................................................................................................................................................................................................................*.................... + lw x4, 3*8(x10) // ............................................................................................................................................................................................................................................................................................................................................*.................... + vxor.vv v23, v23, v27 // .............................................................................................................................................................................................................................................................................................................................................*................... + lw x25, 3*8+4(x10) // .............................................................................................................................................................................................................................................................................................................................................*................... + vxor.vv v0, v25, v30 // ..............................................................................................................................................................................................................................................................................................................................................*.................. + sw x3, 0*8(x10) // ..............................................................................................................................................................................................................................................................................................................................................*.................. + vnot.v v29, v2 // ...............................................................................................................................................................................................................................................................................................................................................*................. + sw x1, 0*8+4(x10) // ...............................................................................................................................................................................................................................................................................................................................................*................. + vor.vv v1, v4, v25 // ................................................................................................................................................................................................................................................................................................................................................*................ + andn x3, x4, x12 // ................................................................................................................................................................................................................................................................................................................................................*................ + andn x1, x25, x11 // .................................................................................................................................................................................................................................................................................................................................................*............... + xor x3, x3, x22 // .................................................................................................................................................................................................................................................................................................................................................*............... + xor x1, x1, x24 // ..................................................................................................................................................................................................................................................................................................................................................*.............. + sw x3, 1*8(x10) // ..................................................................................................................................................................................................................................................................................................................................................*.............. + vand.vv v27, v3, v4 // ...................................................................................................................................................................................................................................................................................................................................................*............. + sw x1, 1*8+4(x10) // ...................................................................................................................................................................................................................................................................................................................................................*............. + vand.vv v25, v25, v26 // ....................................................................................................................................................................................................................................................................................................................................................*............ + lw x27, 28*4(x2) // ....................................................................................................................................................................................................................................................................................................................................................*............ + andn x3, x23, x14 // .....................................................................................................................................................................................................................................................................................................................................................*........... + vor.vv v31, v29, v3 // .....................................................................................................................................................................................................................................................................................................................................................*........... + andn x1, x26, x13 // ......................................................................................................................................................................................................................................................................................................................................................*.......... + vle64.v v29, (x27) // ......................................................................................................................................................................................................................................................................................................................................................*.......... + xor x3, x3, x4 // .......................................................................................................................................................................................................................................................................................................................................................*......... + xor x1, x1, x25 // .......................................................................................................................................................................................................................................................................................................................................................*......... + sw x3, 3*8(x10) // ........................................................................................................................................................................................................................................................................................................................................................*........ + vxor.vv v2, v2, v27 // ........................................................................................................................................................................................................................................................................................................................................................*........ + sw x1, 3*8+4(x10) // .........................................................................................................................................................................................................................................................................................................................................................*....... + andn x3, x14, x4 // .........................................................................................................................................................................................................................................................................................................................................................*....... + addi x27, x27, 16 // ..........................................................................................................................................................................................................................................................................................................................................................*...... + andn x1, x13, x25 // ..........................................................................................................................................................................................................................................................................................................................................................*...... + vxor.vv v3, v3, v1 // ...........................................................................................................................................................................................................................................................................................................................................................*..... + xor x12, x3, x12 // ...........................................................................................................................................................................................................................................................................................................................................................*..... + sw x27, 28*4(x2) // ............................................................................................................................................................................................................................................................................................................................................................*.... + xor x11, x1, x11 // ............................................................................................................................................................................................................................................................................................................................................................*.... + vxor.vv v1, v26, v31 // .............................................................................................................................................................................................................................................................................................................................................................*... + andn x3, x22, x23 // .............................................................................................................................................................................................................................................................................................................................................................*... + andn x1, x24, x26 // ..............................................................................................................................................................................................................................................................................................................................................................*.. + vxor.vv v4, v4, v25 // ..............................................................................................................................................................................................................................................................................................................................................................*.. + xor x14, x3, x14 // ...............................................................................................................................................................................................................................................................................................................................................................*. + xor x13, x1, x13 // ...............................................................................................................................................................................................................................................................................................................................................................*. + vxor.vv v0, v0, v29 // ................................................................................................................................................................................................................................................................................................................................................................* + lw x4, 16*4(x2) // ................................................................................................................................................................................................................................................................................................................................................................* + + addi a0, a0, -25*16 + StoreStates_v + StoreStates_s a1, a2, a3, a4, a5, a6, a7, t0, t1, t2, t3, t4, t5, t6, s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10,s11,ra, gp, tp + + RestoreRegs + addi sp, sp, 4*29 + ret diff --git a/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_acc_cache_init_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_acc_cache_init_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..fd258c11a --- /dev/null +++ b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_acc_cache_init_rvv_vlen128_opt_c908.s @@ -0,0 +1,504 @@ +#define _ZETAS_BASEMUL 320 + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +// void poly_basemul_acc_cache_init_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_acc_cache_init_rvv_vlen128_opt_c908 +.align 2 +poly_basemul_acc_cache_init_rvv_vlen128_opt_c908: + addi sp, sp, -8*15 + save_regs + li a7, 32 + li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add a3, a3, t3 + add t3, a6, a7 + addi t2, a1, 256*2 +poly_basemul_acc_cache_init_rvv_vlen128_loop: + // Instructions: 201 + // Expected cycles: 160 + // Expected IPC: 1.26 + // + // Cycle bound: 160.0 + // IPC bound: 1.26 + // + // Wall time: 88.93s + // User time: 88.93s + // + // ---------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------> + // 0 25 50 75 100 125 150 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|--------- + vle16.v v30, (x11) // *............................................................................................................................................................... + addi x20, x11, 32 // .*.............................................................................................................................................................. + add x22, x12, x17 // .*.............................................................................................................................................................. + addi x18, x20, 32 // ..*............................................................................................................................................................. + vle16.v v17, (x22) // ..*............................................................................................................................................................. + addi x23, x18, 32 // ...*............................................................................................................................................................ + add x11, x22, x17 // ...*............................................................................................................................................................ + vle16.v v10, (x18) // ....*........................................................................................................................................................... + add x9, x11, x17 // ....*........................................................................................................................................................... + vmul.vv v14, v30, v17 // .....*.......................................................................................................................................................... + addi x19, x23, 32 // ......*......................................................................................................................................................... + vle16.v v27, (x9) // ......*......................................................................................................................................................... + add x29, x9, x17 // .......*........................................................................................................................................................ + vmulh.vv v19, v30, v17 // .......*........................................................................................................................................................ + vle16.v v3, (x19) // ........*....................................................................................................................................................... + addi x22, x19, 32 // ........*....................................................................................................................................................... + add x4, x29, x17 // .........*...................................................................................................................................................... + vmul.vv v23, v10, v27 // .........*...................................................................................................................................................... + vle16.v v7, (x4) // ..........*..................................................................................................................................................... + addi x15, x22, 32 // ..........*..................................................................................................................................................... + add x31, x4, x17 // ...........*.................................................................................................................................................... + vmul.vx v20, v14, x6 // ...........*.................................................................................................................................................... + vle16.v v1, (x15) // ............*................................................................................................................................................... + add x8, x31, x17 // ............*................................................................................................................................................... + vmul.vv v12, v3, v7 // .............*.................................................................................................................................................. + vle16.v v0, (x8) // ..............*................................................................................................................................................. + vmul.vx v22, v23, x6 // ...............*................................................................................................................................................ + vle16.v v8, (x12) // .................*.............................................................................................................................................. + vmul.vv v5, v1, v0 // .................*.............................................................................................................................................. + vle16.v v14, (x20) // ...................*............................................................................................................................................ + vmul.vx v29, v12, x6 // ...................*............................................................................................................................................ + vle16.v v25, (x11) // .....................*.......................................................................................................................................... + vmul.vx v24, v5, x6 // .....................*.......................................................................................................................................... + vle16.v v5, (x23) // .......................*........................................................................................................................................ + vmulh.vv v4, v10, v27 // .......................*........................................................................................................................................ + vle16.v v9, (x29) // .........................*...................................................................................................................................... + vmulh.vv v18, v3, v7 // .........................*...................................................................................................................................... + vle16.v v31, (x22) // ...........................*.................................................................................................................................... + vmulh.vv v15, v1, v0 // ...........................*.................................................................................................................................... + vle16.v v6, (x31) // .............................*.................................................................................................................................. + vmulh.vx v12, v20, x5 // .............................*.................................................................................................................................. + addi x29, x15, 32 // ..............................*................................................................................................................................. + vle16.v v23, (x29) // ...............................*................................................................................................................................ + vmulh.vx v16, v22, x5 // ...............................*................................................................................................................................ + vmulh.vx v26, v29, x5 // .................................*.............................................................................................................................. + vsub.vv v21, v19, v12 // .................................*.............................................................................................................................. + vsub.vv v19, v4, v16 // ...................................*............................................................................................................................ + vmulh.vx v24, v24, x5 // ...................................*............................................................................................................................ + vsub.vv v29, v18, v26 // .....................................*.......................................................................................................................... + vmul.vv v18, v31, v9 // .....................................*.......................................................................................................................... + vsub.vv v11, v15, v24 // .......................................*........................................................................................................................ + vmul.vv v12, v23, v6 // .......................................*........................................................................................................................ + vmul.vv v28, v14, v8 // .........................................*...................................................................................................................... + vmul.vx v18, v18, x6 // .........................................*...................................................................................................................... + vmul.vv v24, v5, v25 // ...........................................*.................................................................................................................... + vmul.vx v26, v12, x6 // ...........................................*.................................................................................................................... + vmulh.vv v20, v14, v8 // .............................................*.................................................................................................................. + vmul.vx v28, v28, x6 // .............................................*.................................................................................................................. + vmul.vx v4, v24, x6 // ...............................................*................................................................................................................ + vmulh.vx v22, v18, x5 // ...............................................*................................................................................................................ + vmulh.vv v15, v5, v25 // .................................................*.............................................................................................................. + vmulh.vx v12, v28, x5 // .................................................*.............................................................................................................. + vmulh.vv v28, v31, v9 // ...................................................*............................................................................................................ + vmulh.vx v2, v4, x5 // ...................................................*............................................................................................................ + vmulh.vv v18, v23, v6 // .....................................................*.......................................................................................................... + vsub.vv v20, v20, v12 // .....................................................*.......................................................................................................... + vmulh.vx v12, v26, x5 // .......................................................*........................................................................................................ + vsub.vv v26, v15, v2 // .......................................................*........................................................................................................ + add x12, x10, x17 // ........................................................*....................................................................................................... + vsub.vv v4, v28, v22 // .........................................................*...................................................................................................... + vle16.v v16, (x12) // .........................................................*...................................................................................................... + add x18, x10, x28 // ..........................................................*..................................................................................................... + vsub.vv v2, v18, v12 // ...........................................................*.................................................................................................... + vle16.v v12, (x18) // ...........................................................*.................................................................................................... + add x26, x18, x30 // ............................................................*................................................................................................... + add x22, x12, x30 // ............................................................*................................................................................................... + vle16.v v13, (x22) // .............................................................*.................................................................................................. + vadd.vv v22, v21, v20 // .............................................................*.................................................................................................. + vle16.v v20, (x26) // ...............................................................*................................................................................................ + vadd.vv v15, v19, v26 // ...............................................................*................................................................................................ + vadd.vv v28, v29, v4 // .................................................................*.............................................................................................. + vadd.vv v22, v22, v16 // .................................................................*.............................................................................................. + vadd.vv v18, v11, v2 // ...................................................................*............................................................................................ + vadd.vv v15, v15, v12 // ...................................................................*............................................................................................ + vadd.vv v28, v28, v13 // .....................................................................*.......................................................................................... + vmul.vv v12, v30, v8 // .....................................................................*.......................................................................................... + add x4, x10, x28 // ......................................................................*......................................................................................... + vadd.vv v29, v18, v20 // .......................................................................*........................................................................................ + vse16.v v15, (x4) // .......................................................................*........................................................................................ + vmul.vv v20, v3, v9 // .........................................................................*...................................................................................... + vmul.vv v19, v10, v25 // .........................................................................*...................................................................................... + add x11, x10, x17 // ..........................................................................*..................................................................................... + vse16.v v22, (x11) // ...........................................................................*.................................................................................... + vmul.vx v12, v12, x6 // ...........................................................................*.................................................................................... + add x12, x13, x17 // ............................................................................*................................................................................... + vmul.vx v21, v20, x6 // .............................................................................*.................................................................................. + vmul.vx v11, v19, x6 // .............................................................................*.................................................................................. + addi x18, x13, 0 // ..............................................................................*................................................................................. + vle16.v v4, (x12) // ...............................................................................*................................................................................ + vmulh.vv v15, v30, v8 // ...............................................................................*................................................................................ + add x22, x18, x16 // ................................................................................*............................................................................... + vmulh.vx v18, v21, x5 // .................................................................................*.............................................................................. + vle16.v v16, (x22) // .................................................................................*.............................................................................. + vmulh.vv v8, v10, v25 // ...................................................................................*............................................................................ + vmul.vv v22, v1, v6 // ...................................................................................*............................................................................ + vmul.vv v19, v7, v16 // .....................................................................................*.......................................................................... + vmulh.vv v25, v3, v9 // .....................................................................................*.......................................................................... + vmulh.vv v26, v1, v6 // .......................................................................................*........................................................................ + vmul.vx v9, v22, x6 // .......................................................................................*........................................................................ + vsub.vv v3, v25, v18 // .........................................................................................*...................................................................... + vmul.vx v25, v19, x6 // .........................................................................................*...................................................................... + vmulh.vx v20, v9, x5 // ...........................................................................................*.................................................................... + vmulh.vx v9, v12, x5 // ...........................................................................................*.................................................................... + vmulh.vx v10, v25, x5 // .............................................................................................*.................................................................. + vmulh.vv v19, v7, v16 // .............................................................................................*.................................................................. + vsub.vv v25, v15, v9 // ...............................................................................................*................................................................ + vmulh.vx v9, v11, x5 // ...............................................................................................*................................................................ + add x31, x12, x16 // ................................................................................................*............................................................... + vsub.vv v1, v19, v10 // .................................................................................................*.............................................................. + vle16.v v2, (x31) // .................................................................................................*.............................................................. + vmul.vv v7, v27, v4 // ...................................................................................................*............................................................ + vsub.vv v22, v8, v9 // ...................................................................................................*............................................................ + vmulh.vv v10, v31, v1 // .....................................................................................................*.......................................................... + vmul.vv v9, v31, v1 // .....................................................................................................*.......................................................... + add x12, x4, x30 // ......................................................................................................*......................................................... + vmulh.vv v31, v0, v2 // .......................................................................................................*........................................................ + vmul.vx v19, v7, x6 // .......................................................................................................*........................................................ + add x24, x11, x30 // ........................................................................................................*....................................................... + vmul.vv v24, v0, v2 // .........................................................................................................*...................................................... + vse16.v v28, (x24) // .........................................................................................................*...................................................... + vmulh.vx v8, v19, x5 // ...........................................................................................................*.................................................... + vse16.v v29, (x12) // ...........................................................................................................*.................................................... + vmulh.vv v6, v27, v4 // .............................................................................................................*.................................................. + vmul.vx v0, v24, x6 // .............................................................................................................*.................................................. + vle16.v v7, (x18) // ...............................................................................................................*................................................ + vmul.vx v16, v9, x6 // ...............................................................................................................*................................................ + vmulh.vx v27, v0, x5 // .................................................................................................................*.............................................. + vsub.vv v30, v6, v8 // .................................................................................................................*.............................................. + vmulh.vx v16, v16, x5 // ...................................................................................................................*............................................ + vmul.vv v8, v17, v7 // ...................................................................................................................*............................................ + vsub.vv v27, v31, v27 // .....................................................................................................................*.......................................... + vmulh.vv v7, v17, v7 // .....................................................................................................................*.......................................... + vmul.vv v15, v5, v30 // .......................................................................................................................*........................................ + vmul.vx v2, v8, x6 // .......................................................................................................................*........................................ + add x31, x14, x17 // ........................................................................................................................*....................................... + vmulh.vv v17, v23, v27 // .........................................................................................................................*...................................... + vmul.vv v9, v23, v27 // .........................................................................................................................*...................................... + add x1, x31, x16 // ..........................................................................................................................*..................................... + vse16.v v27, (x1) // ...........................................................................................................................*.................................... + vmulh.vx v8, v2, x5 // ...........................................................................................................................*.................................... + vmul.vx v4, v9, x6 // .............................................................................................................................*.................................. + vmul.vx v12, v15, x6 // .............................................................................................................................*.................................. + vsub.vv v9, v26, v20 // ...............................................................................................................................*................................ + vsub.vv v31, v7, v8 // ...............................................................................................................................*................................ + vmulh.vx v13, v12, x5 // .................................................................................................................................*.............................. + vse16.v v30, (x31) // .................................................................................................................................*.............................. + addi x22, x14, 0*0 // ..................................................................................................................................*............................. + vmulh.vx v2, v4, x5 // ...................................................................................................................................*............................ + vmul.vv v27, v14, v31 // ...................................................................................................................................*............................ + add x23, x22, x16 // ....................................................................................................................................*........................... + vmulh.vv v21, v5, v30 // .....................................................................................................................................*.......................... + vse16.v v1, (x23) // .....................................................................................................................................*.......................... + vsub.vv v8, v10, v16 // .......................................................................................................................................*........................ + vmul.vx v10, v27, x6 // .......................................................................................................................................*........................ + add x19, x10, x30 // ........................................................................................................................................*....................... + vsub.vv v20, v17, v2 // .........................................................................................................................................*...................... + vmulh.vv v27, v14, v31 // .........................................................................................................................................*...................... + vadd.vv v16, v3, v8 // ...........................................................................................................................................*.................... + vmulh.vx v14, v10, x5 // ...........................................................................................................................................*.................... + vsub.vv v8, v21, v13 // .............................................................................................................................................*.................. + vse16.v v31, (x22) // .............................................................................................................................................*.................. + addi x1, x10, 0*2 // ..............................................................................................................................................*................. + vle16.v v10, (x1) // ...............................................................................................................................................*................ + vsub.vv v5, v27, v14 // ...............................................................................................................................................*................ + add x12, x1, x30 // ................................................................................................................................................*............... + add x4, x10, x16 // ................................................................................................................................................*............... + vadd.vv v31, v22, v8 // .................................................................................................................................................*.............. + vle16.v v24, (x4) // .................................................................................................................................................*.............. + add x22, x4, x30 // ..................................................................................................................................................*............. + vadd.vv v8, v25, v5 // ...................................................................................................................................................*............ + vle16.v v30, (x12) // ...................................................................................................................................................*............ + add x13, x13, x30 // ....................................................................................................................................................*........... + vadd.vv v14, v31, v24 // .....................................................................................................................................................*.......... + vle16.v v17, (x22) // .....................................................................................................................................................*.......... + add x22, x10, x16 // ......................................................................................................................................................*......... + addi x23, x10, 0 // ......................................................................................................................................................*......... + vadd.vv v10, v8, v10 // .......................................................................................................................................................*........ + vadd.vv v28, v9, v20 // .......................................................................................................................................................*........ + add x9, x23, x30 // ........................................................................................................................................................*....... + vse16.v v14, (x22) // .........................................................................................................................................................*...... + vadd.vv v30, v16, v30 // .........................................................................................................................................................*...... + add x14, x14, x30 // ..........................................................................................................................................................*..... + vse16.v v10, (x23) // ...........................................................................................................................................................*.... + vadd.vv v8, v28, v17 // ...........................................................................................................................................................*.... + add x10, x19, x30 // ............................................................................................................................................................*... + vse16.v v30, (x9) // .............................................................................................................................................................*.. + addi x11, x29, 32 // .............................................................................................................................................................*.. + add x12, x8, x17 // ..............................................................................................................................................................*. + add x22, x22, x30 // ..............................................................................................................................................................*. + vse16.v v8, (x22) // ...............................................................................................................................................................* + bltu x11, x7, poly_basemul_acc_cache_init_rvv_vlen128_loop // ...............................................................................................................................................................* // @slothy:branch + + // ---------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------> + // 0 25 50 75 100 125 150 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|--------- + // vle16.v v0, (x11) // *............................................................................................................................................................... + // vle16.v v8, (x12) // .................*.............................................................................................................................................. + // addi x11, x11, 32 // .*.............................................................................................................................................................. + // add x12, x12, x17 // .*.............................................................................................................................................................. + // vle16.v v4, (x11) // ...................*............................................................................................................................................ + // vle16.v v12, (x12) // ..*............................................................................................................................................................. + // addi x11, x11, 32 // ..*............................................................................................................................................................. + // add x12, x12, x17 // ...*............................................................................................................................................................ + // vle16.v v1, (x11) // ....*........................................................................................................................................................... + // vle16.v v9, (x12) // .....................*.......................................................................................................................................... + // addi x11, x11, 32 // ...*............................................................................................................................................................ + // add x12, x12, x17 // ....*........................................................................................................................................................... + // vle16.v v5, (x11) // .......................*........................................................................................................................................ + // vle16.v v13, (x12) // ......*......................................................................................................................................................... + // addi x11, x11, 32 // ......*......................................................................................................................................................... + // add x12, x12, x17 // .......*........................................................................................................................................................ + // vle16.v v2, (x11) // ........*....................................................................................................................................................... + // vle16.v v10, (x12) // .........................*...................................................................................................................................... + // addi x11, x11, 32 // ........*....................................................................................................................................................... + // add x12, x12, x17 // .........*...................................................................................................................................................... + // vle16.v v6, (x11) // ...........................*.................................................................................................................................... + // vle16.v v14, (x12) // ..........*..................................................................................................................................................... + // addi x11, x11, 32 // ..........*..................................................................................................................................................... + // add x12, x12, x17 // ...........*.................................................................................................................................................... + // vle16.v v3, (x11) // ............*................................................................................................................................................... + // vle16.v v11, (x12) // .............................*.................................................................................................................................. + // addi x11, x11, 32 // ..............................*................................................................................................................................. + // add x12, x12, x17 // ............*................................................................................................................................................... + // vle16.v v7, (x11) // ...............................*................................................................................................................................ + // vle16.v v15, (x12) // ..............*................................................................................................................................................. + // addi x11, x11, 32 // .............................................................................................................................................................*.. + // add x12, x12, x17 // ..............................................................................................................................................................*. + // vmul.vv v16, v0, v12 // .....*.......................................................................................................................................................... + // vmul.vv v17, v1, v13 // .........*...................................................................................................................................................... + // vmul.vv v18, v2, v14 // .............*.................................................................................................................................................. + // vmul.vv v19, v3, v15 // .................*.............................................................................................................................................. + // vmul.vx v16, v16, x6 // ...........*.................................................................................................................................................... + // vmul.vx v17, v17, x6 // ...............*................................................................................................................................................ + // vmul.vx v18, v18, x6 // ...................*............................................................................................................................................ + // vmul.vx v19, v19, x6 // .....................*.......................................................................................................................................... + // vmulh.vv v24, v0, v12 // .......*........................................................................................................................................................ + // vmulh.vv v25, v1, v13 // .......................*........................................................................................................................................ + // vmulh.vv v26, v2, v14 // .........................*...................................................................................................................................... + // vmulh.vv v27, v3, v15 // ...........................*.................................................................................................................................... + // vmulh.vx v16, v16, x5 // .............................*.................................................................................................................................. + // vmulh.vx v17, v17, x5 // ...............................*................................................................................................................................ + // vmulh.vx v18, v18, x5 // .................................*.............................................................................................................................. + // vmulh.vx v19, v19, x5 // ...................................*............................................................................................................................ + // vsub.vv v16, v24, v16 // .................................*.............................................................................................................................. + // vsub.vv v17, v25, v17 // ...................................*............................................................................................................................ + // vsub.vv v18, v26, v18 // .....................................*.......................................................................................................................... + // vsub.vv v19, v27, v19 // .......................................*........................................................................................................................ + // vmul.vv v20, v4, v8 // .........................................*...................................................................................................................... + // vmul.vv v21, v5, v9 // ...........................................*.................................................................................................................... + // vmul.vv v22, v6, v10 // .....................................*.......................................................................................................................... + // vmul.vv v23, v7, v11 // .......................................*........................................................................................................................ + // vmul.vx v20, v20, x6 // .............................................*.................................................................................................................. + // vmul.vx v21, v21, x6 // ...............................................*................................................................................................................ + // vmul.vx v22, v22, x6 // .........................................*...................................................................................................................... + // vmul.vx v23, v23, x6 // ...........................................*.................................................................................................................... + // vmulh.vv v24, v4, v8 // .............................................*.................................................................................................................. + // vmulh.vv v25, v5, v9 // .................................................*.............................................................................................................. + // vmulh.vv v26, v6, v10 // ...................................................*............................................................................................................ + // vmulh.vv v27, v7, v11 // .....................................................*.......................................................................................................... + // vmulh.vx v20, v20, x5 // .................................................*.............................................................................................................. + // vmulh.vx v21, v21, x5 // ...................................................*............................................................................................................ + // vmulh.vx v22, v22, x5 // ...............................................*................................................................................................................ + // vmulh.vx v23, v23, x5 // .......................................................*........................................................................................................ + // vsub.vv v20, v24, v20 // .....................................................*.......................................................................................................... + // vsub.vv v21, v25, v21 // .......................................................*........................................................................................................ + // vsub.vv v22, v26, v22 // .........................................................*...................................................................................................... + // vsub.vv v23, v27, v23 // ...........................................................*.................................................................................................... + // add x29, x10, x17 // ........................................................*....................................................................................................... + // add x15, x10, x28 // ..........................................................*..................................................................................................... + // vle16.v v24, (x29) // .........................................................*...................................................................................................... + // vle16.v v25, (x15) // ...........................................................*.................................................................................................... + // add x29, x29, x30 // ............................................................*................................................................................................... + // add x15, x15, x30 // ............................................................*................................................................................................... + // vle16.v v26, (x29) // .............................................................*.................................................................................................. + // vle16.v v27, (x15) // ...............................................................*................................................................................................ + // vadd.vv v16, v16, v20 // .............................................................*.................................................................................................. + // vadd.vv v17, v17, v21 // ...............................................................*................................................................................................ + // vadd.vv v18, v18, v22 // .................................................................*.............................................................................................. + // vadd.vv v19, v19, v23 // ...................................................................*............................................................................................ + // vadd.vv v16, v16, v24 // .................................................................*.............................................................................................. + // vadd.vv v17, v17, v25 // ...................................................................*............................................................................................ + // vadd.vv v18, v18, v26 // .....................................................................*.......................................................................................... + // vadd.vv v19, v19, v27 // .......................................................................*........................................................................................ + // add x29, x10, x17 // ..........................................................................*..................................................................................... + // add x15, x10, x28 // ......................................................................*......................................................................................... + // vse16.v v16, (x29) // ...........................................................................*.................................................................................... + // vse16.v v17, (x15) // .......................................................................*........................................................................................ + // add x29, x29, x30 // ........................................................................................................*....................................................... + // add x15, x15, x30 // ......................................................................................................*......................................................... + // vse16.v v18, (x29) // .........................................................................................................*...................................................... + // vse16.v v19, (x15) // ...........................................................................................................*.................................................... + // addi x29, x13, 0 // ..............................................................................*................................................................................. + // add x15, x13, x17 // ............................................................................*................................................................................... + // vle16.v v16, (x29) // ...............................................................................................................*................................................ + // vle16.v v17, (x15) // ...............................................................................*................................................................................ + // add x29, x29, x16 // ................................................................................*............................................................................... + // add x15, x15, x16 // ................................................................................................*............................................................... + // vle16.v v18, (x29) // .................................................................................*.............................................................................. + // vle16.v v19, (x15) // .................................................................................................*.............................................................. + // vmul.vv v20, v0, v8 // .....................................................................*.......................................................................................... + // vmul.vv v21, v1, v9 // .........................................................................*...................................................................................... + // vmul.vv v22, v2, v10 // .........................................................................*...................................................................................... + // vmul.vv v23, v3, v11 // ...................................................................................*............................................................................ + // vmul.vx v20, v20, x6 // ...........................................................................*.................................................................................... + // vmul.vx v21, v21, x6 // .............................................................................*.................................................................................. + // vmul.vx v22, v22, x6 // .............................................................................*.................................................................................. + // vmul.vx v23, v23, x6 // .......................................................................................*........................................................................ + // vmulh.vv v28, v0, v8 // ...............................................................................*................................................................................ + // vmulh.vv v29, v1, v9 // ...................................................................................*............................................................................ + // vmulh.vv v30, v2, v10 // .....................................................................................*.......................................................................... + // vmulh.vv v31, v3, v11 // .......................................................................................*........................................................................ + // vmulh.vx v20, v20, x5 // ...........................................................................................*.................................................................... + // vmulh.vx v21, v21, x5 // ...............................................................................................*................................................................ + // vmulh.vx v22, v22, x5 // .................................................................................*.............................................................................. + // vmulh.vx v23, v23, x5 // ...........................................................................................*.................................................................... + // vsub.vv v20, v28, v20 // ...............................................................................................*................................................................ + // vsub.vv v21, v29, v21 // ...................................................................................................*............................................................ + // vsub.vv v22, v30, v22 // .........................................................................................*...................................................................... + // vsub.vv v23, v31, v23 // ...............................................................................................................................*................................ + // vmul.vv v24, v12, v16 // ...................................................................................................................*............................................ + // vmul.vv v25, v13, v17 // ...................................................................................................*............................................................ + // vmul.vv v26, v14, v18 // .....................................................................................*.......................................................................... + // vmul.vv v27, v15, v19 // .........................................................................................................*...................................................... + // vmul.vx v24, v24, x6 // .......................................................................................................................*........................................ + // vmul.vx v25, v25, x6 // .......................................................................................................*........................................................ + // vmul.vx v26, v26, x6 // .........................................................................................*...................................................................... + // vmul.vx v27, v27, x6 // .............................................................................................................*.................................................. + // vmulh.vv v28, v12, v16 // .....................................................................................................................*.......................................... + // vmulh.vv v29, v13, v17 // .............................................................................................................*.................................................. + // vmulh.vv v30, v14, v18 // .............................................................................................*.................................................................. + // vmulh.vv v31, v15, v19 // .......................................................................................................*........................................................ + // vmulh.vx v24, v24, x5 // ...........................................................................................................................*.................................... + // vmulh.vx v25, v25, x5 // ...........................................................................................................*.................................................... + // vmulh.vx v26, v26, x5 // .............................................................................................*.................................................................. + // vmulh.vx v27, v27, x5 // .................................................................................................................*.............................................. + // vsub.vv v24, v28, v24 // ...............................................................................................................................*................................ + // vsub.vv v25, v29, v25 // .................................................................................................................*.............................................. + // vsub.vv v26, v30, v26 // .................................................................................................*.............................................................. + // vsub.vv v27, v31, v27 // .....................................................................................................................*.......................................... + // addi x29, x14, 0*0 // ..................................................................................................................................*............................. + // add x15, x14, x17 // ........................................................................................................................*....................................... + // vse16.v v24, (x29) // .............................................................................................................................................*.................. + // vse16.v v25, (x15) // .................................................................................................................................*.............................. + // add x29, x29, x16 // ....................................................................................................................................*........................... + // add x15, x15, x16 // ..........................................................................................................................*..................................... + // vse16.v v26, (x29) // .....................................................................................................................................*.......................... + // vse16.v v27, (x15) // ...........................................................................................................................*.................................... + // vmul.vv v0, v4, v24 // ...................................................................................................................................*............................ + // vmul.vv v1, v5, v25 // .......................................................................................................................*........................................ + // vmul.vv v2, v6, v26 // .....................................................................................................*.......................................................... + // vmul.vv v3, v7, v27 // .........................................................................................................................*...................................... + // vmul.vx v0, v0, x6 // .......................................................................................................................................*........................ + // vmul.vx v1, v1, x6 // .............................................................................................................................*.................................. + // vmul.vx v2, v2, x6 // ...............................................................................................................*................................................ + // vmul.vx v3, v3, x6 // .............................................................................................................................*.................................. + // vmulh.vv v28, v4, v24 // .........................................................................................................................................*...................... + // vmulh.vv v29, v5, v25 // .....................................................................................................................................*.......................... + // vmulh.vv v30, v6, v26 // .....................................................................................................*.......................................................... + // vmulh.vv v31, v7, v27 // .........................................................................................................................*...................................... + // vmulh.vx v0, v0, x5 // ...........................................................................................................................................*.................... + // vmulh.vx v1, v1, x5 // .................................................................................................................................*.............................. + // vmulh.vx v2, v2, x5 // ...................................................................................................................*............................................ + // vmulh.vx v3, v3, x5 // ...................................................................................................................................*............................ + // vsub.vv v0, v28, v0 // ...............................................................................................................................................*................ + // vsub.vv v1, v29, v1 // .............................................................................................................................................*.................. + // vsub.vv v2, v30, v2 // .......................................................................................................................................*........................ + // vsub.vv v3, v31, v3 // .........................................................................................................................................*...................... + // addi x29, x10, 0*2 // ..............................................................................................................................................*................. + // add x15, x10, x16 // ................................................................................................................................................*............... + // vle16.v v28, (x29) // ...............................................................................................................................................*................ + // vle16.v v29, (x15) // .................................................................................................................................................*.............. + // add x29, x29, x30 // ................................................................................................................................................*............... + // add x15, x15, x30 // ..................................................................................................................................................*............. + // vle16.v v30, (x29) // ...................................................................................................................................................*............ + // vle16.v v31, (x15) // .....................................................................................................................................................*.......... + // vadd.vv v20, v20, v0 // ...................................................................................................................................................*............ + // vadd.vv v21, v21, v1 // .................................................................................................................................................*.............. + // vadd.vv v22, v22, v2 // ...........................................................................................................................................*.................... + // vadd.vv v23, v23, v3 // .......................................................................................................................................................*........ + // vadd.vv v20, v20, v28 // .......................................................................................................................................................*........ + // vadd.vv v21, v21, v29 // .....................................................................................................................................................*.......... + // vadd.vv v22, v22, v30 // .........................................................................................................................................................*...... + // vadd.vv v23, v23, v31 // ...........................................................................................................................................................*.... + // addi x29, x10, 0 // ......................................................................................................................................................*......... + // add x15, x10, x16 // ......................................................................................................................................................*......... + // vse16.v v20, (x29) // ...........................................................................................................................................................*.... + // vse16.v v21, (x15) // .........................................................................................................................................................*...... + // add x29, x29, x30 // ........................................................................................................................................................*....... + // add x15, x15, x30 // ..............................................................................................................................................................*. + // vse16.v v22, (x29) // .............................................................................................................................................................*.. + // vse16.v v23, (x15) // ...............................................................................................................................................................* + // add x10, x10, x30 // ........................................................................................................................................*....................... + // add x13, x13, x30 // ....................................................................................................................................................*........... + // add x10, x10, x30 // ............................................................................................................................................................*... + // add x14, x14, x30 // ..........................................................................................................................................................*..... + // bltu x11, x7, poly_basemul_acc_cache_init_rvv_vlen128_loop // ...............................................................................................................................................................* + + + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_acc_cached_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_acc_cached_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..a629c1213 --- /dev/null +++ b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_acc_cached_rvv_vlen128_opt_c908.s @@ -0,0 +1,444 @@ +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +// void poly_basemul_acc_cached_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_acc_cached_rvv_vlen128_opt_c908 +.align 2 +poly_basemul_acc_cached_rvv_vlen128_opt_c908: + addi sp, sp, -8*15 + save_regs + li a7, 32 + addi t2, a1, 256*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add t3, a6, a7 +poly_basemul_acc_cached_rvv_vlen128_loop: + // Instructions: 173 + // Expected cycles: 136 + // Expected IPC: 1.27 + // + // Cycle bound: 136.0 + // IPC bound: 1.27 + // + // Wall time: 88.33s + // User time: 88.33s + // + // ---------------------------------------------------------- cycle (expected) -----------------------------------------------------------> + // 0 25 50 75 100 125 + // |------------------------|------------------------|------------------------|------------------------|------------------------|---------- + vle16.v v20, (x12) // *....................................................................................................................................... + add x13, x13, x30 // *....................................................................................................................................... + add x1, x10, x17 // .*...................................................................................................................................... + add x9, x10, x30 // .*...................................................................................................................................... + vle16.v v15, (x11) // ..*..................................................................................................................................... + add x18, x1, x30 // ..*..................................................................................................................................... + add x4, x10, x16 // ...*.................................................................................................................................... + add x12, x12, x17 // ...*.................................................................................................................................... + vle16.v v21, (x12) // ....*................................................................................................................................... + addi x29, x11, 32 // ....*................................................................................................................................... + vmulh.vv v22, v15, v20 // .....*.................................................................................................................................. + addi x11, x29, 32 // .....*.................................................................................................................................. + vle16.v v11, (x11) // ......*................................................................................................................................. + add x12, x12, x17 // ......*................................................................................................................................. + vmulh.vv v10, v15, v21 // .......*................................................................................................................................ + add x23, x12, x17 // .......*................................................................................................................................ + add x21, x4, x30 // ........*............................................................................................................................... + vle16.v v31, (x23) // ........*............................................................................................................................... + add x22, x23, x17 // .........*.............................................................................................................................. + vmul.vv v6, v15, v21 // .........*.............................................................................................................................. + vle16.v v18, (x12) // ..........*............................................................................................................................. + add x27, x22, x17 // ..........*............................................................................................................................. + vmulh.vv v29, v11, v31 // ...........*............................................................................................................................ + addi x26, x11, 32 // ...........*............................................................................................................................ + addi x12, x26, 32 // ............*........................................................................................................................... + vle16.v v13, (x26) // ............*........................................................................................................................... + vmul.vv v24, v11, v31 // .............*.......................................................................................................................... + addi x15, x12, 32 // .............*.......................................................................................................................... + addi x23, x15, 32 // ..............*......................................................................................................................... + vle16.v v21, (x27) // ..............*......................................................................................................................... + addi x26, x23, 32 // ...............*........................................................................................................................ + vmul.vv v0, v13, v18 // ...............*........................................................................................................................ + vle16.v v28, (x12) // ................*....................................................................................................................... + addi x11, x26, 32 // ................*....................................................................................................................... + vmul.vx v1, v24, x6 // .................*...................................................................................................................... + add x27, x27, x17 // .................*...................................................................................................................... + vle16.v v19, (x23) // ..................*..................................................................................................................... + add x12, x27, x17 // ..................*..................................................................................................................... + vmul.vv v23, v28, v21 // ...................*.................................................................................................................... + vle16.v v12, (x12) // ....................*................................................................................................................... + vmul.vx v31, v0, x6 // .....................*.................................................................................................................. + vle16.v v24, (x22) // ......................*................................................................................................................. + vmul.vx v3, v23, x6 // .......................*................................................................................................................ + vle16.v v23, (x15) // ........................*............................................................................................................... + add x15, x10, x28 // ........................*............................................................................................................... + vmul.vv v8, v19, v12 // .........................*.............................................................................................................. + add x22, x10, x17 // .........................*.............................................................................................................. + vle16.v v5, (x26) // ..........................*............................................................................................................. + add x24, x15, x30 // ..........................*............................................................................................................. + addi x23, x14, 0*0 // ...........................*............................................................................................................ + vmulh.vv v27, v23, v24 // ...........................*............................................................................................................ + vmul.vv v25, v23, v24 // ............................*........................................................................................................... + add x26, x22, x30 // ............................*........................................................................................................... + vmulh.vv v7, v19, v12 // .............................*.......................................................................................................... + vmul.vx v6, v6, x6 // ..............................*......................................................................................................... + vmul.vx v26, v8, x6 // ...............................*........................................................................................................ + vmulh.vx v16, v3, x5 // ................................*....................................................................................................... + vmul.vx v30, v25, x6 // .................................*...................................................................................................... + vmulh.vx v14, v6, x5 // ..................................*..................................................................................................... + vmulh.vv v6, v28, v21 // ...................................*.................................................................................................... + vle16.v v8, (x27) // ....................................*................................................................................................... + vmulh.vx v3, v1, x5 // .....................................*.................................................................................................. + vmulh.vx v21, v26, x5 // ......................................*................................................................................................. + vsub.vv v14, v10, v14 // .......................................*................................................................................................ + vsub.vv v0, v29, v3 // .........................................*.............................................................................................. + vle16.v v12, (x29) // .........................................*.............................................................................................. + vsub.vv v26, v6, v16 // ...........................................*............................................................................................ + vmulh.vv v10, v13, v18 // ...........................................*............................................................................................ + vsub.vv v4, v7, v21 // .............................................*.......................................................................................... + vmul.vv v21, v5, v8 // .............................................*.......................................................................................... + vmul.vv v2, v28, v24 // ...............................................*........................................................................................ + vmul.vv v17, v12, v20 // ...............................................*........................................................................................ + vmulh.vv v16, v5, v8 // .................................................*...................................................................................... + vmulh.vx v6, v30, x5 // .................................................*...................................................................................... + vmulh.vx v7, v31, x5 // ...................................................*.................................................................................... + vmul.vx v31, v17, x6 // ...................................................*.................................................................................... + vle16.v v1, (x22) // .....................................................*.................................................................................. + vmul.vx v29, v21, x6 // .....................................................*.................................................................................. + vmulh.vx v21, v31, x5 // .......................................................*................................................................................ + vmulh.vv v17, v12, v20 // .......................................................*................................................................................ + vsub.vv v30, v27, v6 // .........................................................*.............................................................................. + vmulh.vx v31, v29, x5 // .........................................................*.............................................................................. + vsub.vv v7, v10, v7 // ...........................................................*............................................................................ + vsub.vv v17, v17, v21 // ...........................................................*............................................................................ + vle16.v v9, (x15) // .............................................................*.......................................................................... + vsub.vv v6, v16, v31 // .............................................................*.......................................................................... + add x15, x14, x17 // ..............................................................*......................................................................... + vadd.vv v26, v26, v30 // ...............................................................*........................................................................ + vle16.v v16, (x24) // ...............................................................*........................................................................ + add x22, x15, x16 // ................................................................*....................................................................... + vadd.vv v21, v4, v6 // .................................................................*...................................................................... + vadd.vv v31, v14, v17 // .................................................................*...................................................................... + add x27, x10, x28 // ..................................................................*..................................................................... + vle16.v v14, (x23) // ...................................................................*.................................................................... + vmul.vv v6, v15, v20 // ...................................................................*.................................................................... + vadd.vv v29, v31, v1 // .....................................................................*.................................................................. + vmul.vv v3, v19, v8 // .....................................................................*.................................................................. + vadd.vv v27, v21, v16 // .......................................................................*................................................................ + vle16.v v15, (x26) // .......................................................................*................................................................ + add x26, x23, x16 // ........................................................................*............................................................... + vmul.vv v1, v11, v18 // .........................................................................*.............................................................. + vmul.vx v6, v6, x6 // .........................................................................*.............................................................. + add x29, x27, x30 // ..........................................................................*............................................................. + vmulh.vv v17, v11, v18 // ...........................................................................*............................................................ + vmulh.vv v18, v28, v24 // ...........................................................................*............................................................ + addi x25, x10, 0*2 // ............................................................................*........................................................... + vmul.vx v21, v2, x6 // .............................................................................*.......................................................... + vmul.vx v28, v3, x6 // .............................................................................*.......................................................... + add x31, x25, x30 // ..............................................................................*......................................................... + vadd.vv v4, v0, v7 // ...............................................................................*........................................................ + vmul.vx v30, v1, x6 // ...............................................................................*........................................................ + add x12, x12, x17 // ................................................................................*....................................................... + vle16.v v10, (x15) // .................................................................................*...................................................... + vmulh.vx v16, v21, x5 // .................................................................................*...................................................... + vmulh.vv v24, v19, v8 // ...................................................................................*.................................................... + vmulh.vx v31, v30, x5 // ...................................................................................*.................................................... + vmul.vv v21, v13, v10 // .....................................................................................*.................................................. + vmulh.vx v11, v6, x5 // .....................................................................................*.................................................. + vadd.vv v19, v4, v9 // .......................................................................................*................................................ + vsub.vv v6, v18, v16 // .......................................................................................*................................................ + vsub.vv v18, v17, v31 // .........................................................................................*.............................................. + vsub.vv v16, v22, v11 // .........................................................................................*.............................................. + vle16.v v30, (x22) // ...........................................................................................*............................................ + vmul.vx v22, v21, x6 // ...........................................................................................*............................................ + vmulh.vv v21, v13, v10 // .............................................................................................*.......................................... + vmulh.vx v13, v28, x5 // .............................................................................................*.......................................... + vmul.vv v11, v5, v30 // ...............................................................................................*........................................ + vle16.v v3, (x26) // ...............................................................................................*........................................ + addi x26, x10, 0 // ................................................................................................*....................................... + vse16.v v19, (x27) // .................................................................................................*...................................... + vsub.vv v19, v24, v13 // .................................................................................................*...................................... + add x22, x26, x30 // ..................................................................................................*..................................... + vse16.v v29, (x1) // ...................................................................................................*.................................... + vmul.vx v20, v11, x6 // ...................................................................................................*.................................... + add x14, x14, x30 // ....................................................................................................*................................... + vle16.v v7, (x21) // .....................................................................................................*.................................. + vmulh.vx v1, v22, x5 // .....................................................................................................*.................................. + add x27, x10, x16 // ......................................................................................................*................................. + vmul.vv v25, v12, v14 // .......................................................................................................*................................ + vle16.v v24, (x25) // .......................................................................................................*................................ + add x15, x27, x30 // ........................................................................................................*............................... + add x10, x9, x30 // ........................................................................................................*............................... + vadd.vv v26, v26, v15 // .........................................................................................................*.............................. + vmul.vv v29, v23, v3 // .........................................................................................................*.............................. + vsub.vv v21, v21, v1 // ...........................................................................................................*............................ + vmulh.vx v13, v20, x5 // ...........................................................................................................*............................ + vmul.vx v8, v29, x6 // .............................................................................................................*.......................... + vmul.vx v11, v25, x6 // .............................................................................................................*.......................... + vadd.vv v20, v18, v21 // ...............................................................................................................*........................ + vmulh.vv v18, v5, v30 // ...............................................................................................................*........................ + vmulh.vx v28, v8, x5 // .................................................................................................................*...................... + vse16.v v26, (x18) // .................................................................................................................*...................... + vmulh.vv v23, v23, v3 // ...................................................................................................................*.................... + vmulh.vx v11, v11, x5 // ...................................................................................................................*.................... + vle16.v v2, (x4) // .....................................................................................................................*.................. + vmulh.vv v12, v12, v14 // .....................................................................................................................*.................. + vsub.vv v31, v18, v13 // .......................................................................................................................*................ + vse16.v v27, (x29) // .......................................................................................................................*................ + vle16.v v15, (x31) // .........................................................................................................................*.............. + vsub.vv v25, v12, v11 // .........................................................................................................................*.............. + vadd.vv v11, v19, v31 // ...........................................................................................................................*............ + vsub.vv v13, v23, v28 // ...........................................................................................................................*............ + vadd.vv v12, v20, v2 // .............................................................................................................................*.......... + vadd.vv v28, v16, v25 // .............................................................................................................................*.......... + vadd.vv v20, v11, v7 // ...............................................................................................................................*........ + vadd.vv v13, v6, v13 // ...............................................................................................................................*........ + vse16.v v12, (x27) // .................................................................................................................................*...... + vadd.vv v21, v28, v24 // .................................................................................................................................*...... + vse16.v v20, (x15) // ...................................................................................................................................*.... + vadd.vv v20, v13, v15 // ...................................................................................................................................*.... + vse16.v v21, (x26) // .....................................................................................................................................*.. + vse16.v v20, (x22) // .......................................................................................................................................* + bltu x11, x7, poly_basemul_acc_cached_rvv_vlen128_loop // .......................................................................................................................................* // @slothy:branch + + // ---------------------------------------------------------- cycle (expected) -----------------------------------------------------------> + // 0 25 50 75 100 125 + // |------------------------|------------------------|------------------------|------------------------|------------------------|---------- + // vle16.v v0, (x11) // ..*..................................................................................................................................... + // vle16.v v8, (x12) // *....................................................................................................................................... + // addi x11, x11, 32 // ....*................................................................................................................................... + // add x12, x12, x17 // ...*.................................................................................................................................... + // vle16.v v4, (x11) // .........................................*.............................................................................................. + // vle16.v v12, (x12) // ....*................................................................................................................................... + // addi x11, x11, 32 // .....*.................................................................................................................................. + // add x12, x12, x17 // ......*................................................................................................................................. + // vle16.v v1, (x11) // ......*................................................................................................................................. + // vle16.v v9, (x12) // ..........*............................................................................................................................. + // addi x11, x11, 32 // ...........*............................................................................................................................ + // add x12, x12, x17 // .......*................................................................................................................................ + // vle16.v v5, (x11) // ............*........................................................................................................................... + // vle16.v v13, (x12) // ........*............................................................................................................................... + // addi x11, x11, 32 // ............*........................................................................................................................... + // add x12, x12, x17 // .........*.............................................................................................................................. + // vle16.v v2, (x11) // ................*....................................................................................................................... + // vle16.v v10, (x12) // ......................*................................................................................................................. + // addi x11, x11, 32 // .............*.......................................................................................................................... + // add x12, x12, x17 // ..........*............................................................................................................................. + // vle16.v v6, (x11) // ........................*............................................................................................................... + // vle16.v v14, (x12) // ..............*......................................................................................................................... + // addi x11, x11, 32 // ..............*......................................................................................................................... + // add x12, x12, x17 // .................*...................................................................................................................... + // vle16.v v3, (x11) // ..................*..................................................................................................................... + // vle16.v v11, (x12) // ....................................*................................................................................................... + // addi x11, x11, 32 // ...............*........................................................................................................................ + // add x12, x12, x17 // ..................*..................................................................................................................... + // vle16.v v7, (x11) // ..........................*............................................................................................................. + // vle16.v v15, (x12) // ....................*................................................................................................................... + // addi x11, x11, 32 // ................*....................................................................................................................... + // add x12, x12, x17 // ................................................................................*....................................................... + // vmul.vv v16, v0, v12 // .........*.............................................................................................................................. + // vmul.vv v17, v1, v13 // .............*.......................................................................................................................... + // vmul.vv v18, v2, v14 // ...................*.................................................................................................................... + // vmul.vv v19, v3, v15 // .........................*.............................................................................................................. + // vmul.vx v16, v16, x6 // ..............................*......................................................................................................... + // vmul.vx v17, v17, x6 // .................*...................................................................................................................... + // vmul.vx v18, v18, x6 // .......................*................................................................................................................ + // vmul.vx v19, v19, x6 // ...............................*........................................................................................................ + // vmulh.vv v24, v0, v12 // .......*................................................................................................................................ + // vmulh.vv v25, v1, v13 // ...........*............................................................................................................................ + // vmulh.vv v26, v2, v14 // ...................................*.................................................................................................... + // vmulh.vv v27, v3, v15 // .............................*.......................................................................................................... + // vmulh.vx v16, v16, x5 // ..................................*..................................................................................................... + // vmulh.vx v17, v17, x5 // .....................................*.................................................................................................. + // vmulh.vx v18, v18, x5 // ................................*....................................................................................................... + // vmulh.vx v19, v19, x5 // ......................................*................................................................................................. + // vsub.vv v16, v24, v16 // .......................................*................................................................................................ + // vsub.vv v17, v25, v17 // .........................................*.............................................................................................. + // vsub.vv v18, v26, v18 // ...........................................*............................................................................................ + // vsub.vv v19, v27, v19 // .............................................*.......................................................................................... + // vmul.vv v20, v4, v8 // ...............................................*........................................................................................ + // vmul.vv v21, v5, v9 // ...............*........................................................................................................................ + // vmul.vv v22, v6, v10 // ............................*........................................................................................................... + // vmul.vv v23, v7, v11 // .............................................*.......................................................................................... + // vmul.vx v20, v20, x6 // ...................................................*.................................................................................... + // vmul.vx v21, v21, x6 // .....................*.................................................................................................................. + // vmul.vx v22, v22, x6 // .................................*...................................................................................................... + // vmul.vx v23, v23, x6 // .....................................................*.................................................................................. + // vmulh.vv v24, v4, v8 // .......................................................*................................................................................ + // vmulh.vv v25, v5, v9 // ...........................................*............................................................................................ + // vmulh.vv v26, v6, v10 // ...........................*............................................................................................................ + // vmulh.vv v27, v7, v11 // .................................................*...................................................................................... + // vmulh.vx v20, v20, x5 // .......................................................*................................................................................ + // vmulh.vx v21, v21, x5 // ...................................................*.................................................................................... + // vmulh.vx v22, v22, x5 // .................................................*...................................................................................... + // vmulh.vx v23, v23, x5 // .........................................................*.............................................................................. + // vsub.vv v20, v24, v20 // ...........................................................*............................................................................ + // vsub.vv v21, v25, v21 // ...........................................................*............................................................................ + // vsub.vv v22, v26, v22 // .........................................................*.............................................................................. + // vsub.vv v23, v27, v23 // .............................................................*.......................................................................... + // add x29, x10, x17 // .........................*.............................................................................................................. + // add x15, x10, x28 // ........................*............................................................................................................... + // vle16.v v24, (x29) // .....................................................*.................................................................................. + // vle16.v v25, (x15) // .............................................................*.......................................................................... + // add x29, x29, x30 // ............................*........................................................................................................... + // add x15, x15, x30 // ..........................*............................................................................................................. + // vle16.v v26, (x29) // .......................................................................*................................................................ + // vle16.v v27, (x15) // ...............................................................*........................................................................ + // vadd.vv v16, v16, v20 // .................................................................*...................................................................... + // vadd.vv v17, v17, v21 // ...............................................................................*........................................................ + // vadd.vv v18, v18, v22 // ...............................................................*........................................................................ + // vadd.vv v19, v19, v23 // .................................................................*...................................................................... + // vadd.vv v16, v16, v24 // .....................................................................*.................................................................. + // vadd.vv v17, v17, v25 // .......................................................................................*................................................ + // vadd.vv v18, v18, v26 // .........................................................................................................*.............................. + // vadd.vv v19, v19, v27 // .......................................................................*................................................................ + // add x29, x10, x17 // .*...................................................................................................................................... + // add x15, x10, x28 // ..................................................................*..................................................................... + // vse16.v v16, (x29) // ...................................................................................................*.................................... + // vse16.v v17, (x15) // .................................................................................................*...................................... + // add x29, x29, x30 // ..*..................................................................................................................................... + // add x15, x15, x30 // ..........................................................................*............................................................. + // vse16.v v18, (x29) // .................................................................................................................*...................... + // vse16.v v19, (x15) // .......................................................................................................................*................ + // addi x29, x14, 0*0 // ...........................*............................................................................................................ + // add x15, x14, x17 // ..............................................................*......................................................................... + // vle16.v v24, (x29) // ...................................................................*.................................................................... + // vle16.v v25, (x15) // .................................................................................*...................................................... + // add x29, x29, x16 // ........................................................................*............................................................... + // add x15, x15, x16 // ................................................................*....................................................................... + // vle16.v v26, (x29) // ...............................................................................................*........................................ + // vle16.v v27, (x15) // ...........................................................................................*............................................ + // vmul.vv v20, v0, v8 // ...................................................................*.................................................................... + // vmul.vv v21, v1, v9 // .........................................................................*.............................................................. + // vmul.vv v22, v2, v10 // ...............................................*........................................................................................ + // vmul.vv v23, v3, v11 // .....................................................................*.................................................................. + // vmul.vx v20, v20, x6 // .........................................................................*.............................................................. + // vmul.vx v21, v21, x6 // ...............................................................................*........................................................ + // vmul.vx v22, v22, x6 // .............................................................................*.......................................................... + // vmul.vx v23, v23, x6 // .............................................................................*.......................................................... + // vmulh.vv v28, v0, v8 // .....*.................................................................................................................................. + // vmulh.vv v29, v1, v9 // ...........................................................................*............................................................ + // vmulh.vv v30, v2, v10 // ...........................................................................*............................................................ + // vmulh.vv v31, v3, v11 // ...................................................................................*.................................................... + // vmulh.vx v20, v20, x5 // .....................................................................................*.................................................. + // vmulh.vx v21, v21, x5 // ...................................................................................*.................................................... + // vmulh.vx v22, v22, x5 // .................................................................................*...................................................... + // vmulh.vx v23, v23, x5 // .............................................................................................*.......................................... + // vsub.vv v20, v28, v20 // .........................................................................................*.............................................. + // vsub.vv v21, v29, v21 // .........................................................................................*.............................................. + // vsub.vv v22, v30, v22 // .......................................................................................*................................................ + // vsub.vv v23, v31, v23 // .................................................................................................*...................................... + // vmul.vv v0, v4, v24 // .......................................................................................................*................................ + // vmul.vv v1, v5, v25 // .....................................................................................*.................................................. + // vmul.vv v2, v6, v26 // .........................................................................................................*.............................. + // vmul.vv v3, v7, v27 // ...............................................................................................*........................................ + // vmul.vx v0, v0, x6 // .............................................................................................................*.......................... + // vmul.vx v1, v1, x6 // ...........................................................................................*............................................ + // vmul.vx v2, v2, x6 // .............................................................................................................*.......................... + // vmul.vx v3, v3, x6 // ...................................................................................................*.................................... + // vmulh.vv v28, v4, v24 // .....................................................................................................................*.................. + // vmulh.vv v29, v5, v25 // .............................................................................................*.......................................... + // vmulh.vv v30, v6, v26 // ...................................................................................................................*.................... + // vmulh.vv v31, v7, v27 // ...............................................................................................................*........................ + // vmulh.vx v0, v0, x5 // ...................................................................................................................*.................... + // vmulh.vx v1, v1, x5 // .....................................................................................................*.................................. + // vmulh.vx v2, v2, x5 // .................................................................................................................*...................... + // vmulh.vx v3, v3, x5 // ...........................................................................................................*............................ + // vsub.vv v0, v28, v0 // .........................................................................................................................*.............. + // vsub.vv v1, v29, v1 // ...........................................................................................................*............................ + // vsub.vv v2, v30, v2 // ...........................................................................................................................*............ + // vsub.vv v3, v31, v3 // .......................................................................................................................*................ + // addi x29, x10, 0*2 // ............................................................................*........................................................... + // add x15, x10, x16 // ...*.................................................................................................................................... + // vle16.v v28, (x29) // .......................................................................................................*................................ + // vle16.v v29, (x15) // .....................................................................................................................*.................. + // add x29, x29, x30 // ..............................................................................*......................................................... + // add x15, x15, x30 // ........*............................................................................................................................... + // vle16.v v30, (x29) // .........................................................................................................................*.............. + // vle16.v v31, (x15) // .....................................................................................................*.................................. + // vadd.vv v20, v20, v0 // .............................................................................................................................*.......... + // vadd.vv v21, v21, v1 // ...............................................................................................................*........................ + // vadd.vv v22, v22, v2 // ...............................................................................................................................*........ + // vadd.vv v23, v23, v3 // ...........................................................................................................................*............ + // vadd.vv v20, v20, v28 // .................................................................................................................................*...... + // vadd.vv v21, v21, v29 // .............................................................................................................................*.......... + // vadd.vv v22, v22, v30 // ...................................................................................................................................*.... + // vadd.vv v23, v23, v31 // ...............................................................................................................................*........ + // addi x29, x10, 0 // ................................................................................................*....................................... + // add x15, x10, x16 // ......................................................................................................*................................. + // vse16.v v20, (x29) // .....................................................................................................................................*.. + // vse16.v v21, (x15) // .................................................................................................................................*...... + // add x29, x29, x30 // ..................................................................................................*..................................... + // add x15, x15, x30 // ........................................................................................................*............................... + // vse16.v v22, (x29) // .......................................................................................................................................* + // vse16.v v23, (x15) // ...................................................................................................................................*.... + // add x10, x10, x30 // .*...................................................................................................................................... + // add x13, x13, x30 // *....................................................................................................................................... + // add x10, x10, x30 // ........................................................................................................*............................... + // add x14, x14, x30 // ....................................................................................................*................................... + // bltu x11, x7, poly_basemul_acc_cached_rvv_vlen128_loop // .......................................................................................................................................* + + + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_acc_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_acc_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..2b44b00a6 --- /dev/null +++ b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_acc_rvv_vlen128_opt_c908.s @@ -0,0 +1,1309 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 0 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzeta1, vzeta2, vzeta3, vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) +// a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) +// a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) +// level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 +// level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu +// shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 +// shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 +// level 3 + ct_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 +// shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 +// level 4 + ct_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 +// level 5 + ct_bfu_vv_x8 v16, v24, v18, v26, v20, v28, v22, v30, v17, v25, v19, v27, v21, v29, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v3, v2, v3, v2, v3, v2, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 +// level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 +// polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v16, v20, v18, v22, v24, v28, v26, v30, v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v17, v21, v19, v23, v25, v29, v27, v31, v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, vidx8_0122, vidx_low, vidx_high, x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +// void poly_basemul_acc_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table) + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_acc_rvv_vlen128 +.align 2 +poly_basemul_acc_rvv_vlen128_opt_c908: + addi sp, sp, -8*15 + save_regs + li a7, 32 + li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add a3, a3, t3 + add t3, a6, a7 + addi t2, a1, 256*2 +poly_basemul_acc_rvv_vlen128_loop: + // Instructions: 192 + // Expected cycles: 158 + // Expected IPC: 1.22 + // + // Cycle bound: 155.0 + // IPC bound: 1.24 + // + // Wall time: 95636.30s + // User time: 95636.30s + // + // --------------------------------------------------------------------- cycle (expected) ----------------------------------------------------------------------> + // 0 25 50 75 100 125 150 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------- + vle16.v v27, (x11) // *............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x31, x13, 0 // *............................................................................................................................................................. + addi x4, x11, 32 // .*............................................................................................................................................................ + add x21, x12, x17 // .*............................................................................................................................................................ + vle16.v v24, (x12) // ..*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x29, x4, 32 // ..*........................................................................................................................................................... + add x25, x13, x17 // ...*.......................................................................................................................................................... + addi x11, x29, 32 // ...*.......................................................................................................................................................... + addi x18, x11, 32 // ....*......................................................................................................................................................... + vle16.v v21, (x25) // ....*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v30, v27, v24 // .....*........................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + add x26, x21, x17 // .....*........................................................................................................................................................ + vle16.v v12, (x21) // ......*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + add x24, x26, x17 // ......*....................................................................................................................................................... + add x12, x24, x17 // .......*...................................................................................................................................................... + vmul.vv v23, v27, v24 // .......*...................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v6, (x4) // ........*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x22, x18, 32 // ........*..................................................................................................................................................... + addi x21, x22, 32 // .........*.................................................................................................................................................... + vmulh.vv v17, v27, v12 // .........*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + add x23, x10, x28 // ..........*................................................................................................................................................... + vle16.v v8, (x31) // ..........*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v1, v6, v24 // ...........*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + add x14, x31, x16 // ...........*.................................................................................................................................................. + addi x31, x10, 0 // ............*................................................................................................................................................. + vle16.v v28, (x12) // ............*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v4, v6, v8 // .............*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x9, x10, 0*2 // .............*................................................................................................................................................ + add x20, x9, x30 // ..............*............................................................................................................................................... + vle16.v v2, (x18) // ..............*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v13, v23, x6 // ...............*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + add x1, x10, x16 // ...............*.............................................................................................................................................. + add x15, x1, x30 // ................*............................................................................................................................................. + vle16.v v15, (x22) // ................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + add x22, x10, x16 // .................*............................................................................................................................................ + vmul.vv v18, v2, v28 // .................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + add x8, x22, x30 // ..................*........................................................................................................................................... + vle16.v v9, (x14) // ..................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + add x14, x10, x28 // ...................*.......................................................................................................................................... + vmul.vv v31, v15, v28 // ...................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v23, (x11) // ....................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x27, x21, 32 // ....................*......................................................................................................................................... + vmul.vv v14, v15, v9 // .....................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + add x18, x12, x17 // .....................*........................................................................................................................................ + add x13, x13, x30 // ......................*....................................................................................................................................... + vmulh.vv v19, v15, v9 // ......................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + add x19, x10, x17 // .......................*...................................................................................................................................... + vmul.vv v10, v23, v21 // .......................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + add x25, x25, x16 // ........................*..................................................................................................................................... + vmulh.vv v11, v6, v8 // ........................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + add x4, x10, x17 // .........................*.................................................................................................................................... + vmul.vx v4, v4, x6 // .........................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + add x12, x10, x30 // ..........................*................................................................................................................................... + vle16.v v3, (x25) // ..........................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v9, v18, x6 // ...........................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + add x11, x4, x30 // ...........................*.................................................................................................................................. + add x10, x12, x30 // ............................*................................................................................................................................. + vle16.v v22, (x11) // ............................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x11, x27, 32 // .............................*................................................................................................................................ + vmulh.vx v18, v13, x5 // .............................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v14, v14, x6 // ..............................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v10, v10, x6 // ...............................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v26, v31, x6 // ................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v2, v28 // .................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v4, v4, x5 // ..................................*........................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v9, x5 // ...................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v20, v23, v21 // ....................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v15, v28 // .....................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v16, v14, x5 // ......................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v10, x5 // .......................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v15, (x27) // ........................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + add x27, x18, x17 // ........................................*..................................................................................................................... + add x25, x27, x17 // .........................................*.................................................................................................................... + vsub.vv v9, v30, v18 // .........................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v10, (x27) // ..........................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + add x12, x25, x17 // ..........................................*................................................................................................................... + vmulh.vx v30, v26, x5 // ...........................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v7, v13 // ............................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v7, v27, v12 // .............................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v19, v16 // ..............................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v18, v15, v3 // ...............................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v13, (x18) // ................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + add x18, x23, x30 // ................................................*............................................................................................................. + vmul.vv v31, v15, v10 // .................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v27, (x29) // ..................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v5, v6, v24 // ...................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v14, (x26) // ....................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v28, v30 // .....................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v24, v13, v26 // ......................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v28, v27, v14 // .......................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v0, v18, x6 // ........................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v31, v31, x6 // .........................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v20, v8 // ..........................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v15, v10 // ...........................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v6, v15, v3 // ............................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v2, v13 // .............................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v24, v24, x6 // ..............................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v18, v28, x6 // ...............................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v0, x5 // ................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v16, v31, x5 // .................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v13, v26 // ..................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v3, v7, x6 // ...................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v20, v11, v4 // ....................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v26, v30, x6 // .....................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v24, v24, x5 // ......................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v18, x5 // .......................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v0, v6, v25 // ........................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v8, v16 // .........................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v4, (x25) // ..........................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + add x25, x19, x30 // ..........................................................................*................................................................................... + vmul.vx v30, v5, x6 // ...........................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v6, v12, v20 // ............................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v27, v14 // .............................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v31, v24 // ..............................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v23, v14 // ...............................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v4, v0 // ................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v26, v26, x5 // .................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v4, v0 // ..................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v11, v30, x5 // ...................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v6, v6, x6 // ....................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v3, x5 // .....................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v5, v12, v20 // ......................................................................................*....................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v7, v15, x6 // .......................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v31, v31, x6 // ........................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v2, v13 // .........................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v21, v24 // ..........................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v8, v18 // ...........................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v6, v6, x5 // ............................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v20, v17, v30 // .............................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v12, (x24) // ..............................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v7, x5 // ...............................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v18, (x21) // ................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v0, v15, v26 // .................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v12, v19 // ..................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v3, v18, v10 // ...................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v6, v5, v6 // ....................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v16, v27, v12 // .....................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v2, v31, x5 // ......................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v21, v18, v4 // .......................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v31, (x22) // ........................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v27, v12 // .........................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v13, v15, x6 // ..........................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v7, v3, x6 // ...........................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v6, v9, v6 // ............................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v18, v10 // .............................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v28, v2 // ..............................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v3, v21, x6 // ...............................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v12, v19 // ................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v30, v30, x6 // .................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v13, x5 // ..................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v10, v7, x5 // ...................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v2, (x8) // ....................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v27, v18, v4 // .....................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v12, (x20) // ......................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v3, x5 // .......................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v19, (x4) // ........................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v30, x5 // .........................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v15, v13 // ..........................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v9, v10 // ...........................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v4, (x9) // ............................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v14, v23, v14 // .............................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v24, v12 // ..............................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v27, v18 // ...............................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v6, v6, v4 // ................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v16, v16, v7 // .................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v4, v8, v15 // ..................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v1, v11 // ...................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v12, v10, v28 // ....................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v14, v17 // .....................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + add x29, x31, x30 // .....................................................................................................................................*........................ + vse16.v v24, (x29) // ......................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v23, v0, v29 // .......................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v6, (x31) // ........................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v14, v30, v25 // .........................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v6, v4, v31 // ..........................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v20, v9 // ...........................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v12, v2 // ............................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v31, v16, v17 // .............................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + add x24, x14, x30 // .............................................................................................................................................*................ + vle16.v v9, (x24) // ..............................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v4, v23, v22 // ...............................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v2, (x14) // ................................................................................................................................................*............. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v12, v14, v9 // .................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v6, (x1) // ..................................................................................................................................................*........... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v28, v19 // ...................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v24, (x15) // ....................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v31, v2 // .....................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v4, (x25) // .......................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v12, (x18) // .........................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v28, (x19) // ...........................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v24, (x23) // .............................................................................................................................................................* // @slothy:lmul=1 // @slothy:sew=16 + bltu x11, x7, poly_basemul_acc_rvv_vlen128_loop // .............................................................................................................................................................* // @slothy:branch + + // --------------------------------------------------------------------- cycle (expected) ----------------------------------------------------------------------> + // 0 25 50 75 100 125 150 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------- + // vle16.v v0, (x11) // *............................................................................................................................................................. + // vle16.v v8, (x12) // ..*........................................................................................................................................................... + // addi x11, x11, 32 // .*............................................................................................................................................................ + // add x12, x12, x17 // .*............................................................................................................................................................ + // vle16.v v4, (x11) // ........*..................................................................................................................................................... + // vle16.v v12, (x12) // ......*....................................................................................................................................................... + // addi x11, x11, 32 // ..*........................................................................................................................................................... + // add x12, x12, x17 // .....*........................................................................................................................................................ + // vle16.v v1, (x11) // ..................................................*........................................................................................................... + // vle16.v v9, (x12) // ....................................................*......................................................................................................... + // addi x11, x11, 32 // ...*.......................................................................................................................................................... + // add x12, x12, x17 // ......*....................................................................................................................................................... + // vle16.v v5, (x11) // ....................*......................................................................................................................................... + // vle16.v v13, (x12) // ..............................................................................................*............................................................... + // addi x11, x11, 32 // ....*......................................................................................................................................................... + // add x12, x12, x17 // .......*...................................................................................................................................................... + // vle16.v v2, (x11) // ..............*............................................................................................................................................... + // vle16.v v10, (x12) // ............*................................................................................................................................................. + // addi x11, x11, 32 // ........*..................................................................................................................................................... + // add x12, x12, x17 // .....................*........................................................................................................................................ + // vle16.v v6, (x11) // ................*............................................................................................................................................. + // vle16.v v14, (x12) // ................................................*............................................................................................................. + // addi x11, x11, 32 // .........*.................................................................................................................................................... + // add x12, x12, x17 // ........................................*..................................................................................................................... + // vle16.v v3, (x11) // ................................................................................................*............................................................. + // vle16.v v11, (x12) // ..........................................*................................................................................................................... + // addi x11, x11, 32 // ....................*......................................................................................................................................... + // add x12, x12, x17 // .........................................*.................................................................................................................... + // vle16.v v7, (x11) // ........................................*..................................................................................................................... + // vle16.v v15, (x12) // ..........................................................................*................................................................................... + // addi x11, x11, 32 // .............................*................................................................................................................................ + // add x12, x12, x17 // ..........................................*................................................................................................................... + // vmul.vv v16, v0, v12 // .............................................*................................................................................................................ + // vmul.vv v17, v1, v13 // .........................................................................................................*.................................................... + // vmul.vv v18, v2, v14 // .............................................................*................................................................................................ + // vmul.vv v19, v3, v15 // .......................................................................................................*...................................................... + // vmul.vx v16, v16, x6 // ...................................................................*.......................................................................................... + // vmul.vx v17, v17, x6 // .................................................................................................................*............................................ + // vmul.vx v18, v18, x6 // .....................................................................*........................................................................................ + // vmul.vx v19, v19, x6 // ...............................................................................................................*.............................................. + // vmulh.vv v24, v0, v12 // .........*.................................................................................................................................................... + // vmulh.vv v25, v1, v13 // .....................................................................................................*........................................................ + // vmulh.vv v26, v2, v14 // .........................................................................................*.................................................................... + // vmulh.vv v27, v3, v15 // .....................................................................................................................*........................................ + // vmulh.vx v16, v16, x5 // .....................................................................................*........................................................................ + // vmulh.vx v17, v17, x5 // .........................................................................................................................*.................................... + // vmulh.vx v18, v18, x5 // .................................................................................*............................................................................ + // vmulh.vx v19, v19, x5 // .......................................................................................................................*...................................... + // vsub.vv v16, v24, v16 // .............................................................................................*................................................................ + // vsub.vv v17, v25, v17 // .................................................................................................................................*............................ + // vsub.vv v18, v26, v18 // .................................................................................................*............................................................ + // vsub.vv v19, v27, v19 // ...............................................................................................................................*.............................. + // vmul.vv v20, v4, v8 // ...................................................*.......................................................................................................... + // vmul.vv v21, v5, v9 // ...............................................................................*.............................................................................. + // vmul.vv v22, v6, v10 // ...................*.......................................................................................................................................... + // vmul.vv v23, v7, v11 // .................................................*............................................................................................................ + // vmul.vx v20, v20, x6 // ...........................................................................*.................................................................................. + // vmul.vx v21, v21, x6 // .......................................................................................*...................................................................... + // vmul.vx v22, v22, x6 // ................................*............................................................................................................................. + // vmul.vx v23, v23, x6 // .........................................................*.................................................................................................... + // vmulh.vv v24, v4, v8 // ...........*.................................................................................................................................................. + // vmulh.vv v25, v5, v9 // .............................................................................................................................*................................ + // vmulh.vv v26, v6, v10 // .....................................*........................................................................................................................ + // vmulh.vv v27, v7, v11 // ...........................................................*.................................................................................................. + // vmulh.vx v20, v20, x5 // ...................................................................................*.......................................................................... + // vmulh.vx v21, v21, x5 // ...............................................................................................*.............................................................. + // vmulh.vx v22, v22, x5 // ...........................................*.................................................................................................................. + // vmulh.vx v23, v23, x5 // .................................................................*............................................................................................ + // vsub.vv v20, v24, v20 // ...................................................................................................................................*.......................... + // vsub.vv v21, v25, v21 // .....................................................................................................................................*........................ + // vsub.vv v22, v26, v22 // .....................................................*........................................................................................................ + // vsub.vv v23, v27, v23 // .........................................................................*.................................................................................... + // add x14, x10, x17 // .........................*.................................................................................................................................... + // add x15, x10, x28 // ...................*.......................................................................................................................................... + // vle16.v v24, (x14) // ........................................................................................................................*..................................... + // vle16.v v25, (x15) // ................................................................................................................................................*............. + // add x14, x14, x30 // ...........................*.................................................................................................................................. + // add x15, x15, x30 // .............................................................................................................................................*................ + // vle16.v v26, (x14) // ............................*................................................................................................................................. + // vle16.v v27, (x15) // ..............................................................................................................................................*............... + // vadd.vv v16, v16, v20 // ...........................................................................................................................................*.................. + // vadd.vv v17, v17, v21 // .............................................................................................................................................*................ + // vadd.vv v18, v18, v22 // .......................................................................................................................................*...................... + // vadd.vv v19, v19, v23 // .........................................................................................................................................*.................... + // vadd.vv v16, v16, v24 // ...................................................................................................................................................*.......... + // vadd.vv v17, v17, v25 // .....................................................................................................................................................*........ + // vadd.vv v18, v18, v26 // ...............................................................................................................................................*.............. + // vadd.vv v19, v19, v27 // .................................................................................................................................................*............ + // add x14, x10, x17 // .......................*...................................................................................................................................... + // add x15, x10, x28 // ..........*................................................................................................................................................... + // vse16.v v16, (x14) // ...........................................................................................................................................................*.. + // vse16.v v17, (x15) // .............................................................................................................................................................* + // add x14, x14, x30 // ..........................................................................*................................................................................... + // add x15, x15, x30 // ................................................*............................................................................................................. + // vse16.v v18, (x14) // .......................................................................................................................................................*...... + // vse16.v v19, (x15) // .........................................................................................................................................................*.... + // addi x14, x13, 0 // *............................................................................................................................................................. + // add x15, x13, x17 // ...*.......................................................................................................................................................... + // vle16.v v16, (x14) // ..........*................................................................................................................................................... + // vle16.v v17, (x15) // ....*......................................................................................................................................................... + // add x14, x14, x16 // ...........*.................................................................................................................................................. + // add x15, x15, x16 // ........................*..................................................................................................................................... + // vle16.v v18, (x14) // ..................*........................................................................................................................................... + // vle16.v v19, (x15) // ..........................*................................................................................................................................... + // vmul.vv v20, v0, v8 // .......*...................................................................................................................................................... + // vmul.vv v21, v1, v9 // .......................................................*...................................................................................................... + // vmul.vv v22, v2, v10 // .................*............................................................................................................................................ + // vmul.vv v23, v3, v11 // ...................................................................................................*.......................................................... + // vmul.vx v20, v20, x6 // ...............*.............................................................................................................................................. + // vmul.vx v21, v21, x6 // ...............................................................*.............................................................................................. + // vmul.vx v22, v22, x6 // ...........................*.................................................................................................................................. + // vmul.vx v23, v23, x6 // ...........................................................................................................*.................................................. + // vmulh.vv v28, v0, v8 // .....*........................................................................................................................................................ + // vmulh.vv v29, v1, v9 // .............................................................................*................................................................................ + // vmulh.vv v30, v2, v10 // .................................*............................................................................................................................ + // vmulh.vv v31, v3, v11 // .............................................................................................................*................................................ + // vmulh.vx v20, v20, x5 // .............................*................................................................................................................................ + // vmulh.vx v21, v21, x5 // .......................................................................*...................................................................................... + // vmulh.vx v22, v22, x5 // ...................................*.......................................................................................................................... + // vmulh.vx v23, v23, x5 // ...................................................................................................................*.......................................... + // vsub.vv v20, v28, v20 // .........................................*.................................................................................................................... + // vsub.vv v21, v29, v21 // ...........................................................................................*.................................................................. + // vsub.vv v22, v30, v22 // ............................................*................................................................................................................. + // vsub.vv v23, v31, v23 // ...........................................................................................................................*.................................. + // vmul.vv v24, v4, v16 // .............*................................................................................................................................................ + // vmul.vv v25, v5, v17 // .......................*...................................................................................................................................... + // vmul.vv v26, v6, v18 // .....................*........................................................................................................................................ + // vmul.vv v27, v7, v19 // ...............................................*.............................................................................................................. + // vmul.vx v24, v24, x6 // .........................*.................................................................................................................................... + // vmul.vx v25, v25, x6 // ...............................*.............................................................................................................................. + // vmul.vx v26, v26, x6 // ..............................*............................................................................................................................... + // vmul.vx v27, v27, x6 // ........................................................*..................................................................................................... + // vmulh.vv v28, v4, v16 // ........................*..................................................................................................................................... + // vmulh.vv v29, v5, v17 // ....................................*......................................................................................................................... + // vmulh.vv v30, v6, v18 // ......................*....................................................................................................................................... + // vmulh.vv v31, v7, v19 // ............................................................*................................................................................................. + // vmulh.vx v24, v24, x5 // ..................................*........................................................................................................................... + // vmulh.vx v25, v25, x5 // .......................................*...................................................................................................................... + // vmulh.vx v26, v26, x5 // ......................................*....................................................................................................................... + // vmulh.vx v27, v27, x5 // ................................................................*............................................................................................. + // vsub.vv v24, v28, v24 // ....................................................................*......................................................................................... + // vsub.vv v25, v29, v25 // ..........................................................*................................................................................................... + // vsub.vv v26, v30, v26 // ..............................................*............................................................................................................... + // vsub.vv v27, v31, v27 // ........................................................................*..................................................................................... + // vmul.vv v0, v12, v24 // ............................................................................*................................................................................. + // vmul.vv v1, v13, v25 // ..................................................................................................*........................................................... + // vmul.vv v2, v14, v26 // ......................................................*....................................................................................................... + // vmul.vv v3, v15, v27 // ................................................................................*............................................................................. + // vmul.vx v0, v0, x6 // ....................................................................................*......................................................................... + // vmul.vx v1, v1, x6 // ..........................................................................................................*................................................... + // vmul.vx v2, v2, x6 // ..............................................................*............................................................................................... + // vmul.vx v3, v3, x6 // ........................................................................................*..................................................................... + // vmulh.vv v28, v12, v24 // ......................................................................................*....................................................................... + // vmulh.vv v29, v13, v25 // ................................................................................................................*............................................. + // vmulh.vv v30, v14, v26 // ..................................................................*........................................................................................... + // vmulh.vv v31, v15, v27 // ..................................................................................*........................................................................... + // vmulh.vx v0, v0, x5 // ............................................................................................*................................................................. + // vmulh.vx v1, v1, x5 // ..................................................................................................................*........................................... + // vmulh.vx v2, v2, x5 // ......................................................................*....................................................................................... + // vmulh.vx v3, v3, x5 // ......................................................................................................*....................................................... + // vsub.vv v0, v28, v0 // ....................................................................................................*......................................................... + // vsub.vv v1, v29, v1 // ..........................................................................................................................*................................... + // vsub.vv v2, v30, v2 // ..............................................................................*............................................................................... + // vsub.vv v3, v31, v3 // ..............................................................................................................*............................................... + // addi x14, x10, 0*2 // .............*................................................................................................................................................ + // add x15, x10, x16 // .................*............................................................................................................................................ + // vle16.v v28, (x14) // ............................................................................................................................*................................. + // vle16.v v29, (x15) // ........................................................................................................*..................................................... + // add x14, x14, x30 // ..............*............................................................................................................................................... + // add x15, x15, x30 // ..................*........................................................................................................................................... + // vle16.v v30, (x14) // ......................................................................................................................*....................................... + // vle16.v v31, (x15) // ....................................................................................................................*......................................... + // vadd.vv v20, v20, v0 // ............................................................................................................*................................................. + // vadd.vv v21, v21, v1 // ..................................................................................................................................*........................... + // vadd.vv v22, v22, v2 // ..........................................................................................*................................................................... + // vadd.vv v23, v23, v3 // ....................................................................................................................................*......................... + // vadd.vv v20, v20, v28 // ................................................................................................................................*............................. + // vadd.vv v21, v21, v29 // ..........................................................................................................................................*................... + // vadd.vv v22, v22, v30 // ..............................................................................................................................*............................... + // vadd.vv v23, v23, v31 // ............................................................................................................................................*................. + // addi x14, x10, 0 // ............*................................................................................................................................................. + // add x15, x10, x16 // ...............*.............................................................................................................................................. + // vse16.v v20, (x14) // ........................................................................................................................................*..................... + // vse16.v v21, (x15) // ..................................................................................................................................................*........... + // add x14, x14, x30 // .....................................................................................................................................*........................ + // add x15, x15, x30 // ................*............................................................................................................................................. + // vse16.v v22, (x14) // ......................................................................................................................................*....................... + // vse16.v v23, (x15) // ....................................................................................................................................................*......... + // add x10, x10, x30 // ..........................*................................................................................................................................... + // add x13, x13, x30 // ......................*....................................................................................................................................... + // add x10, x10, x30 // ............................*................................................................................................................................. + // bltu x11, x7, poly_basemul_acc_rvv_vlen128_loop // .............................................................................................................................................................* + + + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_cache_init_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_cache_init_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..a62ef4579 --- /dev/null +++ b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_cache_init_rvv_vlen128_opt_c908.s @@ -0,0 +1,456 @@ +#define _ZETAS_BASEMUL 320 + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +// void poly_basemul_cache_init_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_cache_init_rvv_vlen128_opt_c908 +.align 2 +poly_basemul_cache_init_rvv_vlen128_opt_c908: + addi sp, sp, -8*15 + save_regs + li a7, 32 + li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add a3, a3, t3 + add t3, a6, a7 + addi t2, a1, 256*2 +poly_basemul_cache_init_rvv_vlen128_loop: + // Instructions: 177 + // Expected cycles: 144 + // Expected IPC: 1.23 + // + // Cycle bound: 144.0 + // IPC bound: 1.23 + // + // Wall time: 64.84s + // User time: 64.84s + // + // -------------------------------------------------------------- cycle (expected) ---------------------------------------------------------------> + // 0 25 50 75 100 125 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------ + vle16.v v15, (x11) // *............................................................................................................................................... + add x9, x12, x17 // *............................................................................................................................................... + addi x29, x11, 32 // .*.............................................................................................................................................. + vle16.v v21, (x9) // ..*............................................................................................................................................. + addi x15, x29, 32 // ..*............................................................................................................................................. + add x23, x9, x17 // ...*............................................................................................................................................ + add x11, x23, x17 // ....*........................................................................................................................................... + vle16.v v11, (x15) // ....*........................................................................................................................................... + addi x26, x15, 32 // .....*.......................................................................................................................................... + vmulh.vv v7, v15, v21 // .....*.......................................................................................................................................... + vle16.v v31, (x11) // ......*......................................................................................................................................... + add x11, x11, x17 // ......*......................................................................................................................................... + vmul.vv v16, v15, v21 // .......*........................................................................................................................................ + addi x1, x26, 32 // .......*........................................................................................................................................ + add x18, x11, x17 // ........*....................................................................................................................................... + vle16.v v28, (x1) // ........*....................................................................................................................................... + addi x4, x1, 32 // .........*...................................................................................................................................... + vmul.vv v30, v11, v31 // .........*...................................................................................................................................... + addi x24, x4, 32 // ..........*..................................................................................................................................... + vle16.v v1, (x18) // ..........*..................................................................................................................................... + addi x9, x13, 0 // ...........*.................................................................................................................................... + vmul.vx v27, v16, x6 // ...........*.................................................................................................................................... + add x21, x18, x17 // ............*................................................................................................................................... + vle16.v v19, (x24) // ............*................................................................................................................................... + vmulh.vv v14, v28, v1 // .............*.................................................................................................................................. + add x8, x21, x17 // .............*.................................................................................................................................. + vle16.v v6, (x8) // ..............*................................................................................................................................. + addi x20, x24, 32 // ..............*................................................................................................................................. + vmul.vv v3, v28, v1 // ...............*................................................................................................................................ + vle16.v v18, (x23) // ................*............................................................................................................................... + vmul.vv v17, v19, v6 // .................*.............................................................................................................................. + vle16.v v13, (x26) // ..................*............................................................................................................................. + vmul.vx v12, v3, x6 // ...................*............................................................................................................................ + vle16.v v24, (x11) // ....................*........................................................................................................................... + vmul.vx v10, v30, x6 // .....................*.......................................................................................................................... + vle16.v v23, (x4) // ......................*......................................................................................................................... + vmul.vx v30, v17, x6 // .......................*........................................................................................................................ + vmulh.vv v25, v19, v6 // ........................*....................................................................................................................... + vmulh.vx v9, v27, x5 // .........................*...................................................................................................................... + vmulh.vx v0, v12, x5 // ..........................*..................................................................................................................... + vmulh.vx v4, v10, x5 // ...........................*.................................................................................................................... + vmulh.vx v22, v30, x5 // ............................*................................................................................................................... + vsub.vv v27, v7, v9 // .............................*.................................................................................................................. + vsub.vv v26, v14, v0 // ..............................*................................................................................................................. + vmul.vv v2, v13, v18 // ...............................*................................................................................................................ + vsub.vv v29, v25, v22 // ................................*............................................................................................................... + vmul.vv v22, v23, v24 // .................................*.............................................................................................................. + vle16.v v12, (x29) // ..................................*............................................................................................................. + add x29, x10, x17 // ...................................*............................................................................................................ + vmul.vx v2, v2, x6 // ...................................*............................................................................................................ + add x25, x10, x28 // ....................................*........................................................................................................... + vle16.v v20, (x12) // ....................................*........................................................................................................... + vmul.vx v22, v22, x6 // .....................................*.......................................................................................................... + vle16.v v8, (x21) // ......................................*......................................................................................................... + vmulh.vv v14, v23, v24 // .......................................*........................................................................................................ + vmulh.vv v10, v11, v31 // ........................................*....................................................................................................... + vmul.vv v9, v12, v20 // .........................................*...................................................................................................... + vle16.v v5, (x20) // ..........................................*..................................................................................................... + vmulh.vx v0, v2, x5 // ...........................................*.................................................................................................... + vmulh.vv v25, v5, v8 // .............................................*.................................................................................................. + vmul.vx v2, v9, x6 // .............................................*.................................................................................................. + vmul.vv v7, v5, v8 // ...............................................*................................................................................................ + vsub.vv v10, v10, v4 // ...............................................*................................................................................................ + vmulh.vx v2, v2, x5 // .................................................*.............................................................................................. + vmulh.vv v9, v12, v20 // .................................................*.............................................................................................. + vmul.vx v7, v7, x6 // ...................................................*............................................................................................ + vmulh.vv v4, v13, v18 // ...................................................*............................................................................................ + vsub.vv v2, v9, v2 // .....................................................*.......................................................................................... + vmulh.vx v22, v22, x5 // .....................................................*.......................................................................................... + vsub.vv v0, v4, v0 // .......................................................*........................................................................................ + vmulh.vx v16, v7, x5 // .......................................................*........................................................................................ + vadd.vv v2, v27, v2 // .........................................................*...................................................................................... + vsub.vv v22, v14, v22 // .........................................................*...................................................................................... + vadd.vv v0, v10, v0 // ...........................................................*.................................................................................... + vsub.vv v9, v25, v16 // ...........................................................*.................................................................................... + vse16.v v2, (x29) // .............................................................*.................................................................................. + vadd.vv v22, v26, v22 // .............................................................*.................................................................................. + add x29, x29, x30 // ..............................................................*................................................................................. + vse16.v v0, (x25) // ...............................................................*................................................................................ + vadd.vv v2, v29, v9 // ...............................................................*................................................................................ + add x12, x25, x30 // ................................................................*............................................................................... + vmul.vv v16, v19, v8 // .................................................................*.............................................................................. + vse16.v v22, (x29) // .................................................................*.............................................................................. + add x31, x13, x17 // ..................................................................*............................................................................. + vmul.vv v9, v11, v18 // ...................................................................*............................................................................ + vse16.v v2, (x12) // ...................................................................*............................................................................ + add x29, x31, x16 // ....................................................................*........................................................................... + vmul.vv v2, v28, v24 // .....................................................................*.......................................................................... + vle16.v v3, (x31) // .....................................................................*.......................................................................... + add x15, x9, x16 // ......................................................................*......................................................................... + vmul.vx v22, v9, x6 // .......................................................................*........................................................................ + vle16.v v17, (x15) // .......................................................................*........................................................................ + vmul.vx v2, v2, x6 // .........................................................................*...................................................................... + vmul.vv v0, v15, v20 // .........................................................................*...................................................................... + vmulh.vv v14, v15, v20 // ...........................................................................*.................................................................... + vle16.v v7, (x29) // ...........................................................................*.................................................................... + addi x29, x14, 0*0 // ............................................................................*................................................................... + vmulh.vv v11, v11, v18 // .............................................................................*.................................................................. + vmul.vx v0, v0, x6 // .............................................................................*.................................................................. + add x31, x14, x17 // ..............................................................................*................................................................. + add x14, x14, x30 // ..............................................................................*................................................................. + vmulh.vv v25, v31, v3 // ...............................................................................*................................................................ + vmul.vx v16, v16, x6 // ...............................................................................*................................................................ + add x21, x29, x16 // ................................................................................*............................................................... + vmulh.vx v15, v0, x5 // .................................................................................*.............................................................. + vle16.v v30, (x9) // .................................................................................*.............................................................. + add x15, x31, x16 // ..................................................................................*............................................................. + vmul.vv v20, v1, v17 // ...................................................................................*............................................................ + vmulh.vv v18, v19, v8 // ...................................................................................*............................................................ + addi x11, x20, 32 // ....................................................................................*........................................................... + vmulh.vx v2, v2, x5 // .....................................................................................*.......................................................... + vmulh.vx v22, v22, x5 // .....................................................................................*.......................................................... + vmul.vv v0, v21, v30 // .......................................................................................*........................................................ + vsub.vv v27, v14, v15 // .......................................................................................*........................................................ + vsub.vv v10, v11, v22 // .........................................................................................*...................................................... + vmulh.vx v15, v16, x5 // .........................................................................................*...................................................... + vmul.vv v22, v31, v3 // ...........................................................................................*.................................................... + vmulh.vv v21, v21, v30 // ...........................................................................................*.................................................... + vsub.vv v29, v18, v15 // .............................................................................................*.................................................. + vmulh.vv v30, v28, v24 // .............................................................................................*.................................................. + vmul.vv v15, v6, v7 // ...............................................................................................*................................................ + vmul.vx v11, v20, x6 // ...............................................................................................*................................................ + vsub.vv v26, v30, v2 // .................................................................................................*.............................................. + vmul.vx v22, v22, x6 // .................................................................................................*.............................................. + vmul.vx v30, v15, x6 // ...................................................................................................*............................................ + vmul.vx v15, v0, x6 // ...................................................................................................*............................................ + vmulh.vv v9, v1, v17 // .....................................................................................................*.......................................... + vmulh.vx v22, v22, x5 // .....................................................................................................*.......................................... + vmulh.vx v20, v15, x5 // .......................................................................................................*........................................ + vmulh.vv v0, v6, v7 // .......................................................................................................*........................................ + vsub.vv v14, v25, v22 // .........................................................................................................*...................................... + vmulh.vx v2, v11, x5 // .........................................................................................................*...................................... + vmulh.vx v15, v30, x5 // ...........................................................................................................*.................................... + vsub.vv v7, v21, v20 // ...........................................................................................................*.................................... + vsub.vv v25, v9, v2 // .............................................................................................................*.................................. + vmul.vv v22, v13, v14 // .............................................................................................................*.................................. + vsub.vv v9, v0, v15 // ...............................................................................................................*................................ + vse16.v v7, (x29) // ...............................................................................................................*................................ + addi x29, x10, 0 // ................................................................................................................*............................... + vse16.v v14, (x31) // .................................................................................................................*.............................. + vmul.vv v2, v23, v25 // .................................................................................................................*.............................. + add x12, x8, x17 // ..................................................................................................................*............................. + add x31, x10, x16 // ..................................................................................................................*............................. + vmul.vv v15, v5, v9 // ...................................................................................................................*............................ + vse16.v v25, (x21) // ...................................................................................................................*............................ + add x9, x29, x30 // ....................................................................................................................*........................... + vmulh.vv v25, v23, v25 // .....................................................................................................................*.......................... + vmul.vv v0, v12, v7 // .....................................................................................................................*.......................... + add x25, x31, x30 // ......................................................................................................................*......................... + vmul.vx v2, v2, x6 // .......................................................................................................................*........................ + vse16.v v9, (x15) // .......................................................................................................................*........................ + add x13, x13, x30 // ........................................................................................................................*....................... + vmul.vx v4, v15, x6 // .........................................................................................................................*...................... + vmul.vx v15, v0, x6 // .........................................................................................................................*...................... + vmul.vx v22, v22, x6 // ...........................................................................................................................*.................... + vmulh.vv v0, v12, v7 // ...........................................................................................................................*.................... + vmulh.vx v15, v15, x5 // .............................................................................................................................*.................. + vmulh.vv v14, v13, v14 // .............................................................................................................................*.................. + vmulh.vx v22, v22, x5 // ...............................................................................................................................*................ + vmulh.vx v2, v2, x5 // ...............................................................................................................................*................ + vsub.vv v15, v0, v15 // .................................................................................................................................*.............. + vmulh.vv v9, v5, v9 // .................................................................................................................................*.............. + vmulh.vx v0, v4, x5 // ...................................................................................................................................*............ + vsub.vv v12, v14, v22 // ...................................................................................................................................*............ + vadd.vv v15, v27, v15 // .....................................................................................................................................*.......... + vsub.vv v2, v25, v2 // .....................................................................................................................................*.......... + vsub.vv v0, v9, v0 // .......................................................................................................................................*........ + vadd.vv v22, v10, v12 // .......................................................................................................................................*........ + vadd.vv v2, v26, v2 // .........................................................................................................................................*...... + vse16.v v15, (x29) // .........................................................................................................................................*...... + add x29, x10, x30 // ..........................................................................................................................................*..... + vadd.vv v15, v29, v0 // ...........................................................................................................................................*.... + vse16.v v22, (x31) // ...........................................................................................................................................*.... + add x10, x29, x30 // ............................................................................................................................................*... + vse16.v v2, (x9) // .............................................................................................................................................*.. + vse16.v v15, (x25) // ...............................................................................................................................................* + bltu x11, x7, poly_basemul_cache_init_rvv_vlen128_loop // ...............................................................................................................................................* // @slothy:branch + + // -------------------------------------------------------------- cycle (expected) ---------------------------------------------------------------> + // 0 25 50 75 100 125 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------ + // vle16.v v0, (x11) // *............................................................................................................................................... + // vle16.v v8, (x12) // ....................................*........................................................................................................... + // addi x11, x11, 32 // .*.............................................................................................................................................. + // add x12, x12, x17 // *............................................................................................................................................... + // vle16.v v4, (x11) // ..................................*............................................................................................................. + // vle16.v v12, (x12) // ..*............................................................................................................................................. + // addi x11, x11, 32 // ..*............................................................................................................................................. + // add x12, x12, x17 // ...*............................................................................................................................................ + // vle16.v v1, (x11) // ....*........................................................................................................................................... + // vle16.v v9, (x12) // ................*............................................................................................................................... + // addi x11, x11, 32 // .....*.......................................................................................................................................... + // add x12, x12, x17 // ....*........................................................................................................................................... + // vle16.v v5, (x11) // ..................*............................................................................................................................. + // vle16.v v13, (x12) // ......*......................................................................................................................................... + // addi x11, x11, 32 // .......*........................................................................................................................................ + // add x12, x12, x17 // ......*......................................................................................................................................... + // vle16.v v2, (x11) // ........*....................................................................................................................................... + // vle16.v v10, (x12) // ....................*........................................................................................................................... + // addi x11, x11, 32 // .........*...................................................................................................................................... + // add x12, x12, x17 // ........*....................................................................................................................................... + // vle16.v v6, (x11) // ......................*......................................................................................................................... + // vle16.v v14, (x12) // ..........*..................................................................................................................................... + // addi x11, x11, 32 // ..........*..................................................................................................................................... + // add x12, x12, x17 // ............*................................................................................................................................... + // vle16.v v3, (x11) // ............*................................................................................................................................... + // vle16.v v11, (x12) // ......................................*......................................................................................................... + // addi x11, x11, 32 // ..............*................................................................................................................................. + // add x12, x12, x17 // .............*.................................................................................................................................. + // vle16.v v7, (x11) // ..........................................*..................................................................................................... + // vle16.v v15, (x12) // ..............*................................................................................................................................. + // addi x11, x11, 32 // ....................................................................................*........................................................... + // add x12, x12, x17 // ..................................................................................................................*............................. + // vmul.vv v16, v0, v12 // .......*........................................................................................................................................ + // vmul.vv v17, v1, v13 // .........*...................................................................................................................................... + // vmul.vv v18, v2, v14 // ...............*................................................................................................................................ + // vmul.vv v19, v3, v15 // .................*.............................................................................................................................. + // vmul.vx v16, v16, x6 // ...........*.................................................................................................................................... + // vmul.vx v17, v17, x6 // .....................*.......................................................................................................................... + // vmul.vx v18, v18, x6 // ...................*............................................................................................................................ + // vmul.vx v19, v19, x6 // .......................*........................................................................................................................ + // vmulh.vv v24, v0, v12 // .....*.......................................................................................................................................... + // vmulh.vv v25, v1, v13 // ........................................*....................................................................................................... + // vmulh.vv v26, v2, v14 // .............*.................................................................................................................................. + // vmulh.vv v27, v3, v15 // ........................*....................................................................................................................... + // vmulh.vx v16, v16, x5 // .........................*...................................................................................................................... + // vmulh.vx v17, v17, x5 // ...........................*.................................................................................................................... + // vmulh.vx v18, v18, x5 // ..........................*..................................................................................................................... + // vmulh.vx v19, v19, x5 // ............................*................................................................................................................... + // vsub.vv v16, v24, v16 // .............................*.................................................................................................................. + // vsub.vv v17, v25, v17 // ...............................................*................................................................................................ + // vsub.vv v18, v26, v18 // ..............................*................................................................................................................. + // vsub.vv v19, v27, v19 // ................................*............................................................................................................... + // vmul.vv v20, v4, v8 // .........................................*...................................................................................................... + // vmul.vv v21, v5, v9 // ...............................*................................................................................................................ + // vmul.vv v22, v6, v10 // .................................*.............................................................................................................. + // vmul.vv v23, v7, v11 // ...............................................*................................................................................................ + // vmul.vx v20, v20, x6 // .............................................*.................................................................................................. + // vmul.vx v21, v21, x6 // ...................................*............................................................................................................ + // vmul.vx v22, v22, x6 // .....................................*.......................................................................................................... + // vmul.vx v23, v23, x6 // ...................................................*............................................................................................ + // vmulh.vv v24, v4, v8 // .................................................*.............................................................................................. + // vmulh.vv v25, v5, v9 // ...................................................*............................................................................................ + // vmulh.vv v26, v6, v10 // .......................................*........................................................................................................ + // vmulh.vv v27, v7, v11 // .............................................*.................................................................................................. + // vmulh.vx v20, v20, x5 // .................................................*.............................................................................................. + // vmulh.vx v21, v21, x5 // ...........................................*.................................................................................................... + // vmulh.vx v22, v22, x5 // .....................................................*.......................................................................................... + // vmulh.vx v23, v23, x5 // .......................................................*........................................................................................ + // vsub.vv v20, v24, v20 // .....................................................*.......................................................................................... + // vsub.vv v21, v25, v21 // .......................................................*........................................................................................ + // vsub.vv v22, v26, v22 // .........................................................*...................................................................................... + // vsub.vv v23, v27, v23 // ...........................................................*.................................................................................... + // vadd.vv v16, v16, v20 // .........................................................*...................................................................................... + // vadd.vv v17, v17, v21 // ...........................................................*.................................................................................... + // vadd.vv v18, v18, v22 // .............................................................*.................................................................................. + // vadd.vv v19, v19, v23 // ...............................................................*................................................................................ + // add x29, x10, x17 // ...................................*............................................................................................................ + // add x15, x10, x28 // ....................................*........................................................................................................... + // vse16.v v16, (x29) // .............................................................*.................................................................................. + // vse16.v v17, (x15) // ...............................................................*................................................................................ + // add x29, x29, x30 // ..............................................................*................................................................................. + // add x15, x15, x30 // ................................................................*............................................................................... + // vse16.v v18, (x29) // .................................................................*.............................................................................. + // vse16.v v19, (x15) // ...................................................................*............................................................................ + // addi x29, x13, 0 // ...........*.................................................................................................................................... + // add x15, x13, x17 // ..................................................................*............................................................................. + // vle16.v v16, (x29) // .................................................................................*.............................................................. + // vle16.v v17, (x15) // .....................................................................*.......................................................................... + // add x29, x29, x16 // ......................................................................*......................................................................... + // add x15, x15, x16 // ....................................................................*........................................................................... + // vle16.v v18, (x29) // .......................................................................*........................................................................ + // vle16.v v19, (x15) // ...........................................................................*.................................................................... + // vmul.vv v20, v0, v8 // .........................................................................*...................................................................... + // vmul.vv v21, v1, v9 // ...................................................................*............................................................................ + // vmul.vv v22, v2, v10 // .....................................................................*.......................................................................... + // vmul.vv v23, v3, v11 // .................................................................*.............................................................................. + // vmul.vx v20, v20, x6 // .............................................................................*.................................................................. + // vmul.vx v21, v21, x6 // .......................................................................*........................................................................ + // vmul.vx v22, v22, x6 // .........................................................................*...................................................................... + // vmul.vx v23, v23, x6 // ...............................................................................*................................................................ + // vmulh.vv v28, v0, v8 // ...........................................................................*.................................................................... + // vmulh.vv v29, v1, v9 // .............................................................................*.................................................................. + // vmulh.vv v30, v2, v10 // .............................................................................................*.................................................. + // vmulh.vv v31, v3, v11 // ...................................................................................*............................................................ + // vmulh.vx v20, v20, x5 // .................................................................................*.............................................................. + // vmulh.vx v21, v21, x5 // .....................................................................................*.......................................................... + // vmulh.vx v22, v22, x5 // .....................................................................................*.......................................................... + // vmulh.vx v23, v23, x5 // .........................................................................................*...................................................... + // vsub.vv v20, v28, v20 // .......................................................................................*........................................................ + // vsub.vv v21, v29, v21 // .........................................................................................*...................................................... + // vsub.vv v22, v30, v22 // .................................................................................................*.............................................. + // vsub.vv v23, v31, v23 // .............................................................................................*.................................................. + // vmul.vv v24, v12, v16 // .......................................................................................*........................................................ + // vmul.vv v25, v13, v17 // ...........................................................................................*.................................................... + // vmul.vv v26, v14, v18 // ...................................................................................*............................................................ + // vmul.vv v27, v15, v19 // ...............................................................................................*................................................ + // vmul.vx v24, v24, x6 // ...................................................................................................*............................................ + // vmul.vx v25, v25, x6 // .................................................................................................*.............................................. + // vmul.vx v26, v26, x6 // ...............................................................................................*................................................ + // vmul.vx v27, v27, x6 // ...................................................................................................*............................................ + // vmulh.vv v28, v12, v16 // ...........................................................................................*.................................................... + // vmulh.vv v29, v13, v17 // ...............................................................................*................................................................ + // vmulh.vv v30, v14, v18 // .....................................................................................................*.......................................... + // vmulh.vv v31, v15, v19 // .......................................................................................................*........................................ + // vmulh.vx v24, v24, x5 // .......................................................................................................*........................................ + // vmulh.vx v25, v25, x5 // .....................................................................................................*.......................................... + // vmulh.vx v26, v26, x5 // .........................................................................................................*...................................... + // vmulh.vx v27, v27, x5 // ...........................................................................................................*.................................... + // vsub.vv v24, v28, v24 // ...........................................................................................................*.................................... + // vsub.vv v25, v29, v25 // .........................................................................................................*...................................... + // vsub.vv v26, v30, v26 // .............................................................................................................*.................................. + // vsub.vv v27, v31, v27 // ...............................................................................................................*................................ + // addi x29, x14, 0*0 // ............................................................................*................................................................... + // add x15, x14, x17 // ..............................................................................*................................................................. + // vse16.v v24, (x29) // ...............................................................................................................*................................ + // vse16.v v25, (x15) // .................................................................................................................*.............................. + // add x29, x29, x16 // ................................................................................*............................................................... + // add x15, x15, x16 // ..................................................................................*............................................................. + // vse16.v v26, (x29) // ...................................................................................................................*............................ + // vse16.v v27, (x15) // .......................................................................................................................*........................ + // vmul.vv v0, v4, v24 // .....................................................................................................................*.......................... + // vmul.vv v1, v5, v25 // .............................................................................................................*.................................. + // vmul.vv v2, v6, v26 // .................................................................................................................*.............................. + // vmul.vv v3, v7, v27 // ...................................................................................................................*............................ + // vmul.vx v0, v0, x6 // .........................................................................................................................*...................... + // vmul.vx v1, v1, x6 // ...........................................................................................................................*.................... + // vmul.vx v2, v2, x6 // .......................................................................................................................*........................ + // vmul.vx v3, v3, x6 // .........................................................................................................................*...................... + // vmulh.vv v28, v4, v24 // ...........................................................................................................................*.................... + // vmulh.vv v29, v5, v25 // .............................................................................................................................*.................. + // vmulh.vv v30, v6, v26 // .....................................................................................................................*.......................... + // vmulh.vv v31, v7, v27 // .................................................................................................................................*.............. + // vmulh.vx v0, v0, x5 // .............................................................................................................................*.................. + // vmulh.vx v1, v1, x5 // ...............................................................................................................................*................ + // vmulh.vx v2, v2, x5 // ...............................................................................................................................*................ + // vmulh.vx v3, v3, x5 // ...................................................................................................................................*............ + // vsub.vv v0, v28, v0 // .................................................................................................................................*.............. + // vsub.vv v1, v29, v1 // ...................................................................................................................................*............ + // vsub.vv v2, v30, v2 // .....................................................................................................................................*.......... + // vsub.vv v3, v31, v3 // .......................................................................................................................................*........ + // vadd.vv v20, v20, v0 // .....................................................................................................................................*.......... + // vadd.vv v21, v21, v1 // .......................................................................................................................................*........ + // vadd.vv v22, v22, v2 // .........................................................................................................................................*...... + // vadd.vv v23, v23, v3 // ...........................................................................................................................................*.... + // addi x29, x10, 0 // ................................................................................................................*............................... + // add x15, x10, x16 // ..................................................................................................................*............................. + // vse16.v v20, (x29) // .........................................................................................................................................*...... + // vse16.v v21, (x15) // ...........................................................................................................................................*.... + // add x29, x29, x30 // ....................................................................................................................*........................... + // add x15, x15, x30 // ......................................................................................................................*......................... + // vse16.v v22, (x29) // .............................................................................................................................................*.. + // vse16.v v23, (x15) // ...............................................................................................................................................* + // add x10, x10, x30 // ..........................................................................................................................................*..... + // add x13, x13, x30 // ........................................................................................................................*....................... + // add x10, x10, x30 // ............................................................................................................................................*... + // add x14, x14, x30 // ..............................................................................*................................................................. + // bltu x11, x7, poly_basemul_cache_init_rvv_vlen128_loop // ...............................................................................................................................................* + + + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_cached_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_cached_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..ac7292a93 --- /dev/null +++ b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_cached_rvv_vlen128_opt_c908.s @@ -0,0 +1,394 @@ +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +// void poly_basemul_cached_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table, int16_t *b_cache) + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_cached_rvv_vlen128 +.align 2 +poly_basemul_cached_rvv_vlen128_opt_c908: + addi sp, sp, -8*15 + save_regs + li a7, 32 + addi t2, a1, 256*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add t3, a6, a7 +poly_basemul_cached_rvv_vlen128_loop: + // Instructions: 148 + // Expected cycles: 210 + // Expected IPC: 0.70 + // + // Cycle bound: 207.0 + // IPC bound: 0.71 + // + // Wall time: 94027.76s + // User time: 94027.76s + // + // ----------------------------------------------------------------------------------------------- cycle (expected) ------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|--------- + vle16.v v19, (x11) // *................................................................................................................................................................................................................. // @slothy:lmul=1 + add x26, x10, x16 // *................................................................................................................................................................................................................. + addi x20, x11, 32 // .*................................................................................................................................................................................................................ + addi x13, x14, 0*0 // .*................................................................................................................................................................................................................ + addi x22, x20, 32 // ..*............................................................................................................................................................................................................... + vle16.v v14, (x12) // ..*............................................................................................................................................................................................................... // @slothy:lmul=1 + addi x27, x22, 32 // ...*.............................................................................................................................................................................................................. + add x23, x14, x17 // ...*.............................................................................................................................................................................................................. + vle16.v v22, (x20) // ....*............................................................................................................................................................................................................. // @slothy:lmul=1 + add x20, x23, x16 // ....*............................................................................................................................................................................................................. + addi x1, x27, 32 // .....*............................................................................................................................................................................................................ + vmul.vv v24, v19, v14 // .....*............................................................................................................................................................................................................ // @slothy:lmul=1 + addi x24, x1, 32 // ......*........................................................................................................................................................................................................... + vle16.v v26, (x13) // ......*........................................................................................................................................................................................................... // @slothy:lmul=1 + add x14, x14, x30 // .......*.......................................................................................................................................................................................................... + addi x25, x24, 32 // .......*.......................................................................................................................................................................................................... + addi x4, x25, 32 // ........*......................................................................................................................................................................................................... + vle16.v v5, (x20) // ........*......................................................................................................................................................................................................... // @slothy:lmul=1 + add x8, x12, x17 // .........*........................................................................................................................................................................................................ + vmul.vv v0, v22, v26 // .........*........................................................................................................................................................................................................ // @slothy:lmul=1 + add x9, x8, x17 // ..........*....................................................................................................................................................................................................... + vle16.v v21, (x4) // ..........*....................................................................................................................................................................................................... // @slothy:lmul=1 + add x20, x13, x16 // ...........*...................................................................................................................................................................................................... + add x31, x9, x17 // ...........*...................................................................................................................................................................................................... + add x29, x31, x17 // ............*..................................................................................................................................................................................................... + vle16.v v20, (x20) // ............*..................................................................................................................................................................................................... // @slothy:lmul=1 + addi x11, x4, 32 // .............*.................................................................................................................................................................................................... + vmul.vv v7, v21, v5 // .............*.................................................................................................................................................................................................... // @slothy:lmul=1 + add x20, x29, x17 // ..............*................................................................................................................................................................................................... + vle16.v v13, (x25) // ..............*................................................................................................................................................................................................... // @slothy:lmul=1 + add x4, x20, x17 // ...............*.................................................................................................................................................................................................. + vle16.v v2, (x4) // ................*................................................................................................................................................................................................. // @slothy:lmul=1 + add x13, x26, x30 // ................*................................................................................................................................................................................................. + vmulh.vv v5, v21, v5 // ..................*............................................................................................................................................................................................... // @slothy:lmul=1 + vmul.vv v27, v21, v2 // ....................*............................................................................................................................................................................................. // @slothy:lmul=1 + vmul.vv v30, v13, v2 // ......................*........................................................................................................................................................................................... // @slothy:lmul=1 + vmul.vx v9, v27, x6 // ........................*......................................................................................................................................................................................... // @slothy:lmul=1 + vmul.vx v7, v7, x6 // ..........................*....................................................................................................................................................................................... // @slothy:lmul=1 + vmul.vx v30, v30, x6 // ............................*..................................................................................................................................................................................... // @slothy:lmul=1 + vmulh.vx v7, v7, x5 // ..............................*................................................................................................................................................................................... // @slothy:lmul=1 + vmulh.vv v27, v13, v2 // ................................*................................................................................................................................................................................. // @slothy:lmul=1 + vmulh.vx v30, v30, x5 // ..................................*............................................................................................................................................................................... // @slothy:lmul=1 + vsub.vv v7, v5, v7 // ....................................*............................................................................................................................................................................. // @slothy:lmul=1 + vsub.vv v5, v27, v30 // ......................................*........................................................................................................................................................................... // @slothy:lmul=1 + vmulh.vv v21, v21, v2 // ........................................*......................................................................................................................................................................... // @slothy:lmul=1 + vmulh.vx v30, v9, x5 // ..........................................*....................................................................................................................................................................... // @slothy:lmul=1 + vle16.v v8, (x22) // ............................................*..................................................................................................................................................................... // @slothy:lmul=1 + vmul.vx v9, v0, x6 // .............................................*.................................................................................................................................................................... // @slothy:lmul=1 + vle16.v v17, (x1) // ..............................................*................................................................................................................................................................... // @slothy:lmul=1 + vle16.v v29, (x20) // ................................................*................................................................................................................................................................. // @slothy:lmul=1 + add x20, x10, x30 // ................................................*................................................................................................................................................................. + vadd.vv v7, v5, v7 // .................................................*................................................................................................................................................................ // @slothy:lmul=1 + add x1, x10, x28 // .................................................*................................................................................................................................................................ + vle16.v v16, (x27) // ..................................................*............................................................................................................................................................... // @slothy:lmul=1 + add x4, x4, x17 // ..................................................*............................................................................................................................................................... + add x12, x4, x17 // ...................................................*.............................................................................................................................................................. + vle16.v v25, (x29) // ....................................................*............................................................................................................................................................. // @slothy:lmul=1 + add x29, x10, x17 // ....................................................*............................................................................................................................................................. + vmul.vv v0, v17, v29 // .....................................................*............................................................................................................................................................ // @slothy:lmul=1 + vle16.v v23, (x4) // ......................................................*........................................................................................................................................................... // @slothy:lmul=1 + add x25, x29, x30 // ......................................................*........................................................................................................................................................... + add x4, x1, x30 // .......................................................*.......................................................................................................................................................... + vle16.v v10, (x9) // ........................................................*......................................................................................................................................................... // @slothy:lmul=1 + vmul.vv v5, v17, v25 // .........................................................*........................................................................................................................................................ // @slothy:lmul=1 + vse16.v v7, (x13) // ..........................................................*....................................................................................................................................................... // @slothy:lmul=1 + addi x13, x10, 0 // ..........................................................*....................................................................................................................................................... + add x10, x20, x30 // ...........................................................*...................................................................................................................................................... + add x20, x13, x30 // ............................................................*..................................................................................................................................................... + vle16.v v27, (x23) // ............................................................*..................................................................................................................................................... // @slothy:lmul=1 + vsub.vv v11, v21, v30 // .............................................................*.................................................................................................................................................... // @slothy:lmul=1 + vle16.v v3, (x24) // ..............................................................*................................................................................................................................................... // @slothy:lmul=1 + vmul.vx v7, v0, x6 // .................................................................*................................................................................................................................................ // @slothy:lmul=1 + vmulh.vv v31, v22, v14 // ...................................................................*.............................................................................................................................................. // @slothy:lmul=1 + vmulh.vv v30, v17, v25 // .....................................................................*............................................................................................................................................ // @slothy:lmul=1 + vmulh.vx v15, v7, x5 // .......................................................................*.......................................................................................................................................... // @slothy:lmul=1 + vmulh.vv v2, v8, v10 // .........................................................................*........................................................................................................................................ // @slothy:lmul=1 + vmulh.vv v28, v13, v23 // ...........................................................................*...................................................................................................................................... // @slothy:lmul=1 + vmul.vv v6, v16, v10 // .............................................................................*.................................................................................................................................... // @slothy:lmul=1 + vmul.vx v0, v5, x6 // ...............................................................................*.................................................................................................................................. // @slothy:lmul=1 + vmul.vv v5, v13, v23 // .................................................................................*................................................................................................................................ // @slothy:lmul=1 + vmul.vv v7, v8, v10 // ...................................................................................*.............................................................................................................................. // @slothy:lmul=1 + vmul.vx v21, v5, x6 // .....................................................................................*............................................................................................................................ // @slothy:lmul=1 + vmul.vx v23, v7, x6 // .......................................................................................*.......................................................................................................................... // @slothy:lmul=1 + vmulh.vv v5, v16, v27 // .........................................................................................*........................................................................................................................ // @slothy:lmul=1 + vmul.vv v7, v16, v27 // ...........................................................................................*...................................................................................................................... // @slothy:lmul=1 + vmulh.vx v0, v0, x5 // .............................................................................................*.................................................................................................................... // @slothy:lmul=1 + vmulh.vx v27, v21, x5 // ...............................................................................................*.................................................................................................................. // @slothy:lmul=1 + vsub.vv v21, v30, v0 // .................................................................................................*................................................................................................................ // @slothy:lmul=1 + vsub.vv v0, v28, v27 // ...................................................................................................*.............................................................................................................. // @slothy:lmul=1 + vmulh.vv v27, v22, v26 // .....................................................................................................*............................................................................................................ // @slothy:lmul=1 + vadd.vv v26, v0, v11 // .......................................................................................................*.......................................................................................................... // @slothy:lmul=1 + vmulh.vx v0, v23, x5 // .........................................................................................................*........................................................................................................ // @slothy:lmul=1 + vmul.vx v7, v7, x6 // ...........................................................................................................*...................................................................................................... // @slothy:lmul=1 + vsub.vv v0, v2, v0 // .............................................................................................................*.................................................................................................... // @slothy:lmul=1 + vmul.vx v30, v24, x6 // ...............................................................................................................*.................................................................................................. // @slothy:lmul=1 + vmulh.vx v7, v7, x5 // .................................................................................................................*................................................................................................ // @slothy:lmul=1 + vmulh.vv v23, v19, v14 // ...................................................................................................................*.............................................................................................. // @slothy:lmul=1 + vmulh.vx v2, v30, x5 // .....................................................................................................................*............................................................................................ // @slothy:lmul=1 + vsub.vv v7, v5, v7 // .......................................................................................................................*.......................................................................................... // @slothy:lmul=1 + vmul.vv v5, v3, v20 // .........................................................................................................................*........................................................................................ // @slothy:lmul=1 + vadd.vv v7, v0, v7 // ...........................................................................................................................*...................................................................................... // @slothy:lmul=1 + vmul.vx v5, v5, x6 // .............................................................................................................................*.................................................................................... // @slothy:lmul=1 + vmul.vv v0, v3, v25 // ...............................................................................................................................*.................................................................................. // @slothy:lmul=1 + vmulh.vx v30, v5, x5 // .................................................................................................................................*................................................................................ // @slothy:lmul=1 + vsub.vv v2, v23, v2 // ...................................................................................................................................*.............................................................................. // @slothy:lmul=1 + vmul.vx v24, v6, x6 // .....................................................................................................................................*............................................................................ // @slothy:lmul=1 + vmul.vx v5, v0, x6 // .......................................................................................................................................*.......................................................................... // @slothy:lmul=1 + vmulh.vv v23, v3, v25 // .........................................................................................................................................*........................................................................ // @slothy:lmul=1 + vmulh.vx v5, v5, x5 // ...........................................................................................................................................*...................................................................... // @slothy:lmul=1 + vmulh.vv v11, v17, v29 // .............................................................................................................................................*.................................................................... // @slothy:lmul=1 + vmulh.vv v0, v3, v20 // ...............................................................................................................................................*.................................................................. // @slothy:lmul=1 + vsub.vv v23, v23, v5 // .................................................................................................................................................*................................................................ // @slothy:lmul=1 + vsub.vv v20, v11, v15 // ...................................................................................................................................................*.............................................................. // @slothy:lmul=1 + vmulh.vx v5, v9, x5 // .....................................................................................................................................................*............................................................ // @slothy:lmul=1 + vadd.vv v9, v20, v23 // .......................................................................................................................................................*.......................................................... // @slothy:lmul=1 + vsub.vv v5, v27, v5 // .........................................................................................................................................................*........................................................ // @slothy:lmul=1 + vle16.v v23, (x8) // ..........................................................................................................................................................*....................................................... // @slothy:lmul=1 + vsub.vv v0, v0, v30 // ............................................................................................................................................................*..................................................... // @slothy:lmul=1 + vmul.vv v27, v19, v23 // .............................................................................................................................................................*.................................................... // @slothy:lmul=1 + vmulh.vx v30, v24, x5 // ................................................................................................................................................................*................................................. // @slothy:lmul=1 + vadd.vv v5, v2, v5 // .................................................................................................................................................................*................................................ // @slothy:lmul=1 + vse16.v v7, (x26) // ....................................................................................................................................................................*............................................. // @slothy:lmul=1 + vadd.vv v7, v21, v0 // .....................................................................................................................................................................*............................................ // @slothy:lmul=1 + vmul.vx v21, v27, x6 // ......................................................................................................................................................................*........................................... // @slothy:lmul=1 + vmulh.vv v0, v16, v10 // .........................................................................................................................................................................*........................................ // @slothy:lmul=1 + vse16.v v9, (x25) // ..........................................................................................................................................................................*....................................... // @slothy:lmul=1 + vse16.v v26, (x4) // ............................................................................................................................................................................*..................................... // @slothy:lmul=1 + vmulh.vv v27, v19, v23 // .............................................................................................................................................................................*.................................... // @slothy:lmul=1 + vle16.v v9, (x31) // ..............................................................................................................................................................................*................................... // @slothy:lmul=1 + vse16.v v5, (x13) // ................................................................................................................................................................................*................................. // @slothy:lmul=1 + vsub.vv v0, v0, v30 // .................................................................................................................................................................................*................................ // @slothy:lmul=1 + vse16.v v7, (x20) // ..................................................................................................................................................................................*............................... // @slothy:lmul=1 + vmulh.vx v7, v21, x5 // .....................................................................................................................................................................................*............................ // @slothy:lmul=1 + vmul.vv v30, v8, v9 // .......................................................................................................................................................................................*.......................... // @slothy:lmul=1 + vsub.vv v5, v27, v7 // .........................................................................................................................................................................................*........................ // @slothy:lmul=1 + vmul.vv v7, v22, v14 // ...........................................................................................................................................................................................*...................... // @slothy:lmul=1 + vmul.vx v30, v30, x6 // .............................................................................................................................................................................................*.................... // @slothy:lmul=1 + vmul.vx v7, v7, x6 // ...............................................................................................................................................................................................*.................. // @slothy:lmul=1 + vmulh.vv v27, v8, v9 // .................................................................................................................................................................................................*................ // @slothy:lmul=1 + vmulh.vx v7, v7, x5 // ...................................................................................................................................................................................................*.............. // @slothy:lmul=1 + vmulh.vx v30, v30, x5 // .....................................................................................................................................................................................................*............ // @slothy:lmul=1 + vsub.vv v7, v31, v7 // .......................................................................................................................................................................................................*.......... // @slothy:lmul=1 + vsub.vv v30, v27, v30 // .........................................................................................................................................................................................................*........ // @slothy:lmul=1 + vadd.vv v5, v5, v7 // ...........................................................................................................................................................................................................*...... // @slothy:lmul=1 + vadd.vv v7, v30, v0 // .............................................................................................................................................................................................................*.... // @slothy:lmul=1 + vse16.v v5, (x29) // ...............................................................................................................................................................................................................*.. // @slothy:lmul=1 + vse16.v v7, (x1) // .................................................................................................................................................................................................................* // @slothy:lmul=1 + bltu x11, x7, poly_basemul_cached_rvv_vlen128_loop // .................................................................................................................................................................................................................* // @slothy:branch + + // ----------------------------------------------------------------------------------------------- cycle (expected) ------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|--------- + // vle16.v v0, (x11) // *................................................................................................................................................................................................................. + // vle16.v v8, (x12) // ..*............................................................................................................................................................................................................... + // addi x11, x11, 32 // .*................................................................................................................................................................................................................ + // add x12, x12, x17 // .........*........................................................................................................................................................................................................ + // vle16.v v4, (x11) // ....*............................................................................................................................................................................................................. + // vle16.v v12, (x12) // ..........................................................................................................................................................*....................................................... + // addi x11, x11, 32 // ..*............................................................................................................................................................................................................... + // add x12, x12, x17 // ..........*....................................................................................................................................................................................................... + // vle16.v v1, (x11) // ............................................*..................................................................................................................................................................... + // vle16.v v9, (x12) // ........................................................*......................................................................................................................................................... + // addi x11, x11, 32 // ...*.............................................................................................................................................................................................................. + // add x12, x12, x17 // ...........*...................................................................................................................................................................................................... + // vle16.v v5, (x11) // ..................................................*............................................................................................................................................................... + // vle16.v v13, (x12) // ..............................................................................................................................................................................*................................... + // addi x11, x11, 32 // .....*............................................................................................................................................................................................................ + // add x12, x12, x17 // ............*..................................................................................................................................................................................................... + // vle16.v v2, (x11) // ..............................................*................................................................................................................................................................... + // vle16.v v10, (x12) // ....................................................*............................................................................................................................................................. + // addi x11, x11, 32 // ......*........................................................................................................................................................................................................... + // add x12, x12, x17 // ..............*................................................................................................................................................................................................... + // vle16.v v6, (x11) // ..............................................................*................................................................................................................................................... + // vle16.v v14, (x12) // ................................................*................................................................................................................................................................. + // addi x11, x11, 32 // .......*.......................................................................................................................................................................................................... + // add x12, x12, x17 // ...............*.................................................................................................................................................................................................. + // vle16.v v3, (x11) // ..............*................................................................................................................................................................................................... + // vle16.v v11, (x12) // ................*................................................................................................................................................................................................. + // addi x11, x11, 32 // ........*......................................................................................................................................................................................................... + // add x12, x12, x17 // ..................................................*............................................................................................................................................................... + // vle16.v v7, (x11) // ..........*....................................................................................................................................................................................................... + // vle16.v v15, (x12) // ......................................................*........................................................................................................................................................... + // addi x11, x11, 32 // .............*.................................................................................................................................................................................................... + // add x12, x12, x17 // ...................................................*.............................................................................................................................................................. + // vmul.vv v16, v0, v12 // .............................................................................................................................................................*.................................................... + // vmul.vv v17, v1, v13 // .......................................................................................................................................................................................*.......................... + // vmul.vv v18, v2, v14 // .....................................................*............................................................................................................................................................ + // vmul.vv v19, v3, v15 // .................................................................................*................................................................................................................................ + // vmul.vx v16, v16, x6 // ......................................................................................................................................................................*........................................... + // vmul.vx v17, v17, x6 // .............................................................................................................................................................................................*.................... + // vmul.vx v18, v18, x6 // .................................................................*................................................................................................................................................ + // vmul.vx v19, v19, x6 // .....................................................................................*............................................................................................................................ + // vmulh.vv v24, v0, v12 // .............................................................................................................................................................................*.................................... + // vmulh.vv v25, v1, v13 // .................................................................................................................................................................................................*................ + // vmulh.vv v26, v2, v14 // .............................................................................................................................................*.................................................................... + // vmulh.vv v27, v3, v15 // ...........................................................................*...................................................................................................................................... + // vmulh.vx v16, v16, x5 // .....................................................................................................................................................................................*............................ + // vmulh.vx v17, v17, x5 // .....................................................................................................................................................................................................*............ + // vmulh.vx v18, v18, x5 // .......................................................................*.......................................................................................................................................... + // vmulh.vx v19, v19, x5 // ...............................................................................................*.................................................................................................................. + // vsub.vv v16, v24, v16 // .........................................................................................................................................................................................*........................ + // vsub.vv v17, v25, v17 // .........................................................................................................................................................................................................*........ + // vsub.vv v18, v26, v18 // ...................................................................................................................................................*.............................................................. + // vsub.vv v19, v27, v19 // ...................................................................................................*.............................................................................................................. + // vmul.vv v20, v4, v8 // ...........................................................................................................................................................................................*...................... + // vmul.vv v21, v5, v9 // .............................................................................*.................................................................................................................................... + // vmul.vv v22, v6, v10 // ...............................................................................................................................*.................................................................................. + // vmul.vv v23, v7, v11 // ....................*............................................................................................................................................................................................. + // vmul.vx v20, v20, x6 // ...............................................................................................................................................................................................*.................. + // vmul.vx v21, v21, x6 // .....................................................................................................................................*............................................................................ + // vmul.vx v22, v22, x6 // .......................................................................................................................................*.......................................................................... + // vmul.vx v23, v23, x6 // ........................*......................................................................................................................................................................................... + // vmulh.vv v24, v4, v8 // ...................................................................*.............................................................................................................................................. + // vmulh.vv v25, v5, v9 // .........................................................................................................................................................................*........................................ + // vmulh.vv v26, v6, v10 // .........................................................................................................................................*........................................................................ + // vmulh.vv v27, v7, v11 // ........................................*......................................................................................................................................................................... + // vmulh.vx v20, v20, x5 // ...................................................................................................................................................................................................*.............. + // vmulh.vx v21, v21, x5 // ................................................................................................................................................................*................................................. + // vmulh.vx v22, v22, x5 // ...........................................................................................................................................*...................................................................... + // vmulh.vx v23, v23, x5 // ..........................................*....................................................................................................................................................................... + // vsub.vv v20, v24, v20 // .......................................................................................................................................................................................................*.......... + // vsub.vv v21, v25, v21 // .................................................................................................................................................................................*................................ + // vsub.vv v22, v26, v22 // .................................................................................................................................................*................................................................ + // vsub.vv v23, v27, v23 // .............................................................*.................................................................................................................................................... + // vadd.vv v16, v16, v20 // ...........................................................................................................................................................................................................*...... + // vadd.vv v17, v17, v21 // .............................................................................................................................................................................................................*.... + // vadd.vv v18, v18, v22 // .......................................................................................................................................................*.......................................................... + // vadd.vv v19, v19, v23 // .......................................................................................................*.......................................................................................................... + // add x29, x10, x17 // ....................................................*............................................................................................................................................................. + // add x15, x10, x28 // .................................................*................................................................................................................................................................ + // vse16.v v16, (x29) // ...............................................................................................................................................................................................................*.. + // vse16.v v17, (x15) // .................................................................................................................................................................................................................* + // add x29, x29, x30 // ......................................................*........................................................................................................................................................... + // add x15, x15, x30 // .......................................................*.......................................................................................................................................................... + // vse16.v v18, (x29) // ..........................................................................................................................................................................*....................................... + // vse16.v v19, (x15) // ............................................................................................................................................................................*..................................... + // addi x29, x14, 0*0 // .*................................................................................................................................................................................................................ + // add x15, x14, x17 // ...*.............................................................................................................................................................................................................. + // vle16.v v24, (x29) // ......*........................................................................................................................................................................................................... + // vle16.v v25, (x15) // ............................................................*..................................................................................................................................................... + // add x29, x29, x16 // ...........*...................................................................................................................................................................................................... + // add x15, x15, x16 // ....*............................................................................................................................................................................................................. + // vle16.v v26, (x29) // ............*..................................................................................................................................................................................................... + // vle16.v v27, (x15) // ........*......................................................................................................................................................................................................... + // vmul.vv v20, v0, v8 // .....*............................................................................................................................................................................................................ + // vmul.vv v21, v1, v9 // ...................................................................................*.............................................................................................................................. + // vmul.vv v22, v2, v10 // .........................................................*........................................................................................................................................................ + // vmul.vv v23, v3, v11 // ......................*........................................................................................................................................................................................... + // vmul.vx v20, v20, x6 // ...............................................................................................................*.................................................................................................. + // vmul.vx v21, v21, x6 // .......................................................................................*.......................................................................................................................... + // vmul.vx v22, v22, x6 // ...............................................................................*.................................................................................................................................. + // vmul.vx v23, v23, x6 // ............................*..................................................................................................................................................................................... + // vmulh.vv v28, v0, v8 // ...................................................................................................................*.............................................................................................. + // vmulh.vv v29, v1, v9 // .........................................................................*........................................................................................................................................ + // vmulh.vv v30, v2, v10 // .....................................................................*............................................................................................................................................ + // vmulh.vv v31, v3, v11 // ................................*................................................................................................................................................................................. + // vmulh.vx v20, v20, x5 // .....................................................................................................................*............................................................................................ + // vmulh.vx v21, v21, x5 // .........................................................................................................*........................................................................................................ + // vmulh.vx v22, v22, x5 // .............................................................................................*.................................................................................................................... + // vmulh.vx v23, v23, x5 // ..................................*............................................................................................................................................................................... + // vsub.vv v20, v28, v20 // ...................................................................................................................................*.............................................................................. + // vsub.vv v21, v29, v21 // .............................................................................................................*.................................................................................................... + // vsub.vv v22, v30, v22 // .................................................................................................*................................................................................................................ + // vsub.vv v23, v31, v23 // ......................................*........................................................................................................................................................................... + // vmul.vv v0, v4, v24 // .........*........................................................................................................................................................................................................ + // vmul.vv v1, v5, v25 // ...........................................................................................*...................................................................................................................... + // vmul.vv v2, v6, v26 // .........................................................................................................................*........................................................................................ + // vmul.vv v3, v7, v27 // .............*.................................................................................................................................................................................................... + // vmul.vx v0, v0, x6 // .............................................*.................................................................................................................................................................... + // vmul.vx v1, v1, x6 // ...........................................................................................................*...................................................................................................... + // vmul.vx v2, v2, x6 // .............................................................................................................................*.................................................................................... + // vmul.vx v3, v3, x6 // ..........................*....................................................................................................................................................................................... + // vmulh.vv v28, v4, v24 // .....................................................................................................*............................................................................................................ + // vmulh.vv v29, v5, v25 // .........................................................................................*........................................................................................................................ + // vmulh.vv v30, v6, v26 // ...............................................................................................................................................*.................................................................. + // vmulh.vv v31, v7, v27 // ..................*............................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................*............................................................ + // vmulh.vx v1, v1, x5 // .................................................................................................................*................................................................................................ + // vmulh.vx v2, v2, x5 // .................................................................................................................................*................................................................................ + // vmulh.vx v3, v3, x5 // ..............................*................................................................................................................................................................................... + // vsub.vv v0, v28, v0 // .........................................................................................................................................................*........................................................ + // vsub.vv v1, v29, v1 // .......................................................................................................................*.......................................................................................... + // vsub.vv v2, v30, v2 // ............................................................................................................................................................*..................................................... + // vsub.vv v3, v31, v3 // ....................................*............................................................................................................................................................................. + // vadd.vv v20, v20, v0 // .................................................................................................................................................................*................................................ + // vadd.vv v21, v21, v1 // ...........................................................................................................................*...................................................................................... + // vadd.vv v22, v22, v2 // .....................................................................................................................................................................*............................................ + // vadd.vv v23, v23, v3 // .................................................*................................................................................................................................................................ + // addi x29, x10, 0 // ..........................................................*....................................................................................................................................................... + // add x15, x10, x16 // *................................................................................................................................................................................................................. + // vse16.v v20, (x29) // ................................................................................................................................................................................*................................. + // vse16.v v21, (x15) // ....................................................................................................................................................................*............................................. + // add x29, x29, x30 // ............................................................*..................................................................................................................................................... + // add x15, x15, x30 // ................*................................................................................................................................................................................................. + // vse16.v v22, (x29) // ..................................................................................................................................................................................*............................... + // vse16.v v23, (x15) // ..........................................................*....................................................................................................................................................... + // add x10, x10, x30 // ................................................*................................................................................................................................................................. + // add x10, x10, x30 // ...........................................................*...................................................................................................................................................... + // add x14, x14, x30 // .......*.......................................................................................................................................................................................................... + // bltu x11, x7, poly_basemul_cached_rvv_vlen128_loop // .................................................................................................................................................................................................................* + + + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..62c75f915 --- /dev/null +++ b/examples/opt/riscv/kyber_basemul/kyber_poly_basemul_rvv_vlen128_opt_c908.s @@ -0,0 +1,439 @@ +#define _ZETAS_BASEMUL 0 + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +// void poly_basemul_rvv_vlen128(int16_t *r, const int16_t *a, const int16_t *b, const int16_t *table); +// (a0b0 + b1 * (a1zeta mod q)) mod q + ((a0b1 + a1b0) mod q)x + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_basemul_rvv_vlen128 +.align 2 +poly_basemul_rvv_vlen128_opt_c908: + addi sp, sp, -8*15 + save_regs + li a7, 32 + li t3, _ZETAS_BASEMUL*2 + vsetvli a7, a7, e16, m1, tu, mu + li t0, 3329 + li t1, -3327 + slli t5, a7, 3 + slli a6, a7, 2 + slli a7, a7, 1 + add a3, a3, t3 + add t3, a6, a7 + addi t2, a1, 256*2 +poly_basemul_rvv_vlen128_loop: + // Instructions: 168 + // Expected cycles: 252 + // Expected IPC: 0.67 + // + // Cycle bound: 247.0 + // IPC bound: 0.68 + // + // Wall time: 95017.12s + // User time: 95017.12s + // + // -------------------------------------------------------------------------------------------------------------------- cycle (expected) ---------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|- + add x25, x11, x17 // *........................................................................................................................................................................................................................................................... + vle16.v v28, (x11) // *........................................................................................................................................................................................................................................................... // @slothy:lmul=1 + add x19, x10, x30 // .*.......................................................................................................................................................................................................................................................... + addi x1, x13, 0 // .*.......................................................................................................................................................................................................................................................... + vle16.v v15, (x12) // ..*......................................................................................................................................................................................................................................................... // @slothy:lmul=1 + add x31, x10, x17 // ..*......................................................................................................................................................................................................................................................... + add x20, x12, x17 // ...*........................................................................................................................................................................................................................................................ + add x21, x31, x30 // ...*........................................................................................................................................................................................................................................................ + vle16.v v3, (x1) // ....*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 + add x18, x10, x28 // ....*....................................................................................................................................................................................................................................................... + vmulh.vv v0, v28, v15 // .....*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 + add x4, x20, x17 // .....*...................................................................................................................................................................................................................................................... + add x27, x4, x17 // ......*..................................................................................................................................................................................................................................................... + vle16.v v11, (x25) // ......*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 + add x29, x27, x17 // .......*.................................................................................................................................................................................................................................................... + vle16.v v29, (x27) // ........*................................................................................................................................................................................................................................................... // @slothy:lmul=1 + add x23, x29, x17 // ........*................................................................................................................................................................................................................................................... + add x14, x25, x17 // .........*.................................................................................................................................................................................................................................................. + vmul.vv v13, v11, v3 // ..........*................................................................................................................................................................................................................................................. // @slothy:lmul=1 + add x24, x18, x30 // ..........*................................................................................................................................................................................................................................................. + add x15, x1, x16 // ...........*................................................................................................................................................................................................................................................ + vmulh.vv v14, v11, v3 // ............*............................................................................................................................................................................................................................................... // @slothy:lmul=1 + addi x27, x10, 0 // ............*............................................................................................................................................................................................................................................... + add x22, x10, x16 // .............*.............................................................................................................................................................................................................................................. + add x25, x14, x17 // ..............*............................................................................................................................................................................................................................................. + vmul.vx v10, v13, x6 // ..............*............................................................................................................................................................................................................................................. // @slothy:lmul=1 + add x1, x25, x17 // ...............*............................................................................................................................................................................................................................................ + vmul.vv v4, v28, v15 // ................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 + add x26, x1, x17 // ................*........................................................................................................................................................................................................................................... + add x10, x19, x30 // .................*.......................................................................................................................................................................................................................................... + vle16.v v6, (x15) // ..................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 + vmulh.vx v30, v10, x5 // ...................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 + vle16.v v22, (x26) // ....................*....................................................................................................................................................................................................................................... // @slothy:lmul=1 + vle16.v v8, (x23) // ......................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 + vmul.vv v21, v22, v6 // .......................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 + vle16.v v1, (x20) // ........................*................................................................................................................................................................................................................................... // @slothy:lmul=1 + add x20, x13, x17 // ........................*................................................................................................................................................................................................................................... + add x13, x13, x30 // .........................*.................................................................................................................................................................................................................................. + vle16.v v3, (x4) // ..........................*................................................................................................................................................................................................................................. // @slothy:lmul=1 + vsub.vv v30, v14, v30 // ...........................*................................................................................................................................................................................................................................ // @slothy:lmul=1 + vle16.v v27, (x1) // ............................*............................................................................................................................................................................................................................... // @slothy:lmul=1 + vle16.v v10, (x25) // ..............................*............................................................................................................................................................................................................................. // @slothy:lmul=1 + add x25, x23, x17 // ..............................*............................................................................................................................................................................................................................. + vmul.vx v12, v21, x6 // ...............................*............................................................................................................................................................................................................................ // @slothy:lmul=1 + add x9, x25, x17 // ...............................*............................................................................................................................................................................................................................ + vle16.v v31, (x29) // ................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 + add x29, x26, x17 // ................................*........................................................................................................................................................................................................................... + add x1, x29, x17 // .................................*.......................................................................................................................................................................................................................... + add x11, x1, x17 // ..................................*......................................................................................................................................................................................................................... + vle16.v v13, (x20) // ..................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 + add x12, x9, x17 // ...................................*........................................................................................................................................................................................................................ + vmul.vv v14, v1, v30 // ...................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 + vle16.v v5, (x14) // ....................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 + add x20, x20, x16 // ....................................*....................................................................................................................................................................................................................... + vmulh.vv v20, v1, v30 // .......................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 + vmulh.vv v6, v22, v6 // .........................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 + vmulh.vx v30, v12, x5 // ...........................................*................................................................................................................................................................................................................ // @slothy:lmul=1 + vmulh.vv v7, v10, v3 // .............................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 + vsub.vv v26, v6, v30 // ...............................................*............................................................................................................................................................................................................ // @slothy:lmul=1 + vmulh.vv v2, v27, v8 // .................................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 + vmul.vv v30, v8, v26 // ...................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 + vmul.vx v21, v14, x6 // .....................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 + vmul.vx v30, v30, x6 // .......................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 + vmulh.vv v14, v8, v26 // .........................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 + vmulh.vx v30, v30, x5 // ...........................................................*................................................................................................................................................................................................ // @slothy:lmul=1 + vmul.vv v12, v5, v3 // .............................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 + vmul.vv v16, v5, v29 // ...............................................................*............................................................................................................................................................................................ // @slothy:lmul=1 + vmul.vv v17, v10, v3 // .................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 + vsub.vv v30, v14, v30 // ...................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 + vmul.vx v19, v17, x6 // .....................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 + vmul.vv v17, v27, v31 // .......................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 + vmulh.vx v14, v21, x5 // .........................................................................*.................................................................................................................................................................................. // @slothy:lmul=1 + vmulh.vx v24, v19, x5 // ...........................................................................*................................................................................................................................................................................ // @slothy:lmul=1 + vmul.vx v18, v17, x6 // .............................................................................*.............................................................................................................................................................................. // @slothy:lmul=1 + vmulh.vv v9, v5, v29 // ...............................................................................*............................................................................................................................................................................ // @slothy:lmul=1 + vsub.vv v14, v20, v14 // .................................................................................*.......................................................................................................................................................................... // @slothy:lmul=1 + vmulh.vx v23, v18, x5 // ...................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 + vmul.vv v21, v22, v31 // .....................................................................................*...................................................................................................................................................................... // @slothy:lmul=1 + vmulh.vv v6, v27, v31 // .......................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 + vmul.vv v26, v10, v13 // .........................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 + vsub.vv v25, v6, v23 // ...........................................................................................*................................................................................................................................................................ // @slothy:lmul=1 + vmul.vx v6, v4, x6 // .............................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 + vadd.vv v30, v25, v30 // ...............................................................................................*............................................................................................................................................................ // @slothy:lmul=1 + vmulh.vx v20, v6, x5 // .................................................................................................*.......................................................................................................................................................... // @slothy:lmul=1 + vmul.vx v6, v26, x6 // ...................................................................................................*........................................................................................................................................................ // @slothy:lmul=1 + vsub.vv v20, v0, v20 // .....................................................................................................*...................................................................................................................................................... // @slothy:lmul=1 + vmul.vx v17, v21, x6 // .......................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 + vadd.vv v14, v20, v14 // .........................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 + vmulh.vx v6, v6, x5 // ...........................................................................................................*................................................................................................................................................ // @slothy:lmul=1 + vle16.v v21, (x20) // ............................................................................................................*............................................................................................................................................... // @slothy:lmul=1 + vle16.v v18, (x1) // ..............................................................................................................*............................................................................................................................................. // @slothy:lmul=1 + add x1, x27, x30 // ..............................................................................................................*............................................................................................................................................. + vmul.vx v26, v12, x6 // ...............................................................................................................*............................................................................................................................................ // @slothy:lmul=1 + vle16.v v25, (x9) // ................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 + vse16.v v14, (x27) // ..................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 + vmulh.vv v20, v22, v31 // ...................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 + vse16.v v30, (x1) // ....................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 + vmulh.vv v14, v18, v21 // .......................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 + vmulh.vx v4, v26, x5 // .........................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 + vmul.vx v12, v16, x6 // ...........................................................................................................................*................................................................................................................................ // @slothy:lmul=1 + vmul.vv v30, v18, v21 // .............................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 + vsub.vv v21, v7, v24 // ...............................................................................................................................*............................................................................................................................ // @slothy:lmul=1 + vmulh.vx v12, v12, x5 // .................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 + vmul.vx v30, v30, x6 // ...................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 + vsub.vv v12, v9, v12 // .....................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 + vmulh.vx v30, v30, x5 // .......................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 + vadd.vv v12, v12, v21 // .........................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 + vsub.vv v21, v14, v30 // ...........................................................................................................................................*................................................................................................................ // @slothy:lmul=1 + vmul.vv v19, v27, v8 // .............................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 + vmul.vv v30, v25, v21 // ...............................................................................................................................................*............................................................................................................ // @slothy:lmul=1 + vle16.v v16, (x25) // .................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 + vmul.vv v0, v11, v15 // ..................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 + vse16.v v12, (x18) // ...................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 + vle16.v v9, (x29) // .....................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 + vmul.vx v14, v30, x6 // .......................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 + vmulh.vv v30, v25, v21 // .........................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 + vmulh.vx v24, v14, x5 // ...........................................................................................................................................................*................................................................................................ // @slothy:lmul=1 + vmul.vx v21, v19, x6 // .............................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 + vmul.vx v0, v0, x6 // ...............................................................................................................................................................*............................................................................................ // @slothy:lmul=1 + vmulh.vx v14, v17, x5 // .................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 + vmulh.vx v8, v21, x5 // ...................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 + vsub.vv v21, v20, v14 // .....................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 + vsub.vv v8, v2, v8 // .......................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 + vmul.vv v14, v9, v16 // .........................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 + vadd.vv v31, v8, v21 // ...........................................................................................................................................................................*................................................................................ // @slothy:lmul=1 + vmul.vx v14, v14, x6 // .............................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 + vmulh.vv v21, v10, v13 // ...............................................................................................................................................................................*............................................................................ // @slothy:lmul=1 + vmulh.vv v22, v9, v16 // .................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 + vsub.vv v27, v21, v6 // ...................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 + vmulh.vv v21, v5, v3 // .....................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 + vmul.vv v12, v29, v27 // .......................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 + vmulh.vv v23, v29, v27 // .........................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 + vmul.vx v6, v12, x6 // ...........................................................................................................................................................................................*................................................................ // @slothy:lmul=1 + add x1, x22, x30 // ............................................................................................................................................................................................*............................................................... + vsub.vv v8, v21, v4 // .............................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 + vmulh.vx v10, v6, x5 // ...............................................................................................................................................................................................*............................................................ // @slothy:lmul=1 + vmulh.vx v27, v14, x5 // .................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 + vsub.vv v5, v23, v10 // ...................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 + vsub.vv v30, v30, v24 // .....................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 + vadd.vv v10, v8, v5 // .......................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 + vmul.vv v21, v9, v25 // .........................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 + vsub.vv v8, v22, v27 // ...........................................................................................................................................................................................................*................................................ // @slothy:lmul=1 + vmulh.vx v6, v0, x5 // .............................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 + vadd.vv v30, v8, v30 // ...............................................................................................................................................................................................................*............................................ // @slothy:lmul=1 + vmulh.vv v14, v11, v15 // ................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 + vmulh.vv v13, v9, v25 // ...................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 + vmul.vv v12, v18, v16 // ....................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 + vse16.v v30, (x1) // .......................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 + vsub.vv v6, v14, v6 // ........................................................................................................................................................................................................................*................................... // @slothy:lmul=1 + vse16.v v31, (x21) // .........................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 + vse16.v v10, (x22) // ...........................................................................................................................................................................................................................*................................ // @slothy:lmul=1 + vmul.vv v31, v28, v1 // .............................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 + vmul.vx v4, v12, x6 // ...............................................................................................................................................................................................................................*............................ // @slothy:lmul=1 + vmul.vx v3, v31, x6 // .................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 + vmul.vx v12, v21, x6 // ...................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 + vmulh.vx v14, v4, x5 // .....................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 + vmulh.vv v21, v18, v16 // .......................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 + vmulh.vx v0, v12, x5 // .........................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 + vmulh.vx v12, v3, x5 // ...........................................................................................................................................................................................................................................*................ // @slothy:lmul=1 + vsub.vv v11, v13, v0 // .............................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 + vmulh.vv v0, v28, v1 // ...............................................................................................................................................................................................................................................*............ // @slothy:lmul=1 + vsub.vv v30, v21, v14 // .................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 + vsub.vv v4, v0, v12 // ...................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 + vadd.vv v30, v11, v30 // .....................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 + vadd.vv v14, v4, v6 // .......................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 + vse16.v v30, (x24) // .........................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 + vse16.v v14, (x31) // ...........................................................................................................................................................................................................................................................* // @slothy:lmul=1 + bltu x11, x7, poly_basemul_rvv_vlen128_loop // ...........................................................................................................................................................................................................................................................* // @slothy:branch + + // -------------------------------------------------------------------------------------------------------------------- cycle (expected) ---------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|- + // vle16.v v0, (x11) // *........................................................................................................................................................................................................................................................... + // vle16.v v8, (x12) // ..*......................................................................................................................................................................................................................................................... + // add x11, x11, x17 // *........................................................................................................................................................................................................................................................... + // add x12, x12, x17 // ...*........................................................................................................................................................................................................................................................ + // vle16.v v4, (x11) // ......*..................................................................................................................................................................................................................................................... + // vle16.v v12, (x12) // ........................*................................................................................................................................................................................................................................... + // add x11, x11, x17 // .........*.................................................................................................................................................................................................................................................. + // add x12, x12, x17 // .....*...................................................................................................................................................................................................................................................... + // vle16.v v1, (x11) // ....................................*....................................................................................................................................................................................................................... + // vle16.v v9, (x12) // ..........................*................................................................................................................................................................................................................................. + // add x11, x11, x17 // ..............*............................................................................................................................................................................................................................................. + // add x12, x12, x17 // ......*..................................................................................................................................................................................................................................................... + // vle16.v v5, (x11) // ..............................*............................................................................................................................................................................................................................. + // vle16.v v13, (x12) // ........*................................................................................................................................................................................................................................................... + // add x11, x11, x17 // ...............*............................................................................................................................................................................................................................................ + // add x12, x12, x17 // .......*.................................................................................................................................................................................................................................................... + // vle16.v v2, (x11) // ............................*............................................................................................................................................................................................................................... + // vle16.v v10, (x12) // ................................*........................................................................................................................................................................................................................... + // add x11, x11, x17 // ................*........................................................................................................................................................................................................................................... + // add x12, x12, x17 // ........*................................................................................................................................................................................................................................................... + // vle16.v v6, (x11) // ....................*....................................................................................................................................................................................................................................... + // vle16.v v14, (x12) // ......................*..................................................................................................................................................................................................................................... + // add x11, x11, x17 // ................................*........................................................................................................................................................................................................................... + // add x12, x12, x17 // ..............................*............................................................................................................................................................................................................................. + // vle16.v v3, (x11) // .....................................................................................................................................................*...................................................................................................... + // vle16.v v11, (x12) // .................................................................................................................................................*.......................................................................................................... + // add x11, x11, x17 // .................................*.......................................................................................................................................................................................................................... + // add x12, x12, x17 // ...............................*............................................................................................................................................................................................................................ + // vle16.v v7, (x11) // ..............................................................................................................*............................................................................................................................................. + // vle16.v v15, (x12) // ................................................................................................................*........................................................................................................................................... + // add x11, x11, x17 // ..................................*......................................................................................................................................................................................................................... + // add x12, x12, x17 // ...................................*........................................................................................................................................................................................................................ + // vmul.vv v16, v0, v12 // .............................................................................................................................................................................................................................*.............................. + // vmul.vv v17, v1, v13 // ...............................................................*............................................................................................................................................................................................ + // vmul.vv v18, v2, v14 // .............................................................................................................................................*.............................................................................................................. + // vmul.vv v19, v3, v15 // .........................................................................................................................................................................................................*.................................................. + // vmul.vx v16, v16, x6 // .................................................................................................................................................................................................................................*.......................... + // vmul.vx v17, v17, x6 // ...........................................................................................................................*................................................................................................................................ + // vmul.vx v18, v18, x6 // .............................................................................................................................................................*.............................................................................................. + // vmul.vx v19, v19, x6 // ...................................................................................................................................................................................................................................*........................ + // vmulh.vv v24, v0, v12 // ...............................................................................................................................................................................................................................................*............ + // vmulh.vv v25, v1, v13 // ...............................................................................*............................................................................................................................................................................ + // vmulh.vv v26, v2, v14 // .................................................*.......................................................................................................................................................................................................... + // vmulh.vv v27, v3, v15 // ...................................................................................................................................................................................................................*........................................ + // vmulh.vx v16, v16, x5 // ...........................................................................................................................................................................................................................................*................ + // vmulh.vx v17, v17, x5 // .................................................................................................................................*.......................................................................................................................... + // vmulh.vx v18, v18, x5 // ...................................................................................................................................................................*........................................................................................ + // vmulh.vx v19, v19, x5 // .........................................................................................................................................................................................................................................*.................. + // vsub.vv v16, v24, v16 // ...................................................................................................................................................................................................................................................*........ + // vsub.vv v17, v25, v17 // .....................................................................................................................................*...................................................................................................................... + // vsub.vv v18, v26, v18 // .......................................................................................................................................................................*.................................................................................... + // vsub.vv v19, v27, v19 // .............................................................................................................................................................................................................................................*.............. + // vmul.vv v20, v4, v8 // ..................................................................................................................................................*......................................................................................................... + // vmul.vv v21, v5, v9 // .................................................................*.......................................................................................................................................................................................... + // vmul.vv v22, v6, v10 // .....................................................................................*...................................................................................................................................................................... + // vmul.vv v23, v7, v11 // ....................................................................................................................................................................................................................*....................................... + // vmul.vx v20, v20, x6 // ...............................................................................................................................................................*............................................................................................ + // vmul.vx v21, v21, x6 // .....................................................................*...................................................................................................................................................................................... + // vmul.vx v22, v22, x6 // .......................................................................................................*.................................................................................................................................................... + // vmul.vx v23, v23, x6 // ...............................................................................................................................................................................................................................*............................ + // vmulh.vv v24, v4, v8 // ................................................................................................................................................................................................................*........................................... + // vmulh.vv v25, v5, v9 // .............................................*.............................................................................................................................................................................................................. + // vmulh.vv v26, v6, v10 // ...................................................................................................................*........................................................................................................................................ + // vmulh.vv v27, v7, v11 // .......................................................................................................................................................................................................................................*.................... + // vmulh.vx v20, v20, x5 // .............................................................................................................................................................................................................*.............................................. + // vmulh.vx v21, v21, x5 // ...........................................................................*................................................................................................................................................................................ + // vmulh.vx v22, v22, x5 // .................................................................................................................................................................*.......................................................................................... + // vmulh.vx v23, v23, x5 // .....................................................................................................................................................................................................................................*...................... + // vsub.vv v20, v24, v20 // ........................................................................................................................................................................................................................*................................... + // vsub.vv v21, v25, v21 // ...............................................................................................................................*............................................................................................................................ + // vsub.vv v22, v26, v22 // .....................................................................................................................................................................*...................................................................................... + // vsub.vv v23, v27, v23 // .................................................................................................................................................................................................................................................*.......... + // vadd.vv v16, v16, v20 // .......................................................................................................................................................................................................................................................*.... + // vadd.vv v17, v17, v21 // .........................................................................................................................................*.................................................................................................................. + // vadd.vv v18, v18, v22 // ...........................................................................................................................................................................*................................................................................ + // vadd.vv v19, v19, v23 // .....................................................................................................................................................................................................................................................*...... + // add x14, x10, x17 // ..*......................................................................................................................................................................................................................................................... + // add x15, x10, x28 // ....*....................................................................................................................................................................................................................................................... + // vse16.v v16, (x14) // ...........................................................................................................................................................................................................................................................* + // vse16.v v17, (x15) // ...................................................................................................................................................*........................................................................................................ + // add x14, x14, x30 // ...*........................................................................................................................................................................................................................................................ + // add x15, x15, x30 // ..........*................................................................................................................................................................................................................................................. + // vse16.v v18, (x14) // .........................................................................................................................................................................................................................*.................................. + // vse16.v v19, (x15) // .........................................................................................................................................................................................................................................................*.. + // addi x14, x13, 0 // .*.......................................................................................................................................................................................................................................................... + // add x15, x13, x17 // ........................*................................................................................................................................................................................................................................... + // vle16.v v16, (x14) // ....*....................................................................................................................................................................................................................................................... + // vle16.v v17, (x15) // ..................................*......................................................................................................................................................................................................................... + // add x14, x14, x16 // ...........*................................................................................................................................................................................................................................................ + // add x15, x15, x16 // ....................................*....................................................................................................................................................................................................................... + // vle16.v v18, (x14) // ..................*......................................................................................................................................................................................................................................... + // vle16.v v19, (x15) // ............................................................................................................*............................................................................................................................................... + // vmul.vv v20, v0, v8 // ................*........................................................................................................................................................................................................................................... + // vmul.vv v21, v1, v9 // .............................................................*.............................................................................................................................................................................................. + // vmul.vv v22, v2, v10 // .......................................................................*.................................................................................................................................................................................... + // vmul.vv v23, v3, v11 // .........................................................................................................................................................................*.................................................................................. + // vmul.vx v20, v20, x6 // .............................................................................................*.............................................................................................................................................................. + // vmul.vx v21, v21, x6 // ...............................................................................................................*............................................................................................................................................ + // vmul.vx v22, v22, x6 // .............................................................................*.............................................................................................................................................................................. + // vmul.vx v23, v23, x6 // .............................................................................................................................................................................*.............................................................................. + // vmulh.vv v28, v0, v8 // .....*...................................................................................................................................................................................................................................................... + // vmulh.vv v29, v1, v9 // .....................................................................................................................................................................................*...................................................................... + // vmulh.vv v30, v2, v10 // .......................................................................................*.................................................................................................................................................................... + // vmulh.vv v31, v3, v11 // .................................................................................................................................................................................*.......................................................................... + // vmulh.vx v20, v20, x5 // .................................................................................................*.......................................................................................................................................................... + // vmulh.vx v21, v21, x5 // .........................................................................................................................*.................................................................................................................................. + // vmulh.vx v22, v22, x5 // ...................................................................................*........................................................................................................................................................................ + // vmulh.vx v23, v23, x5 // .................................................................................................................................................................................................*.......................................................... + // vsub.vv v20, v28, v20 // .....................................................................................................*...................................................................................................................................................... + // vsub.vv v21, v29, v21 // .............................................................................................................................................................................................*.............................................................. + // vsub.vv v22, v30, v22 // ...........................................................................................*................................................................................................................................................................ + // vsub.vv v23, v31, v23 // ...........................................................................................................................................................................................................*................................................ + // vmul.vv v24, v4, v16 // ..........*................................................................................................................................................................................................................................................. + // vmul.vv v25, v5, v17 // .........................................................................................*.................................................................................................................................................................. + // vmul.vv v26, v6, v18 // .......................*.................................................................................................................................................................................................................................... + // vmul.vv v27, v7, v19 // .............................................................................................................................*.............................................................................................................................. + // vmul.vx v24, v24, x6 // ..............*............................................................................................................................................................................................................................................. + // vmul.vx v25, v25, x6 // ...................................................................................................*........................................................................................................................................................ + // vmul.vx v26, v26, x6 // ...............................*............................................................................................................................................................................................................................ + // vmul.vx v27, v27, x6 // ...................................................................................................................................*........................................................................................................................ + // vmulh.vv v28, v4, v16 // ............*............................................................................................................................................................................................................................................... + // vmulh.vv v29, v5, v17 // ...............................................................................................................................................................................*............................................................................ + // vmulh.vv v30, v6, v18 // .........................................*.................................................................................................................................................................................................................. + // vmulh.vv v31, v7, v19 // .......................................................................................................................*.................................................................................................................................... + // vmulh.vx v24, v24, x5 // ...................*........................................................................................................................................................................................................................................ + // vmulh.vx v25, v25, x5 // ...........................................................................................................*................................................................................................................................................ + // vmulh.vx v26, v26, x5 // ...........................................*................................................................................................................................................................................................................ + // vmulh.vx v27, v27, x5 // .......................................................................................................................................*.................................................................................................................... + // vsub.vv v24, v28, v24 // ...........................*................................................................................................................................................................................................................................ + // vsub.vv v25, v29, v25 // ...................................................................................................................................................................................*........................................................................ + // vsub.vv v26, v30, v26 // ...............................................*............................................................................................................................................................................................................ + // vsub.vv v27, v31, v27 // ...........................................................................................................................................*................................................................................................................ + // vmul.vv v0, v12, v24 // ...................................*........................................................................................................................................................................................................................ + // vmul.vv v1, v13, v25 // .......................................................................................................................................................................................*.................................................................... + // vmul.vv v2, v14, v26 // ...................................................*........................................................................................................................................................................................................ + // vmul.vv v3, v15, v27 // ...............................................................................................................................................*............................................................................................................ + // vmul.vx v0, v0, x6 // .....................................................*...................................................................................................................................................................................................... + // vmul.vx v1, v1, x6 // ...........................................................................................................................................................................................*................................................................ + // vmul.vx v2, v2, x6 // .......................................................*.................................................................................................................................................................................................... + // vmul.vx v3, v3, x6 // .......................................................................................................................................................*.................................................................................................... + // vmulh.vv v28, v12, v24 // .......................................*.................................................................................................................................................................................................................... + // vmulh.vv v29, v13, v25 // .........................................................................................................................................................................................*.................................................................. + // vmulh.vv v30, v14, v26 // .........................................................*.................................................................................................................................................................................................. + // vmulh.vv v31, v15, v27 // .........................................................................................................................................................*.................................................................................................. + // vmulh.vx v0, v0, x5 // .........................................................................*.................................................................................................................................................................................. + // vmulh.vx v1, v1, x5 // ...............................................................................................................................................................................................*............................................................ + // vmulh.vx v2, v2, x5 // ...........................................................*................................................................................................................................................................................................ + // vmulh.vx v3, v3, x5 // ...........................................................................................................................................................*................................................................................................ + // vsub.vv v0, v28, v0 // .................................................................................*.......................................................................................................................................................................... + // vsub.vv v1, v29, v1 // ...................................................................................................................................................................................................*........................................................ + // vsub.vv v2, v30, v2 // ...................................................................*........................................................................................................................................................................................ + // vsub.vv v3, v31, v3 // .....................................................................................................................................................................................................*...................................................... + // vadd.vv v20, v20, v0 // .........................................................................................................*.................................................................................................................................................. + // vadd.vv v21, v21, v1 // .......................................................................................................................................................................................................*.................................................... + // vadd.vv v22, v22, v2 // ...............................................................................................*............................................................................................................................................................ + // vadd.vv v23, v23, v3 // ...............................................................................................................................................................................................................*............................................ + // addi x14, x10, 0 // ............*............................................................................................................................................................................................................................................... + // add x15, x10, x16 // .............*.............................................................................................................................................................................................................................................. + // vse16.v v20, (x14) // ..................................................................................................................*......................................................................................................................................... + // vse16.v v21, (x15) // ...........................................................................................................................................................................................................................*................................ + // add x14, x14, x30 // ..............................................................................................................*............................................................................................................................................. + // add x15, x15, x30 // ............................................................................................................................................................................................*............................................................... + // vse16.v v22, (x14) // ....................................................................................................................*....................................................................................................................................... + // vse16.v v23, (x15) // .......................................................................................................................................................................................................................*.................................... + // add x10, x10, x30 // .*.......................................................................................................................................................................................................................................................... + // add x13, x13, x30 // .........................*.................................................................................................................................................................................................................................. + // add x10, x10, x30 // .................*.......................................................................................................................................................................................................................................... + // bltu x11, x7, poly_basemul_rvv_vlen128_loop // ...........................................................................................................................................................................................................................................................* + + + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_basemul/kyber_poly_plantard_rdc_rv64im_dual_opt_c908.s b/examples/opt/riscv/kyber_basemul/kyber_poly_plantard_rdc_rv64im_dual_opt_c908.s index 4d46bcf59..6ff3b49ef 100644 --- a/examples/opt/riscv/kyber_basemul/kyber_poly_plantard_rdc_rv64im_dual_opt_c908.s +++ b/examples/opt/riscv/kyber_basemul/kyber_poly_plantard_rdc_rv64im_dual_opt_c908.s @@ -63,6 +63,7 @@ .endm .macro save_regs + addi sp, sp, -8*15 sd s0, 0*8(sp) sd s1, 1*8(sp) sd s2, 2*8(sp) @@ -96,6 +97,7 @@ ld gp, 12*8(sp) ld tp, 13*8(sp) ld ra, 14*8(sp) + addi sp, sp, 8*15 .endm // a <- a*b*(-2^{-32}) mod+- q @@ -569,243 +571,325 @@ .equ plantconst2, 0x97f44fac // (2^{64} mod q)*qinv mod 2^32 // plantard reduction to a poly -.global poly_plantard_rdc_rv64im_dual_opt_c908 +.global poly_plantard_rdc_rv64im_opt_c908_dual .align 2 -poly_plantard_rdc_rv64im_dual_opt_c908: - addi sp, sp, -8*1 - sd s0, 0(sp) +poly_plantard_rdc_rv64im_dual: + save_regs li t6, plantconst li t5, q48 addi t4, x0, 16 - // Instructions: 0 - // Expected cycles: 0 - // Expected IPC: 0.00 - // - // Wall time: 0.01s - // User time: 0.01s - // + lh x16, 2*0(x10) // *..................................................... + lh x20, 2*1(x10) // .*.................................................... + lh x1, 2*2(x10) // ..*................................................... + mulw x8, x16, x31 // ...*.................................................. + lh x16, 2*3(x10) // ...*.................................................. + lh x29, 2*7(x10) // ....*................................................. + mulw x15, x20, x31 // ....*................................................. + mulw x9, x1, x31 // .....*................................................ + srai x20, x8, 16 // ......*............................................... + mulw x8, x16, x31 // ......*............................................... + addi x1, x20, 8 // .......*.............................................. + mulw x20, x29, x31 // .......*.............................................. + mulh x25, x1, x30 // ........*............................................. + srai x1, x15, 16 // ........*............................................. + lh x16, 2*4(x10) // .........*............................................ + addi x1, x1, 8 // .........*............................................ + srai x9, x9, 16 // ..........*........................................... + mulh x7, x1, x30 // ..........*........................................... + lh x15, 2*5(x10) // ...........*.......................................... + addi x1, x9, 8 // ...........*.......................................... + srai x9, x8, 16 // ............*......................................... + mulh x14, x1, x30 // ............*......................................... + lh x29, 2*6(x10) // .............*........................................ + addi x1, x9, 8 // .............*........................................ + mulh x26, x1, x30 // ..............*....................................... + srai x20, x20, 16 // ..............*....................................... + lh x11, 2*8(x10) // ...............*...................................... + addi x20, x20, 8 // ...............*...................................... + lh x1, 2*9(x10) // ................*..................................... + mulh x18, x20, x30 // ................*..................................... + lh x8, 2*10(x10) // .................*.................................... + lh x9, 2*11(x10) // ..................*................................... + mulw x20, x11, x31 // ..................*................................... + sh x25, 2*0(x10) // ...................*.................................. + mulw x29, x29, x31 // ...................*.................................. + sh x7, 2*1(x10) // ....................*................................. + mulw x1, x1, x31 // ....................*................................. + mulw x8, x8, x31 // .....................*................................ + srai x20, x20, 16 // .....................*................................ + mulw x9, x9, x31 // ......................*............................... + addi x20, x20, 8 // ......................*............................... + srai x1, x1, 16 // .......................*.............................. + mulh x7, x20, x30 // .......................*.............................. + sh x14, 2*2(x10) // ........................*............................. + addi x20, x1, 8 // ........................*............................. + srai x1, x8, 16 // .........................*............................ + mulh x14, x20, x30 // .........................*............................ + sh x26, 2*3(x10) // ..........................*........................... + addi t4, t4, -1 poly_plantard_rdc_rv64im_loop: // Instructions: 97 - // Expected cycles: 52 - // Expected IPC: 1.87 - // - // Cycle bound: 49.0 - // IPC bound: 1.98 - // - // Wall time: 24.59s - // User time: 24.59s - // - // ---------------- cycle (expected) -----------------> + // Expected cycles: 53 + // Expected IPC: 1.83 + + // Cycle bound: 53.0 + // IPC bound: 1.83 + + // Wall time: 18.94s + // User time: 18.94s + + // ----------------- cycle (expected) -----------------> // 0 25 50 - // |------------------------|------------------------|- - lh x4, 2*0(x10) // *................................................... - lh x16, 2*1(x10) // .*.................................................. - lh x17, 2*2(x10) // ..*................................................. - lh x22, 2*3(x10) // ...*................................................ - mul x25, x4, x31 // ...*................................................ - lh x4, 2*4(x10) // ....*............................................... - mul x5, x16, x31 // ....*............................................... - lh x16, 2*5(x10) // .....*.............................................. - mul x18, x17, x31 // .....*.............................................. - lh x28, 2*6(x10) // ......*............................................. - mul x19, x22, x31 // ......*............................................. - lh x13, 2*7(x10) // .......*............................................ - srai x22, x25, 16 // .......*............................................ - srai x17, x5, 16 // ........*........................................... - srai x18, x18, 16 // ........*........................................... - srai x19, x19, 16 // .........*.......................................... - addi x22, x22, 8 // .........*.......................................... - addi x17, x17, 8 // ..........*......................................... - addi x18, x18, 8 // ..........*......................................... - mulh x22, x22, x30 // ...........*........................................ - lh x8, 2*8(x10) // ...........*........................................ - mulh x17, x17, x30 // ............*....................................... - lh x7, 2*9(x10) // ............*....................................... - addi x19, x19, 8 // .............*...................................... - lh x12, 2*10(x10) // .............*...................................... - mulh x24, x18, x30 // ..............*..................................... - lh x18, 2*11(x10) // ..............*..................................... - mulh x19, x19, x30 // ...............*.................................... - sh x22, 2*0(x10) // ...............*.................................... - sh x17, 2*1(x10) // ................*................................... - mul x17, x4, x31 // ................*................................... - mul x16, x16, x31 // .................*.................................. - mul x22, x28, x31 // .................*.................................. - sh x24, 2*2(x10) // ..................*................................. - mul x28, x13, x31 // ..................*................................. - sh x19, 2*3(x10) // ...................*................................ - srai x17, x17, 16 // ...................*................................ - srai x16, x16, 16 // ....................*............................... - srai x22, x22, 16 // ....................*............................... - srai x19, x28, 16 // .....................*.............................. - addi x17, x17, 8 // .....................*.............................. - addi x16, x16, 8 // ......................*............................. - addi x22, x22, 8 // ......................*............................. - mulh x28, x17, x30 // .......................*............................ - lh x14, 2*12(x10) // .......................*............................ - mulh x16, x16, x30 // ........................*........................... - lh x5, 2*13(x10) // ........................*........................... - addi x17, x19, 8 // .........................*.......................... - lh x25, 2*14(x10) // .........................*.......................... - mulh x22, x22, x30 // ..........................*......................... - lh x13, 2*15(x10) // ..........................*......................... - mulh x17, x17, x30 // ...........................*........................ - sh x28, 2*4(x10) // ...........................*........................ - sh x16, 2*5(x10) // ............................*....................... - mul x16, x8, x31 // .............................*...................... - mul x28, x7, x31 // .............................*...................... - sh x22, 2*6(x10) // ..............................*..................... - mul x22, x12, x31 // ..............................*..................... - sh x17, 2*7(x10) // ...............................*.................... - mul x17, x18, x31 // ...............................*.................... - srai x16, x16, 16 // ................................*................... - srai x28, x28, 16 // ................................*................... - srai x22, x22, 16 // .................................*.................. - addi x16, x16, 8 // .................................*.................. - srai x17, x17, 16 // ..................................*................. - mulh x16, x16, x30 // ..................................*................. - addi x28, x28, 8 // ...................................*................ - addi x22, x22, 8 // ...................................*................ - addi x17, x17, 8 // ....................................*............... - mulh x28, x28, x30 // ....................................*............... - mulh x19, x22, x30 // .....................................*.............. - mulh x18, x17, x30 // .....................................*.............. - sh x16, 2*8(x10) // ......................................*............. - mul x17, x14, x31 // ......................................*............. - mul x16, x5, x31 // .......................................*............ - mul x22, x25, x31 // .......................................*............ - sh x28, 2*9(x10) // ........................................*........... - mul x28, x13, x31 // ........................................*........... - sh x19, 2*10(x10) // .........................................*.......... - srai x17, x17, 16 // .........................................*.......... - srai x16, x16, 16 // ..........................................*......... - srai x22, x22, 16 // ..........................................*......... - srai x19, x28, 16 // ...........................................*........ - addi x17, x17, 8 // ...........................................*........ - addi x16, x16, 8 // ............................................*....... - mulh x28, x17, x30 // ............................................*....... - addi x17, x22, 8 // .............................................*...... - mulh x22, x16, x30 // .............................................*...... - addi x16, x19, 8 // ..............................................*..... - mulh x17, x17, x30 // ..............................................*..... - mulh x16, x16, x30 // ...............................................*.... - sh x18, 2*11(x10) // ...............................................*.... - sh x28, 2*12(x10) // ................................................*... - sh x22, 2*13(x10) // .................................................*.. - sh x17, 2*14(x10) // ..................................................*. - sh x16, 2*15(x10) // ...................................................* - addi x10, x10, 2*16 // ...................................................* + // |------------------------|------------------------|-- + mulw x21, x15, x31 // *.................................................... + lh x8, 2*15(x10) // *.................................................... + mulw x19, x16, x31 // .*................................................... + addi x28, x1, 8 // .*................................................... + lh x15, 2*14(x10) // ..*.................................................. + mulh x28, x28, x30 // ..*.................................................. + srai x1, x21, 16 // ...*................................................. + srai x25, x29, 16 // ...*................................................. + mulw x8, x8, x31 // ....*................................................ + srai x20, x19, 16 // ....*................................................ + addi x13, x20, 8 // .....*............................................... + mulw x29, x15, x31 // .....*............................................... + addi x11, x25, 8 // ......*.............................................. + mulh x20, x13, x30 // ......*.............................................. + srai x15, x8, 16 // .......*............................................. + lh x5, 2*13(x10) // .......*............................................. + mulh x24, x11, x30 // ........*............................................ + srai x21, x29, 16 // ........*............................................ + sh x28, 2*10(x10) // .........*........................................... + addi x8, x21, 8 // .........*........................................... + mulh x8, x8, x30 // ..........*.......................................... + sh x20, 2*4(x10) // ..........*.......................................... + lh x11, 2*12(x10) // ...........*......................................... + addi x17, x15, 8 // ...........*......................................... + mulw x25, x5, x31 // ............*........................................ + sh x24, 2*6(x10) // ............*........................................ + mulh x20, x17, x30 // .............*....................................... + srai x9, x9, 16 // .............*....................................... + sh x8, 2*14(x10) // ..............*...................................... + addi x8, x9, 8 // ..............*...................................... + mulh x26, x8, x30 // ...............*..................................... + srai x8, x25, 16 // ...............*..................................... + addi x1, x1, 8 // ................*.................................... + addi x17, x8, 8 // ................*.................................... + sh x20, 2*15(x10) // .................*................................... + mulw x22, x11, x31 // .................*................................... + mulh x11, x17, x30 // ..................*.................................. + sh x14, 2*9(x10) // ..................*.................................. + sh x26, 2*11(x10) // ...................*................................. + mulh x9, x1, x30 // ....................*................................ + srai x20, x22, 16 // ....................*................................ + sh x7, 2*8(x10) // .....................*............................... + addi x15, x20, 8 // .....................*............................... + sh x11, 2*13(x10) // ......................*.............................. + mulh x15, x15, x30 // ......................*.............................. + sh x18, 2*7(x10) // .......................*............................. + sh x9, 2*5(x10) // ........................*............................ + sh x15, 2*12(x10) // ..........................*.......................... + addi x10, x10, 2*16 // ..........................*.......................... + lh x22, 2*1(x10) // ...........................*......................... + lh x11, 2*8(x10) // ............................*........................ + lh x14, 2*7(x10) // .............................*....................... + lh x1, 2*6(x10) // ..............................*...................... + mulw x20, x22, x31 // ..............................*...................... + mulw x8, x11, x31 // ...............................*..................... + lh x21, 2*2(x10) // ...............................*..................... + mulw x14, x14, x31 // ................................*.................... + lh x9, 2*11(x10) // ................................*.................... + srai x7, x20, 16 // .................................*................... + mulw x29, x1, x31 // .................................*................... + addi x1, x7, 8 // ..................................*.................. + mulw x20, x21, x31 // ..................................*.................. + srai x25, x14, 16 // ...................................*................. + mulh x22, x1, x30 // ...................................*................. + lh x12, 2*0(x10) // ....................................*................ + addi x11, x25, 8 // ....................................*................ + srai x15, x20, 16 // .....................................*............... + mulw x9, x9, x31 // .....................................*............... + lh x1, 2*9(x10) // ......................................*.............. + mulh x18, x11, x30 // ......................................*.............. + sh x22, 2*1(x10) // .......................................*............. + addi x20, x15, 8 // .......................................*............. + mulw x5, x12, x31 // ........................................*............ + lh x11, 2*3(x10) // ........................................*............ + lh x21, 2*10(x10) // .........................................*........... + mulh x24, x20, x30 // .........................................*........... + lh x15, 2*5(x10) // ..........................................*.......... + srai x8, x8, 16 // ..........................................*.......... + srai x20, x5, 16 // ...........................................*......... + mulw x26, x11, x31 // ...........................................*......... + mulw x1, x1, x31 // ............................................*........ + addi x7, x20, 8 // ............................................*........ + sh x24, 2*2(x10) // .............................................*....... + mulw x19, x21, x31 // .............................................*....... + mulh x7, x7, x30 // ..............................................*...... + srai x20, x26, 16 // ..............................................*...... + addi x11, x20, 8 // ...............................................*..... + srai x20, x1, 16 // ...............................................*..... + srai x1, x19, 16 // ................................................*.... + mulh x27, x11, x30 // ................................................*.... + addi x20, x20, 8 // .................................................*... + addi x8, x8, 8 // .................................................*... + sh x7, 2*0(x10) // ..................................................*.. + mulh x14, x20, x30 // ..................................................*.. + lh x16, 2*4(x10) // ...................................................*. + sh x27, 2*3(x10) // ....................................................* + mulh x7, x8, x30 // ....................................................* - // ---------------- cycle (expected) -----------------> + // ----------------- cycle (expected) -----------------> // 0 25 50 - // |------------------------|------------------------|- - // lh x11, 2*0(x10) // *................................................... - // lh x12, 2*1(x10) // .*.................................................. - // lh x13, 2*2(x10) // ..*................................................. - // lh x14, 2*3(x10) // ...*................................................ - // lh x5, 2*4(x10) // ....*............................................... - // lh x6, 2*5(x10) // .....*.............................................. - // lh x7, 2*6(x10) // ......*............................................. - // lh x28, 2*7(x10) // .......*............................................ - // mulw x11, x11, x31 // ...*................................................ - // mulw x12, x12, x31 // ....*............................................... - // mulw x13, x13, x31 // .....*.............................................. - // mulw x14, x14, x31 // ......*............................................. - // srai x11, x11, 16 // .......*............................................ - // srai x12, x12, 16 // ........*........................................... - // srai x13, x13, 16 // ........*........................................... - // srai x14, x14, 16 // .........*.......................................... - // addi x11, x11, 8 // .........*.......................................... - // addi x12, x12, 8 // ..........*......................................... - // addi x13, x13, 8 // ..........*......................................... - // addi x14, x14, 8 // .............*...................................... - // mulh x11, x11, x30 // ...........*........................................ - // mulh x12, x12, x30 // ............*....................................... - // mulh x13, x13, x30 // ..............*..................................... - // mulh x14, x14, x30 // ...............*.................................... - // lh x15, 2*8(x10) // ...........*........................................ - // lh x16, 2*9(x10) // ............*....................................... - // lh x17, 2*10(x10) // .............*...................................... - // lh x8, 2*11(x10) // ..............*..................................... - // sh x11, 2*0(x10) // ...............*.................................... - // sh x12, 2*1(x10) // ................*................................... - // sh x13, 2*2(x10) // ..................*................................. - // sh x14, 2*3(x10) // ...................*................................ - // mulw x5, x5, x31 // ................*................................... - // mulw x6, x6, x31 // .................*.................................. - // mulw x7, x7, x31 // .................*.................................. - // mulw x28, x28, x31 // ..................*................................. - // srai x5, x5, 16 // ...................*................................ - // srai x6, x6, 16 // ....................*............................... - // srai x7, x7, 16 // ....................*............................... - // srai x28, x28, 16 // .....................*.............................. - // addi x5, x5, 8 // .....................*.............................. - // addi x6, x6, 8 // ......................*............................. - // addi x7, x7, 8 // ......................*............................. - // addi x28, x28, 8 // .........................*.......................... - // mulh x5, x5, x30 // .......................*............................ - // mulh x6, x6, x30 // ........................*........................... - // mulh x7, x7, x30 // ..........................*......................... - // mulh x28, x28, x30 // ...........................*........................ - // lh x11, 2*12(x10) // .......................*............................ - // lh x12, 2*13(x10) // ........................*........................... - // lh x13, 2*14(x10) // .........................*.......................... - // lh x14, 2*15(x10) // ..........................*......................... - // sh x5, 2*4(x10) // ...........................*........................ - // sh x6, 2*5(x10) // ............................*....................... - // sh x7, 2*6(x10) // ..............................*..................... - // sh x28, 2*7(x10) // ...............................*.................... - // mulw x15, x15, x31 // .............................*...................... - // mulw x16, x16, x31 // .............................*...................... - // mulw x17, x17, x31 // ..............................*..................... - // mulw x8, x8, x31 // ...............................*.................... - // srai x15, x15, 16 // ................................*................... - // srai x16, x16, 16 // ................................*................... - // srai x17, x17, 16 // .................................*.................. - // srai x8, x8, 16 // ..................................*................. - // addi x15, x15, 8 // .................................*.................. - // addi x16, x16, 8 // ...................................*................ - // addi x17, x17, 8 // ...................................*................ - // addi x8, x8, 8 // ....................................*............... - // mulh x15, x15, x30 // ..................................*................. - // mulh x16, x16, x30 // ....................................*............... - // mulh x17, x17, x30 // .....................................*.............. - // mulh x8, x8, x30 // .....................................*.............. - // sh x15, 2*8(x10) // ......................................*............. - // sh x16, 2*9(x10) // ........................................*........... - // sh x17, 2*10(x10) // .........................................*.......... - // sh x8, 2*11(x10) // ...............................................*.... - // mulw x11, x11, x31 // ......................................*............. - // mulw x12, x12, x31 // .......................................*............ - // mulw x13, x13, x31 // .......................................*............ - // mulw x14, x14, x31 // ........................................*........... - // srai x11, x11, 16 // .........................................*.......... - // srai x12, x12, 16 // ..........................................*......... - // srai x13, x13, 16 // ..........................................*......... - // srai x14, x14, 16 // ...........................................*........ - // addi x11, x11, 8 // ...........................................*........ - // addi x12, x12, 8 // ............................................*....... - // addi x13, x13, 8 // .............................................*...... - // addi x14, x14, 8 // ..............................................*..... - // mulh x11, x11, x30 // ............................................*....... - // mulh x12, x12, x30 // .............................................*...... - // mulh x13, x13, x30 // ..............................................*..... - // mulh x14, x14, x30 // ...............................................*.... - // sh x11, 2*12(x10) // ................................................*... - // sh x12, 2*13(x10) // .................................................*.. - // sh x13, 2*14(x10) // ..................................................*. - // sh x14, 2*15(x10) // ...................................................* - // addi x10, x10, 2*16 // ...................................................* + // |------------------------|------------------------|-- + // addi x20, x1, 8 // .*................................................... + // srai x1, x9, 16 // .............*....................................... + // mulh x11, x20, x30 // ..*.................................................. + // lh x8, 2*12(x10) // ...........*......................................... + // addi x20, x1, 8 // ..............*...................................... + // srai x1, x29, 16 // ...*................................................. + // mulh x29, x20, x30 // ...............*..................................... + // addi x26, x1, 8 // ......*.............................................. + // lh x1, 2*13(x10) // .......*............................................. + // lh x9, 2*14(x10) // ..*.................................................. + // mulw x20, x8, x31 // .................*................................... + // mulw x25, x15, x31 // *.................................................... + // lh x8, 2*15(x10) // *.................................................... + // sh x18, 2*7(x10) // .......................*............................. + // mulw x1, x1, x31 // ............*........................................ + // mulw x9, x9, x31 // .....*............................................... + // srai x20, x20, 16 // ....................*................................ + // mulw x15, x8, x31 // ....*................................................ + // addi x20, x20, 8 // .....................*............................... + // srai x1, x1, 16 // ...............*..................................... + // mulh x8, x20, x30 // ......................*.............................. + // sh x7, 2*8(x10) // .....................*............................... + // addi x20, x1, 8 // ................*.................................... + // srai x1, x9, 16 // ........*............................................ + // mulh x9, x20, x30 // ..................*.................................. + // sh x14, 2*9(x10) // ..................*.................................. + // addi x20, x1, 8 // .........*........................................... + // srai x15, x15, 16 // .......*............................................. + // mulh x1, x20, x30 // ..........*.......................................... + // sh x11, 2*10(x10) // .........*........................................... + // addi x20, x15, 8 // ...........*......................................... + // sh x29, 2*11(x10) // ...................*................................. + // mulh x20, x20, x30 // .............*....................................... + // srai x15, x25, 16 // ...*................................................. + // sh x8, 2*12(x10) // ..........................*.......................... + // mulw x8, x16, x31 // .*................................................... + // sh x9, 2*13(x10) // ......................*.............................. + // mulh x9, x26, x30 // ........*............................................ + // sh x1, 2*14(x10) // ..............*...................................... + // addi x1, x15, 8 // ................*.................................... + // sh x20, 2*15(x10) // .................*................................... + // mulh x20, x1, x30 // ....................*................................ + // srai x1, x8, 16 // ....*................................................ + // addi x1, x1, 8 // .....*............................................... + // sh x9, 2*6(x10) // ............*........................................ + // mulh x1, x1, x30 // ......*.............................................. + // sh x20, 2*5(x10) // ........................*............................ + // sh x1, 2*4(x10) // ..........*.......................................... + // addi x10, x10, 2*16 // ..........................*.......................... + // lh x16, 2*0(x10) // ....................................*................ + // lh x20, 2*1(x10) // ...........................*......................... + // lh x1, 2*2(x10) // ...............................*..................... + // mulw x8, x16, x31 // ........................................*............ + // lh x16, 2*3(x10) // ........................................*............ + // lh x29, 2*7(x10) // .............................*....................... + // mulw x15, x20, x31 // ..............................*...................... + // mulw x9, x1, x31 // ..................................*.................. + // srai x20, x8, 16 // ...........................................*......... + // mulw x8, x16, x31 // ...........................................*......... + // addi x1, x20, 8 // ............................................*........ + // mulw x20, x29, x31 // ................................*.................... + // mulh x25, x1, x30 // ..............................................*...... + // srai x1, x15, 16 // .................................*................... + // lh x16, 2*4(x10) // ...................................................*. + // addi x1, x1, 8 // ..................................*.................. + // srai x9, x9, 16 // .....................................*............... + // mulh x7, x1, x30 // ...................................*................. + // lh x15, 2*5(x10) // ..........................................*.......... + // addi x1, x9, 8 // .......................................*............. + // srai x9, x8, 16 // ..............................................*...... + // mulh x14, x1, x30 // .........................................*........... + // lh x29, 2*6(x10) // ..............................*...................... + // addi x1, x9, 8 // ...............................................*..... + // mulh x26, x1, x30 // ................................................*.... + // srai x20, x20, 16 // ...................................*................. + // lh x11, 2*8(x10) // ............................*........................ + // addi x20, x20, 8 // ....................................*................ + // lh x1, 2*9(x10) // ......................................*.............. + // mulh x18, x20, x30 // ......................................*.............. + // lh x8, 2*10(x10) // .........................................*........... + // lh x9, 2*11(x10) // ................................*.................... + // mulw x20, x11, x31 // ...............................*..................... + // sh x25, 2*0(x10) // ..................................................*.. + // mulw x29, x29, x31 // .................................*................... + // sh x7, 2*1(x10) // .......................................*............. + // mulw x1, x1, x31 // ............................................*........ + // mulw x8, x8, x31 // .............................................*....... + // srai x20, x20, 16 // ..........................................*.......... + // mulw x9, x9, x31 // .....................................*............... + // addi x20, x20, 8 // .................................................*... + // srai x1, x1, 16 // ...............................................*..... + // mulh x7, x20, x30 // ....................................................* + // sh x14, 2*2(x10) // .............................................*....... + // addi x20, x1, 8 // .................................................*... + // srai x1, x8, 16 // ................................................*.... + // mulh x14, x20, x30 // ..................................................*.. + // sh x26, 2*3(x10) // ....................................................* addi t4, t4, -1 - bne t4, zero, poly_plantard_rdc_rv64im_loop - // Instructions: 0 - // Expected cycles: 0 - // Expected IPC: 0.00 - // - // Wall time: 0.01s - // User time: 0.01s - // - ld s0, 0(sp) - addi sp, sp, 8*1 + bne t4, zero,, poly_plantard_rdc_rv64im_loop + addi x20, x1, 8 // ..........................*........................... + srai x1, x9, 16 // ...........................*.......................... + mulh x11, x20, x30 // ...........................*.......................... + lh x8, 2*12(x10) // ............................*......................... + addi x20, x1, 8 // ............................*......................... + srai x1, x29, 16 // .............................*........................ + mulh x29, x20, x30 // .............................*........................ + addi x26, x1, 8 // ..............................*....................... + lh x1, 2*13(x10) // ..............................*....................... + lh x9, 2*14(x10) // ...............................*...................... + mulw x20, x8, x31 // ...............................*...................... + mulw x25, x15, x31 // ................................*..................... + lh x8, 2*15(x10) // ................................*..................... + sh x18, 2*7(x10) // .................................*.................... + mulw x1, x1, x31 // .................................*.................... + mulw x9, x9, x31 // ..................................*................... + srai x20, x20, 16 // ..................................*................... + mulw x15, x8, x31 // ...................................*.................. + addi x20, x20, 8 // ...................................*.................. + srai x1, x1, 16 // ....................................*................. + mulh x8, x20, x30 // ....................................*................. + sh x7, 2*8(x10) // .....................................*................ + addi x20, x1, 8 // .....................................*................ + srai x1, x9, 16 // ......................................*............... + mulh x9, x20, x30 // ......................................*............... + sh x14, 2*9(x10) // .......................................*.............. + addi x20, x1, 8 // .......................................*.............. + srai x15, x15, 16 // ........................................*............. + mulh x1, x20, x30 // ........................................*............. + sh x11, 2*10(x10) // .........................................*............ + addi x20, x15, 8 // .........................................*............ + sh x29, 2*11(x10) // ..........................................*........... + mulh x20, x20, x30 // ..........................................*........... + srai x15, x25, 16 // ...........................................*.......... + sh x8, 2*12(x10) // ...........................................*.......... + mulw x8, x16, x31 // ............................................*......... + sh x9, 2*13(x10) // ............................................*......... + mulh x9, x26, x30 // .............................................*........ + sh x1, 2*14(x10) // .............................................*........ + addi x1, x15, 8 // ..............................................*....... + sh x20, 2*15(x10) // ..............................................*....... + mulh x20, x1, x30 // ...............................................*...... + srai x1, x8, 16 // ...............................................*...... + addi x1, x1, 8 // ................................................*..... + sh x9, 2*6(x10) // .................................................*.... + mulh x1, x1, x30 // .................................................*.... + sh x20, 2*5(x10) // ...................................................*.. + sh x1, 2*4(x10) // .....................................................* + addi x10, x10, 2*16 // .....................................................* + restore_regs ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_basemul/kyber_poly_reduce_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_basemul/kyber_poly_reduce_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..d8e7a86be --- /dev/null +++ b/examples/opt/riscv/kyber_basemul/kyber_poly_reduce_rvv_vlen128_opt_c908.s @@ -0,0 +1,102 @@ +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + // vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_reduce_rvv_vlen128_opt_c908 +.align 2 +poly_reduce_rvv_vlen128_opt_c908: + addi sp, sp, -8*15 + save_regs + li a7, 16*8 + li t0, 3329 + vsetvli a7, a7, e16, m8, tu, mu + csrwi vxrm, 0 // round-to-nearest-up (add +0.5 LSB) + li a6, 20159 + add t4, a0, 256*2 + slli t3, a7, 2 + slli a7, a7, 1 +poly_reduce_rvv_vlen128_loop: + // Instructions: 11 + // Expected cycles: 19 + // Expected IPC: 0.58 + // + // Cycle bound: 19.0 + // IPC bound: 0.58 + // + // Wall time: 1.81s + // User time: 1.81s + // + // ----- cycle (expected) ------> + // 0 25 + // |------------------------|---- + vle16.v v8, (x10) // *............................. // @slothy:lmul=8 + add x8, x10, x17 // *............................. + vle16.v v16, (x8) // ..*........................... // @slothy:lmul=8 + vmulh.vx v24, v8, x16 // ....*......................... // @slothy:lmul=8 + vmulh.vx v0, v16, x16 // ......*....................... // @slothy:lmul=8 + vmul.vx v24, v24, x5 // ........*..................... // @slothy:lmul=8 + vmul.vx v0, v0, x5 // ..........*................... // @slothy:lmul=8 + vsub.vv v8, v8, v24 // ............*................. // @slothy:lmul=8 + vsub.vv v16, v16, v0 // ..............*............... // @slothy:lmul=8 + vse16.v v8, (x10) // ................*............. // @slothy:lmul=8 + vse16.v v16, (x8) // ..................*........... // @slothy:lmul=8 + + // ------ cycle (expected) ------> + // 0 25 + // |------------------------|----- + // add x11, x10, x17 // *.............................. + // vle16.v v0, (x10) // *.............................. + // vle16.v v8, (x11) // ..*............................ + // vmulh.vx v16, v0, x16 // ....*.......................... + // vmul.vx v16, v16, x5 // ........*...................... + // vsub.vv v0, v0, v16 // ............*.................. + // vmulh.vx v24, v8, x16 // ......*........................ + // vmul.vx v24, v24, x5 // ..........*.................... + // vsub.vv v8, v8, v24 // ..............*................ + // vse16.v v0, (x10) // ................*.............. + // vse16.v v8, (x11) // ..................*............ + + addi a0, a0, 256 + bltu a0, t4, poly_reduce_rvv_vlen128_loop + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_basemul/kyber_poly_tomont_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_basemul/kyber_poly_tomont_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..2f9435e4e --- /dev/null +++ b/examples/opt/riscv/kyber_basemul/kyber_poly_tomont_rvv_vlen128_opt_c908.s @@ -0,0 +1,176 @@ +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +.globl poly_tomont_rvv_vlen128_opt_c908 +.align 2 +poly_tomont_rvv_vlen128_opt_c908: + addi sp, sp, -8*15 + save_regs + li a7, 16*8 + li t0, 3329 + vsetvli a7, a7, e16, m8, tu, mu + // mont^2 and qinv*mont^2 + li t1, 1353 + li t2, 20553 + slli t3, a7, 2 + slli a7, a7, 1 + addi t4, a0, 256*2 + // Instructions: 1 + // Expected cycles: 1 + // Expected IPC: 1.00 + // + // Cycle bound: 1.0 + // IPC bound: 1.00 + // + // Wall time: 4.51s + // User time: 4.51s + // + // ----- cycle (expected) ------> + // 0 25 + // |------------------------|---- + vle16.v v24, (x10) // *............................. // @slothy:lmul=8 + + // ------ cycle (expected) ------> + // 0 25 + // |------------------------|----- + // vle16.v v24, (x10) // *.............................. + + sub t4, t4, t3 +poly_tomont_rvv_vlen128_loop: + // Instructions: 15 + // Expected cycles: 23 + // Expected IPC: 0.65 + // + // Cycle bound: 9.0 + // IPC bound: 1.67 + // + // Wall time: 5.06s + // User time: 5.06s + // + // ----- cycle (expected) ------> + // 0 25 + // |------------------------|---- + add x31, x10, x17 // *............................. + vmulh.vx v16, v24, x6 // *............................. // @slothy:lmul=8 + vle16.v v0, (x31) // .*............................ // @slothy:lmul=8 + vmul.vx v8, v0, x7 // ....*......................... // @slothy:lmul=8 + vmul.vx v24, v24, x7 // ......*....................... // @slothy:lmul=8 + vmulh.vx v8, v8, x5 // ........*..................... // @slothy:lmul=8 + vmulh.vx v24, v24, x5 // ..........*................... // @slothy:lmul=8 + vmulh.vx v0, v0, x6 // ............*................. // @slothy:lmul=8 + vsub.vv v16, v16, v24 // ..............*............... // @slothy:lmul=8 + vsub.vv v0, v0, v8 // ................*............. // @slothy:lmul=8 + vse16.v v16, (x10) // ..................*........... // @slothy:lmul=8 + add x10, x10, x28 // ..................*........... + vle16.v v24, (x10) // ....................e......... // @slothy:lmul=8 + vse16.v v0, (x31) // ......................*....... // @slothy:lmul=8 + bltu x10, x29, poly_tomont_rvv_vlen128_loop // ......................*....... // @slothy:branch + + // ------ cycle (expected) ------> + // 0 25 + // |------------------------|----- + // add x11, x10, x17 // ...*......................~.... + // vle16.v v0, (x10) // e..'...................~..'.... + // vle16.v v8, (x11) // ...'*.....................'~... + // vmul.vx v16, v0, x7 // ...'.....*................'.... + // vmulh.vx v24, v0, x6 // ...*......................~.... + // vmulh.vx v16, v16, x5 // ...'.........*............'.... + // vsub.vv v16, v24, v16 // ...'.............*........'.... + // vmul.vx v24, v8, x7 // ...'...*..................'.... + // vmulh.vx v0, v8, x6 // ...'...........*..........'.... + // vmulh.vx v24, v24, x5 // ...'.......*..............'.... + // vsub.vv v24, v0, v24 // ...'...............*......'.... + // vse16.v v16, (x10) // ...'.................*....'.... + // vse16.v v24, (x11) // ..~'.....................*'.... + // add x10, x10, x28 // ...'.................*....'.... + // bltu x10, x29, poly_tomont_rvv_vlen128_loop // ..~'.....................*'.... + + + // Instructions: 14 + // Expected cycles: 21 + // Expected IPC: 0.67 + // + // Cycle bound: 21.0 + // IPC bound: 0.67 + // + // Wall time: 6.26s + // User time: 6.26s + // + // ----- cycle (expected) ------> + // 0 25 + // |------------------------|---- + vmulh.vx v8, v24, x6 // *............................. // @slothy:lmul=8 + add x30, x10, x17 // *............................. + vmul.vx v24, v24, x7 // ..*........................... // @slothy:lmul=8 + vle16.v v0, (x30) // ...*.......................... // @slothy:lmul=8 + vmulh.vx v16, v0, x6 // ......*....................... // @slothy:lmul=8 + vmul.vx v0, v0, x7 // ........*..................... // @slothy:lmul=8 + vmulh.vx v24, v24, x5 // ..........*................... // @slothy:lmul=8 + vmulh.vx v0, v0, x5 // ............*................. // @slothy:lmul=8 + vsub.vv v24, v8, v24 // ..............*............... // @slothy:lmul=8 + vsub.vv v8, v16, v0 // ................*............. // @slothy:lmul=8 + vse16.v v24, (x10) // ..................*........... // @slothy:lmul=8 + add x10, x10, x28 // ...................*.......... + vse16.v v8, (x30) // ....................*......... // @slothy:lmul=8 + + // ------ cycle (expected) ------> + // 0 25 + // |------------------------|----- + // add x31, x10, x17 // *.............................. + // vmulh.vx v16, v24, x6 // *.............................. + // vle16.v v0, (x31) // ...*........................... + // vmul.vx v8, v0, x7 // ........*...................... + // vmul.vx v24, v24, x7 // ..*............................ + // vmulh.vx v8, v8, x5 // ............*.................. + // vmulh.vx v24, v24, x5 // ..........*.................... + // vmulh.vx v0, v0, x6 // ......*........................ + // vsub.vv v16, v16, v24 // ..............*................ + // vsub.vv v0, v0, v8 // ................*.............. + // vse16.v v16, (x10) // ..................*............ + // add x10, x10, x28 // ...................*........... + // vse16.v v0, (x31) // ....................*.......... + // bltu x10, x29, poly_tomont_rvv_vlen128_loop // ....................*.......... + + restore_regs + addi sp, sp, 8*15 +ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_basemul/kyber_poly_toplant_rv64im_dual_opt_c908.s b/examples/opt/riscv/kyber_basemul/kyber_poly_toplant_rv64im_dual_opt_c908.s index befeac9db..9c95757bc 100644 --- a/examples/opt/riscv/kyber_basemul/kyber_poly_toplant_rv64im_dual_opt_c908.s +++ b/examples/opt/riscv/kyber_basemul/kyber_poly_toplant_rv64im_dual_opt_c908.s @@ -63,6 +63,7 @@ .endm .macro save_regs + addi sp, sp, -8*15 sd s0, 0*8(sp) sd s1, 1*8(sp) sd s2, 2*8(sp) @@ -96,6 +97,7 @@ ld gp, 12*8(sp) ld tp, 13*8(sp) ld ra, 14*8(sp) + addi sp, sp, 8*15 .endm // a <- a*b*(-2^{-32}) mod+- q @@ -569,243 +571,325 @@ .equ plantconst2, 0x97f44fac // (2^{64} mod q)*qinv mod 2^32 // each coeff is multiplied by plantconst2 using plantard multiplication -.global poly_toplant_rv64im_dual_opt_c908 +.global poly_toplant_rv64im_opt_c908_dual .align 2 -poly_toplant_rv64im_dual_opt_c908: - addi sp, sp, -8*1 - sd s0, 0(sp) +poly_toplant_rv64im_dual: + save_regs li t6, plantconst2 li t5, q48 addi t4, x0, 16 - // Instructions: 0 - // Expected cycles: 0 - // Expected IPC: 0.00 - // - // Wall time: 0.02s - // User time: 0.02s - // + lh x24, 2*0(x10) // *..................................................... + lh x6, 2*1(x10) // .*.................................................... + lh x1, 2*2(x10) // ..*................................................... + mulw x13, x24, x31 // ...*.................................................. + lh x24, 2*3(x10) // ...*.................................................. + lh x20, 2*7(x10) // ....*................................................. + mulw x15, x6, x31 // ....*................................................. + mulw x14, x1, x31 // .....*................................................ + srai x6, x13, 16 // ......*............................................... + mulw x13, x24, x31 // ......*............................................... + addi x1, x6, 8 // .......*.............................................. + mulw x6, x20, x31 // .......*.............................................. + mulh x29, x1, x30 // ........*............................................. + srai x1, x15, 16 // ........*............................................. + lh x24, 2*4(x10) // .........*............................................ + addi x1, x1, 8 // .........*............................................ + srai x14, x14, 16 // ..........*........................................... + mulh x23, x1, x30 // ..........*........................................... + lh x15, 2*5(x10) // ...........*.......................................... + addi x1, x14, 8 // ...........*.......................................... + srai x14, x13, 16 // ............*......................................... + mulh x21, x1, x30 // ............*......................................... + lh x20, 2*6(x10) // .............*........................................ + addi x1, x14, 8 // .............*........................................ + mulh x17, x1, x30 // ..............*....................................... + srai x6, x6, 16 // ..............*....................................... + lh x25, 2*8(x10) // ...............*...................................... + addi x6, x6, 8 // ...............*...................................... + lh x1, 2*9(x10) // ................*..................................... + mulh x12, x6, x30 // ................*..................................... + lh x13, 2*10(x10) // .................*.................................... + lh x14, 2*11(x10) // ..................*................................... + mulw x6, x25, x31 // ..................*................................... + sh x29, 2*0(x10) // ...................*.................................. + mulw x20, x20, x31 // ...................*.................................. + sh x23, 2*1(x10) // ....................*................................. + mulw x1, x1, x31 // ....................*................................. + mulw x13, x13, x31 // .....................*................................ + srai x6, x6, 16 // .....................*................................ + mulw x14, x14, x31 // ......................*............................... + addi x6, x6, 8 // ......................*............................... + srai x1, x1, 16 // .......................*.............................. + mulh x23, x6, x30 // .......................*.............................. + sh x21, 2*2(x10) // ........................*............................. + addi x6, x1, 8 // ........................*............................. + srai x1, x13, 16 // .........................*............................ + mulh x21, x6, x30 // .........................*............................ + sh x17, 2*3(x10) // ..........................*........................... + addi zero, zero, 1 poly_toplant_rv64im_loop: // Instructions: 97 - // Expected cycles: 52 - // Expected IPC: 1.87 - // - // Cycle bound: 49.0 - // IPC bound: 1.98 - // - // Wall time: 22.80s - // User time: 22.80s - // - // ---------------- cycle (expected) -----------------> + // Expected cycles: 53 + // Expected IPC: 1.83 + + // Cycle bound: 53.0 + // IPC bound: 1.83 + + // Wall time: 18.52s + // User time: 18.52s + + // ----------------- cycle (expected) -----------------> // 0 25 50 - // |------------------------|------------------------|- - lh x4, 2*0(x10) // *................................................... - lh x16, 2*1(x10) // .*.................................................. - lh x17, 2*2(x10) // ..*................................................. - lh x22, 2*3(x10) // ...*................................................ - mul x25, x4, x31 // ...*................................................ - lh x28, 2*4(x10) // ....*............................................... - mul x16, x16, x31 // ....*............................................... - mul x18, x17, x31 // .....*.............................................. - lh x19, 2*5(x10) // .....*.............................................. - mul x13, x22, x31 // ......*............................................. - lh x17, 2*6(x10) // ......*............................................. - lh x4, 2*7(x10) // .......*............................................ - srai x16, x16, 16 // .......*............................................ - lh x6, 2*8(x10) // ........*........................................... - srai x22, x25, 16 // ........*........................................... - srai x13, x13, 16 // .........*.......................................... - srai x18, x18, 16 // .........*.......................................... - addi x16, x16, 8 // ..........*......................................... - addi x22, x22, 8 // ..........*......................................... - addi x18, x18, 8 // ...........*........................................ - mulh x16, x16, x30 // ...........*........................................ - mulh x26, x22, x30 // ............*....................................... - lh x7, 2*9(x10) // ............*....................................... - addi x22, x13, 8 // .............*...................................... - mulh x5, x18, x30 // .............*...................................... - lh x12, 2*10(x10) // ..............*..................................... - mulh x21, x22, x30 // ..............*..................................... - mul x1, x28, x31 // ...............*.................................... - lh x25, 2*11(x10) // ...............*.................................... - mul x29, x19, x31 // ................*................................... - mul x23, x17, x31 // ................*................................... - mul x27, x4, x31 // .................*.................................. - sh x26, 2*0(x10) // .................*.................................. - srai x15, x1, 16 // ..................*................................. - sh x16, 2*1(x10) // ..................*................................. - srai x17, x23, 16 // ...................*................................ - srai x16, x29, 16 // ...................*................................ - srai x28, x27, 16 // ....................*............................... - addi x22, x15, 8 // ....................*............................... - addi x17, x17, 8 // .....................*.............................. - addi x16, x16, 8 // .....................*.............................. - mulh x16, x16, x30 // ......................*............................. - sh x5, 2*2(x10) // ......................*............................. - addi x18, x28, 8 // .......................*............................ - sh x21, 2*3(x10) // .......................*............................ - lh x14, 2*12(x10) // ........................*........................... - mulh x22, x22, x30 // ........................*........................... - mulh x9, x18, x30 // .........................*.......................... - lh x5, 2*13(x10) // .........................*.......................... - mulh x11, x17, x30 // ..........................*......................... - lh x13, 2*14(x10) // ..........................*......................... - lh x19, 2*15(x10) // ...........................*........................ - sh x22, 2*4(x10) // ............................*....................... - mul x22, x7, x31 // ............................*....................... - sh x16, 2*5(x10) // .............................*...................... - mul x16, x6, x31 // .............................*...................... - sh x11, 2*6(x10) // ..............................*..................... - mul x17, x12, x31 // ..............................*..................... - sh x9, 2*7(x10) // ...............................*.................... - mul x12, x25, x31 // ...............................*.................... - srai x16, x16, 16 // ................................*................... - srai x22, x22, 16 // ................................*................... - srai x8, x17, 16 // .................................*.................. - addi x6, x16, 8 // .................................*.................. - mulh x16, x6, x30 // ..................................*................. - srai x17, x12, 16 // ..................................*................. - addi x28, x22, 8 // ...................................*................ - addi x22, x8, 8 // ...................................*................ - mulh x24, x28, x30 // ....................................*............... - addi x17, x17, 8 // ....................................*............... - mulh x18, x17, x30 // .....................................*.............. - mulh x20, x22, x30 // .....................................*.............. - sh x16, 2*8(x10) // ......................................*............. - mul x17, x14, x31 // ......................................*............. - mul x22, x13, x31 // .......................................*............ - mul x16, x5, x31 // .......................................*............ - mul x28, x19, x31 // ........................................*........... - sh x24, 2*9(x10) // ........................................*........... - srai x17, x17, 16 // .........................................*.......... - sh x20, 2*10(x10) // .........................................*.......... - srai x16, x16, 16 // ..........................................*......... - srai x20, x22, 16 // ..........................................*......... - addi x17, x17, 8 // ...........................................*........ - srai x19, x28, 16 // ...........................................*........ - mulh x28, x17, x30 // ............................................*....... - addi x16, x16, 8 // ............................................*....... - mulh x22, x16, x30 // .............................................*...... - addi x17, x20, 8 // .............................................*...... - mulh x17, x17, x30 // ..............................................*..... - addi x16, x19, 8 // ..............................................*..... - mulh x16, x16, x30 // ...............................................*.... - sh x18, 2*11(x10) // ...............................................*.... - sh x28, 2*12(x10) // ................................................*... - sh x22, 2*13(x10) // .................................................*.. - sh x17, 2*14(x10) // ..................................................*. - sh x16, 2*15(x10) // ...................................................* - addi x10, x10, 2*16 // ...................................................* + // |------------------------|------------------------|-- + mulw x6, x24, x31 // *.................................................... + srai x7, x14, 16 // *.................................................... + addi x13, x7, 8 // .*................................................... + mulw x8, x15, x31 // .*................................................... + mulh x17, x13, x30 // ..*.................................................. + lh x19, 2*15(x10) // ..*.................................................. + addi x7, x1, 8 // ...*................................................. + srai x6, x6, 16 // ...*................................................. + srai x1, x8, 16 // ....*................................................ + mulh x24, x7, x30 // ....*................................................ + addi x6, x6, 8 // .....*............................................... + lh x28, 2*13(x10) // .....*............................................... + mulh x11, x6, x30 // ......*.............................................. + sh x17, 2*11(x10) // ......*.............................................. + addi x14, x1, 8 // .......*............................................. + lh x7, 2*12(x10) // .......*............................................. + mulw x25, x28, x31 // ........*............................................ + srai x1, x20, 16 // ........*............................................ + mulw x15, x19, x31 // .........*........................................... + addi x6, x1, 8 // .........*........................................... + mulh x6, x6, x30 // ..........*.......................................... + sh x11, 2*4(x10) // ..........*.......................................... + lh x17, 2*14(x10) // ...........*......................................... + srai x22, x25, 16 // ...........*......................................... + srai x15, x15, 16 // ............*........................................ + mulw x25, x7, x31 // ............*........................................ + mulh x13, x14, x30 // .............*....................................... + sh x21, 2*9(x10) // .............*....................................... + sh x6, 2*6(x10) // ..............*...................................... + addi x1, x15, 8 // ..............*...................................... + mulh x15, x1, x30 // ...............*..................................... + srai x25, x25, 16 // ...............*..................................... + sh x23, 2*8(x10) // ................*.................................... + addi x1, x25, 8 // ................*.................................... + sh x13, 2*5(x10) // .................*................................... + mulw x13, x17, x31 // .................*................................... + mulh x25, x1, x30 // ..................*.................................. + sh x24, 2*10(x10) // ..................*.................................. + sh x15, 2*15(x10) // ...................*................................. + addi x14, x22, 8 // ...................*................................. + mulh x23, x14, x30 // ....................*................................ + srai x1, x13, 16 // ....................*................................ + sh x12, 2*7(x10) // .....................*............................... + addi x14, x1, 8 // .....................*............................... + sh x25, 2*12(x10) // ......................*.............................. + mulh x13, x14, x30 // ......................*.............................. + sh x23, 2*13(x10) // ........................*............................ + sh x13, 2*14(x10) // ..........................*.......................... + addi x10, x10, 2*16 // ..........................*.......................... + lh x20, 2*2(x10) // ...........................*......................... + lh x1, 2*9(x10) // ............................*........................ + lh x6, 2*1(x10) // .............................*....................... + mulw x24, x20, x31 // ..............................*...................... + lh x23, 2*0(x10) // ..............................*...................... + lh x29, 2*3(x10) // ...............................*..................... + mulw x14, x1, x31 // ...............................*..................... + mulw x20, x6, x31 // ................................*.................... + lh x15, 2*11(x10) // ................................*.................... + mulw x8, x23, x31 // .................................*................... + srai x13, x24, 16 // .................................*................... + mulw x17, x29, x31 // ..................................*.................. + srai x9, x14, 16 // ..................................*.................. + mulw x14, x15, x31 // ...................................*................. + addi x13, x13, 8 // ...................................*................. + mulh x25, x13, x30 // ....................................*................ + lh x29, 2*6(x10) // ....................................*................ + addi x12, x9, 8 // .....................................*............... + lh x6, 2*8(x10) // .....................................*............... + mulh x21, x12, x30 // ......................................*.............. + srai x13, x17, 16 // ......................................*.............. + addi x1, x13, 8 // .......................................*............. + srai x22, x8, 16 // .......................................*............. + addi x27, x22, 8 // ........................................*............ + mulh x26, x1, x30 // ........................................*............ + srai x12, x20, 16 // .........................................*........... + lh x8, 2*10(x10) // .........................................*........... + lh x7, 2*7(x10) // ..........................................*.......... + mulw x17, x6, x31 // ..........................................*.......... + mulh x9, x27, x30 // ...........................................*......... + lh x24, 2*4(x10) // ...........................................*......... + sh x26, 2*3(x10) // ............................................*........ + addi x6, x12, 8 // ............................................*........ + srai x5, x17, 16 // .............................................*....... + mulw x12, x7, x31 // .............................................*....... + lh x15, 2*5(x10) // ..............................................*...... + mulw x1, x8, x31 // ..............................................*...... + sh x9, 2*0(x10) // ...............................................*..... + mulw x20, x29, x31 // ...............................................*..... + sh x25, 2*2(x10) // ................................................*.... + mulh x25, x6, x30 // ................................................*.... + addi x6, x5, 8 // .................................................*... + srai x1, x1, 16 // .................................................*... + mulh x23, x6, x30 // ..................................................*.. + srai x6, x12, 16 // ..................................................*.. + addi x6, x6, 8 // ...................................................*. + sh x25, 2*1(x10) // ....................................................* + mulh x12, x6, x30 // ....................................................* - // ---------------- cycle (expected) -----------------> + // ----------------- cycle (expected) -----------------> // 0 25 50 - // |------------------------|------------------------|- - // lh x11, 2*0(x10) // *................................................... - // lh x12, 2*1(x10) // .*.................................................. - // lh x13, 2*2(x10) // ..*................................................. - // lh x14, 2*3(x10) // ...*................................................ - // lh x5, 2*4(x10) // ....*............................................... - // lh x6, 2*5(x10) // .....*.............................................. - // lh x7, 2*6(x10) // ......*............................................. - // lh x28, 2*7(x10) // .......*............................................ - // mulw x11, x11, x31 // ...*................................................ - // mulw x12, x12, x31 // ....*............................................... - // mulw x13, x13, x31 // .....*.............................................. - // mulw x14, x14, x31 // ......*............................................. - // srai x11, x11, 16 // ........*........................................... - // srai x12, x12, 16 // .......*............................................ - // srai x13, x13, 16 // .........*.......................................... - // srai x14, x14, 16 // .........*.......................................... - // addi x11, x11, 8 // ..........*......................................... - // addi x12, x12, 8 // ..........*......................................... - // addi x13, x13, 8 // ...........*........................................ - // addi x14, x14, 8 // .............*...................................... - // mulh x11, x11, x30 // ............*....................................... - // mulh x12, x12, x30 // ...........*........................................ - // mulh x13, x13, x30 // .............*...................................... - // mulh x14, x14, x30 // ..............*..................................... - // lh x15, 2*8(x10) // ........*........................................... - // lh x16, 2*9(x10) // ............*....................................... - // lh x17, 2*10(x10) // ..............*..................................... - // lh x8, 2*11(x10) // ...............*.................................... - // sh x11, 2*0(x10) // .................*.................................. - // sh x12, 2*1(x10) // ..................*................................. - // sh x13, 2*2(x10) // ......................*............................. - // sh x14, 2*3(x10) // .......................*............................ - // mulw x5, x5, x31 // ...............*.................................... - // mulw x6, x6, x31 // ................*................................... - // mulw x7, x7, x31 // ................*................................... - // mulw x28, x28, x31 // .................*.................................. - // srai x5, x5, 16 // ..................*................................. - // srai x6, x6, 16 // ...................*................................ - // srai x7, x7, 16 // ...................*................................ - // srai x28, x28, 16 // ....................*............................... - // addi x5, x5, 8 // ....................*............................... - // addi x6, x6, 8 // .....................*.............................. - // addi x7, x7, 8 // .....................*.............................. - // addi x28, x28, 8 // .......................*............................ - // mulh x5, x5, x30 // ........................*........................... - // mulh x6, x6, x30 // ......................*............................. - // mulh x7, x7, x30 // ..........................*......................... - // mulh x28, x28, x30 // .........................*.......................... - // lh x11, 2*12(x10) // ........................*........................... - // lh x12, 2*13(x10) // .........................*.......................... - // lh x13, 2*14(x10) // ..........................*......................... - // lh x14, 2*15(x10) // ...........................*........................ - // sh x5, 2*4(x10) // ............................*....................... - // sh x6, 2*5(x10) // .............................*...................... - // sh x7, 2*6(x10) // ..............................*..................... - // sh x28, 2*7(x10) // ...............................*.................... - // mulw x15, x15, x31 // .............................*...................... - // mulw x16, x16, x31 // ............................*....................... - // mulw x17, x17, x31 // ..............................*..................... - // mulw x8, x8, x31 // ...............................*.................... - // srai x15, x15, 16 // ................................*................... - // srai x16, x16, 16 // ................................*................... - // srai x17, x17, 16 // .................................*.................. - // srai x8, x8, 16 // ..................................*................. - // addi x15, x15, 8 // .................................*.................. - // addi x16, x16, 8 // ...................................*................ - // addi x17, x17, 8 // ...................................*................ - // addi x8, x8, 8 // ....................................*............... - // mulh x15, x15, x30 // ..................................*................. - // mulh x16, x16, x30 // ....................................*............... - // mulh x17, x17, x30 // .....................................*.............. - // mulh x8, x8, x30 // .....................................*.............. - // sh x15, 2*8(x10) // ......................................*............. - // sh x16, 2*9(x10) // ........................................*........... - // sh x17, 2*10(x10) // .........................................*.......... - // sh x8, 2*11(x10) // ...............................................*.... - // mulw x11, x11, x31 // ......................................*............. - // mulw x12, x12, x31 // .......................................*............ - // mulw x13, x13, x31 // .......................................*............ - // mulw x14, x14, x31 // ........................................*........... - // srai x11, x11, 16 // .........................................*.......... - // srai x12, x12, 16 // ..........................................*......... - // srai x13, x13, 16 // ..........................................*......... - // srai x14, x14, 16 // ...........................................*........ - // addi x11, x11, 8 // ...........................................*........ - // addi x12, x12, 8 // ............................................*....... - // addi x13, x13, 8 // .............................................*...... - // addi x14, x14, 8 // ..............................................*..... - // mulh x11, x11, x30 // ............................................*....... - // mulh x12, x12, x30 // .............................................*...... - // mulh x13, x13, x30 // ..............................................*..... - // mulh x14, x14, x30 // ...............................................*.... - // sh x11, 2*12(x10) // ................................................*... - // sh x12, 2*13(x10) // .................................................*.. - // sh x13, 2*14(x10) // ..................................................*. - // sh x14, 2*15(x10) // ...................................................* - // addi x10, x10, 2*16 // ...................................................* + // |------------------------|------------------------|-- + // addi x6, x1, 8 // ...*................................................. + // srai x1, x14, 16 // *.................................................... + // mulh x25, x6, x30 // ....*................................................ + // lh x13, 2*12(x10) // .......*............................................. + // addi x6, x1, 8 // .*................................................... + // srai x1, x20, 16 // ........*............................................ + // mulh x20, x6, x30 // ..*.................................................. + // addi x17, x1, 8 // .........*........................................... + // lh x1, 2*13(x10) // .....*............................................... + // lh x14, 2*14(x10) // ...........*......................................... + // mulw x6, x13, x31 // ............*........................................ + // mulw x28, x15, x31 // .*................................................... + // lh x13, 2*15(x10) // ..*.................................................. + // sh x12, 2*7(x10) // .....................*............................... + // mulw x1, x1, x31 // ........*............................................ + // mulw x14, x14, x31 // .................*................................... + // srai x6, x6, 16 // ...............*..................................... + // mulw x13, x13, x31 // .........*........................................... + // addi x6, x6, 8 // ................*.................................... + // srai x1, x1, 16 // ...........*......................................... + // mulh x15, x6, x30 // ..................*.................................. + // sh x23, 2*8(x10) // ................*.................................... + // addi x6, x1, 8 // ...................*................................. + // srai x1, x14, 16 // ....................*................................ + // mulh x14, x6, x30 // ....................*................................ + // sh x21, 2*9(x10) // .............*....................................... + // addi x6, x1, 8 // .....................*............................... + // srai x13, x13, 16 // ............*........................................ + // mulh x1, x6, x30 // ......................*.............................. + // sh x25, 2*10(x10) // ..................*.................................. + // addi x6, x13, 8 // ..............*...................................... + // sh x20, 2*11(x10) // ......*.............................................. + // mulh x6, x6, x30 // ...............*..................................... + // srai x13, x28, 16 // ....*................................................ + // sh x15, 2*12(x10) // ......................*.............................. + // sh x14, 2*13(x10) // ........................*............................ + // mulw x15, x24, x31 // *.................................................... + // mulh x14, x17, x30 // ..........*.......................................... + // sh x1, 2*14(x10) // ..........................*.......................... + // addi x1, x13, 8 // .......*............................................. + // sh x6, 2*15(x10) // ...................*................................. + // mulh x6, x1, x30 // .............*....................................... + // srai x1, x15, 16 // ...*................................................. + // addi x1, x1, 8 // .....*............................................... + // sh x14, 2*6(x10) // ..............*...................................... + // mulh x1, x1, x30 // ......*.............................................. + // sh x6, 2*5(x10) // .................*................................... + // sh x1, 2*4(x10) // ..........*.......................................... + // addi x10, x10, 2*16 // ..........................*.......................... + // lh x24, 2*0(x10) // ..............................*...................... + // lh x6, 2*1(x10) // .............................*....................... + // lh x1, 2*2(x10) // ...........................*......................... + // mulw x13, x24, x31 // .................................*................... + // lh x24, 2*3(x10) // ...............................*..................... + // lh x20, 2*7(x10) // ..........................................*.......... + // mulw x15, x6, x31 // ................................*.................... + // mulw x14, x1, x31 // ..............................*...................... + // srai x6, x13, 16 // .......................................*............. + // mulw x13, x24, x31 // ..................................*.................. + // addi x1, x6, 8 // ........................................*............ + // mulw x6, x20, x31 // .............................................*....... + // mulh x29, x1, x30 // ...........................................*......... + // srai x1, x15, 16 // .........................................*........... + // lh x24, 2*4(x10) // ...........................................*......... + // addi x1, x1, 8 // ............................................*........ + // srai x14, x14, 16 // .................................*................... + // mulh x23, x1, x30 // ................................................*.... + // lh x15, 2*5(x10) // ..............................................*...... + // addi x1, x14, 8 // ...................................*................. + // srai x14, x13, 16 // ......................................*.............. + // mulh x21, x1, x30 // ....................................*................ + // lh x20, 2*6(x10) // ....................................*................ + // addi x1, x14, 8 // .......................................*............. + // mulh x17, x1, x30 // ........................................*............ + // srai x6, x6, 16 // ..................................................*.. + // lh x25, 2*8(x10) // .....................................*............... + // addi x6, x6, 8 // ...................................................*. + // lh x1, 2*9(x10) // ............................*........................ + // mulh x12, x6, x30 // ....................................................* + // lh x13, 2*10(x10) // .........................................*........... + // lh x14, 2*11(x10) // ................................*.................... + // mulw x6, x25, x31 // ..........................................*.......... + // sh x29, 2*0(x10) // ...............................................*..... + // mulw x20, x20, x31 // ...............................................*..... + // sh x23, 2*1(x10) // ....................................................* + // mulw x1, x1, x31 // ...............................*..................... + // mulw x13, x13, x31 // ..............................................*...... + // srai x6, x6, 16 // .............................................*....... + // mulw x14, x14, x31 // ...................................*................. + // addi x6, x6, 8 // .................................................*... + // srai x1, x1, 16 // ..................................*.................. + // mulh x23, x6, x30 // ..................................................*.. + // sh x21, 2*2(x10) // ................................................*.... + // addi x6, x1, 8 // .....................................*............... + // srai x1, x13, 16 // .................................................*... + // mulh x21, x6, x30 // ......................................*.............. + // sh x17, 2*3(x10) // ............................................*........ addi t4, t4, -1 - bne t4, zero, poly_toplant_rv64im_loop - // Instructions: 0 - // Expected cycles: 0 - // Expected IPC: 0.00 - // - // Wall time: 0.01s - // User time: 0.01s - // - ld s0, 0(sp) - addi sp, sp, 8*1 + bne t4, zero,, poly_toplant_rv64im_loop + addi x6, x1, 8 // ..........................*........................... + srai x1, x14, 16 // ...........................*.......................... + mulh x25, x6, x30 // ...........................*.......................... + lh x13, 2*12(x10) // ............................*......................... + addi x6, x1, 8 // ............................*......................... + srai x1, x20, 16 // .............................*........................ + mulh x20, x6, x30 // .............................*........................ + addi x17, x1, 8 // ..............................*....................... + lh x1, 2*13(x10) // ..............................*....................... + lh x14, 2*14(x10) // ...............................*...................... + mulw x6, x13, x31 // ...............................*...................... + mulw x28, x15, x31 // ................................*..................... + lh x13, 2*15(x10) // ................................*..................... + sh x12, 2*7(x10) // .................................*.................... + mulw x1, x1, x31 // .................................*.................... + mulw x14, x14, x31 // ..................................*................... + srai x6, x6, 16 // ..................................*................... + mulw x13, x13, x31 // ...................................*.................. + addi x6, x6, 8 // ...................................*.................. + srai x1, x1, 16 // ....................................*................. + mulh x15, x6, x30 // ....................................*................. + sh x23, 2*8(x10) // .....................................*................ + addi x6, x1, 8 // .....................................*................ + srai x1, x14, 16 // ......................................*............... + mulh x14, x6, x30 // ......................................*............... + sh x21, 2*9(x10) // .......................................*.............. + addi x6, x1, 8 // .......................................*.............. + srai x13, x13, 16 // ........................................*............. + mulh x1, x6, x30 // ........................................*............. + sh x25, 2*10(x10) // .........................................*............ + addi x6, x13, 8 // .........................................*............ + sh x20, 2*11(x10) // ..........................................*........... + mulh x6, x6, x30 // ..........................................*........... + srai x13, x28, 16 // ...........................................*.......... + sh x15, 2*12(x10) // ...........................................*.......... + sh x14, 2*13(x10) // ............................................*......... + mulw x15, x24, x31 // ............................................*......... + mulh x14, x17, x30 // .............................................*........ + sh x1, 2*14(x10) // .............................................*........ + addi x1, x13, 8 // ..............................................*....... + sh x6, 2*15(x10) // ..............................................*....... + mulh x6, x1, x30 // ...............................................*...... + srai x1, x15, 16 // ...............................................*...... + addi x1, x1, 8 // ................................................*..... + sh x14, 2*6(x10) // .................................................*.... + mulh x1, x1, x30 // .................................................*.... + sh x6, 2*5(x10) // ...................................................*.. + sh x1, 2*4(x10) // .....................................................* + addi x10, x10, 2*16 // .....................................................* + restore_regs ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_sampling/kyber_cbd2_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_sampling/kyber_cbd2_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..732f25d3c --- /dev/null +++ b/examples/opt/riscv/kyber_sampling/kyber_cbd2_rvv_vlen128_opt_c908.s @@ -0,0 +1,1142 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzeta1, vzeta2, vzeta3, vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 v16, v24, v18, v26, v20, v28, v22, v30, v17, v25, v19, v27, v21, v29, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v3, v2, v3, v2, v3, v2, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v16, v20, v18, v22, v24, v28, v26, v30, v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v17, v21, v19, v23, v25, v29, v27, v31, v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, vidx8_0122, vidx_low, vidx_high, x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +// void cbd2_rvv_vlen128(int16_t *r, const uint8_t *buf, const int16_t *table) +.globl cbd2_rvv_vlen128_opt_c908 +.align 2 +cbd2_rvv_vlen128_opt_c908: + save_regs + li t0, 0x55 + li t1, 0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a2, _CBD2_MASK_E8_01*2 + addi t3, a2, _CBD2_IDX8_LOW*2 + addi t4, a2, _CBD2_IDX8_HIGH*2 + vle8.v v29, (t2) + vle8.v v30, (t3) + vle8.v v31, (t4) + li a4, 2 + vmseq.vi v0, v29, 1 +cbd2_rvv_vlen128_loop: + // Instructions: 110 + // Expected cycles: 207 + // Expected IPC: 0.53 + // + // ---------------------------------------------------------------------------------------------- cycle (expected) ----------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------ + vsetivli x13, 16, e8, m1, tu, mu // *.............................................................................................................................................................................................................. + addi x13, x11, 16 // *.............................................................................................................................................................................................................. + addi x28, x11, 16*2 // .*............................................................................................................................................................................................................. + addi x30, x11, 16*3 // .*............................................................................................................................................................................................................. + vle8.v v19, (x11) // ....*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + addi x11, x11, 16*4 // ....*.......................................................................................................................................................................................................... + vsrl.vi v25, v19, 1 // .......*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v13, v19, x5 // .........*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v19, v25, x5 // ...........*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vle8.v v21, (x30) // .............*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vle8.v v5, (x13) // ...............*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v1, v5, 1 // ..................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vadd.vv v19, v13, v19 // ...................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vle8.v v12, (x28) // ....................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v24, v1, x5 // ......................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v20, v5, x5 // ........................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v4, v12, 1 // ..........................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v28, v12, x5 // ............................*.................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vadd.vv v16, v20, v24 // .............................*................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v29, v4, x5 // ..............................*................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v27, v21, 1 // ................................*.............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v11, v21, x5 // ..................................*............................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v13, v19, x6 // ....................................*.......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vadd.vv v22, v28, v29 // .....................................*......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v4, v27, x5 // ......................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v28, v19, 2 // ........................................*...................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vadd.vx v5, v13, x6 // .........................................*..................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v3, v16, x6 // ..........................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v13, v22, 2 // .............................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vadd.vv v1, v11, v4 // ..............................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v29, v28, x6 // ...............................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v10, v16, 2 // .................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vadd.vx v12, v3, x6 // ..................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v19, v22, x6 // ...................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsub.vv v28, v5, v29 // ....................................................*.......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v16, v10, x6 // .....................................................*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v11, v13, x6 // .......................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vadd.vx v19, v19, x6 // .........................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v23, v1, x6 // ..........................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsub.vv v9, v19, v11 // .............................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v25, v28, 4 // ..............................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vsub.vv v2, v12, v16 // ...............................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v16, v1, 2 // ................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vadd.vx v22, v23, x6 // .................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vand.vi v19, v28, 0xf // ..................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vadd.vi v28, v25, -3 // ...................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vx v16, v16, x6 // ....................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vand.vi v27, v9, 0xf // ......................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vadd.vi v29, v19, -3 // .......................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v19, v9, 4 // ........................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsub.vv v16, v22, v16 // .........................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v11, v2, 4 // ..........................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vadd.vi v27, v27, -3 // ............................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vand.vi v3, v2, 0xf // .............................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vadd.vi v19, v19, -3 // ..............................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v18, v27, v30 // ................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vadd.vi v14, v3, -3 // .................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vsrl.vi v24, v16, 4 // ....................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v4, v19, v30 // ......................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vadd.vi v9, v24, -3 // ........................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v22, v19, v31 // ..........................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + addi x29, x10, 16*6 // ..........................................................................................*.................................................................................................................... + vadd.vi v11, v11, -3 // ...........................................................................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + addi x28, x10, 16*4 // ...........................................................................................*................................................................................................................... + addi x7, x10, 16*2 // ............................................................................................*.................................................................................................................. + vrgather.vv v19, v27, v31 // ..............................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vand.vi v16, v16, 0xf // ..................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + addi x30, x10, 16*14 // ..................................................................................................*............................................................................................................ + vmerge.vvm v5, v18, v4, v0 // ....................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vmerge.vvm v6, v19, v22, v0 // ......................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vadd.vi v19, v16, -3 // .......................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v16, v11, v31 // ........................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v13, v11, v30 // ............................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + addi x25, x10, 16*10 // ............................................................................................................*.................................................................................................. + addi x13, x10, 16*8 // .............................................................................................................*................................................................................................. + addi x21, x10, 16*12 // .............................................................................................................*................................................................................................. + vrgather.vv v11, v29, v31 // ................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v27, v29, v30 // ....................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v29, v28, v31 // ........................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v22, v28, v30 // ............................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vmerge.vvm v4, v11, v29, v0 // ................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v28, v9, v30 // ..................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v29, v9, v31 // ......................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v24, v14, v31 // ..........................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v11, v14, v30 // ..............................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vmerge.vvm v10, v24, v16, v0 // ..................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v18, v19, v31 // ....................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=8 + vmerge.vvm v16, v11, v13, v0 // ........................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v11, v19, v30 // ..........................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=8 + vmerge.vvm v19, v27, v22, v0 // ..............................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=8 + vmerge.vvm v28, v11, v28, v0 // ................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=8 + vmerge.vvm v29, v18, v29, v0 // ..................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=8 + vsetivli x17, 16, e16, m2, tu, mu // ....................................................................................................................................................................*.......................................... + vsext.vf2 v22, v10 // ........................................................................................................................................................................*...................................... // @slothy:lmul=2 // @slothy:sew=16 + vsext.vf2 v14, v19 // .........................................................................................................................................................................*..................................... // @slothy:lmul=2 // @slothy:sew=16 + vsext.vf2 v2, v6 // ................................................................................................................................................................................*.............................. // @slothy:lmul=2 // @slothy:sew=16 + vsext.vf2 v8, v28 // .................................................................................................................................................................................*............................. // @slothy:lmul=2 // @slothy:sew=16 + vse16.v v2, (x25) // ........................................................................................................................................................................................*...................... // @slothy:lmul=2 // @slothy:sew=16 + vsext.vf2 v26, v29 // .........................................................................................................................................................................................*..................... // @slothy:lmul=2 // @slothy:sew=16 + vse16.v v22, (x29) // ..........................................................................................................................................................................................*.................... // @slothy:lmul=2 // @slothy:sew=16 + vse16.v v8, (x21) // ............................................................................................................................................................................................*.................. // @slothy:lmul=2 // @slothy:sew=16 + vse16.v v26, (x30) // ..............................................................................................................................................................................................*................ // @slothy:lmul=2 // @slothy:sew=16 + vse16.v v14, (x10) // ................................................................................................................................................................................................*.............. // @slothy:lmul=2 // @slothy:sew=16 + addi x10, x10, 16*16 // ................................................................................................................................................................................................*.............. + vsext.vf2 v12, v4 // .................................................................................................................................................................................................*............. // @slothy:lmul=2 // @slothy:sew=16 + vsext.vf2 v20, v16 // ..................................................................................................................................................................................................*............ // @slothy:lmul=2 // @slothy:sew=16 + vsext.vf2 v16, v5 // .........................................................................................................................................................................................................*..... // @slothy:lmul=2 // @slothy:sew=16 + vse16.v v20, (x28) // ..........................................................................................................................................................................................................*.... // @slothy:lmul=2 // @slothy:sew=16 + vse16.v v12, (x7) // ............................................................................................................................................................................................................*.. // @slothy:lmul=2 // @slothy:sew=16 + vse16.v v16, (x13) // ..............................................................................................................................................................................................................* // @slothy:lmul=2 // @slothy:sew=16 + + // ---------------------------------------------------------------------------------------------- cycle (expected) ----------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------ + // vsetivli x17, 16, e8, m1, tu, mu // *.............................................................................................................................................................................................................. + // addi x7, x11, 16 // *.............................................................................................................................................................................................................. + // addi x28, x11, 16*2 // .*............................................................................................................................................................................................................. + // addi x29, x11, 16*3 // .*............................................................................................................................................................................................................. + // vle8.v v1, (x11) // ....*.......................................................................................................................................................................................................... + // vle8.v v3, (x7) // ...............*............................................................................................................................................................................................... + // vle8.v v5, (x28) // ....................*.......................................................................................................................................................................................... + // vle8.v v7, (x29) // .............*................................................................................................................................................................................................. + // addi x11, x11, 16*4 // ....*.......................................................................................................................................................................................................... + // vsrl.vi v2, v1, 1 // .......*....................................................................................................................................................................................................... + // vsrl.vi v4, v3, 1 // ..................*............................................................................................................................................................................................ + // vsrl.vi v6, v5, 1 // ..........................*.................................................................................................................................................................................... + // vsrl.vi v8, v7, 1 // ................................*.............................................................................................................................................................................. + // vand.vx v1, v1, x5 // .........*..................................................................................................................................................................................................... + // vand.vx v2, v2, x5 // ...........*................................................................................................................................................................................................... + // vand.vx v3, v3, x5 // ........................*...................................................................................................................................................................................... + // vand.vx v4, v4, x5 // ......................*........................................................................................................................................................................................ + // vand.vx v5, v5, x5 // ............................*.................................................................................................................................................................................. + // vand.vx v6, v6, x5 // ..............................*................................................................................................................................................................................ + // vand.vx v7, v7, x5 // ..................................*............................................................................................................................................................................ + // vand.vx v8, v8, x5 // ......................................*........................................................................................................................................................................ + // vadd.vv v1, v1, v2 // ...................*........................................................................................................................................................................................... + // vadd.vv v3, v3, v4 // .............................*................................................................................................................................................................................. + // vadd.vv v5, v5, v6 // .....................................*......................................................................................................................................................................... + // vadd.vv v7, v7, v8 // ..............................................*................................................................................................................................................................ + // vsrl.vi v2, v1, 2 // ........................................*...................................................................................................................................................................... + // vsrl.vi v4, v3, 2 // .................................................*............................................................................................................................................................. + // vsrl.vi v6, v5, 2 // .............................................*................................................................................................................................................................. + // vsrl.vi v8, v7, 2 // ................................................................*.............................................................................................................................................. + // vand.vx v1, v1, x6 // ....................................*.......................................................................................................................................................................... + // vand.vx v3, v3, x6 // ..........................................*.................................................................................................................................................................... + // vand.vx v5, v5, x6 // ...................................................*........................................................................................................................................................... + // vand.vx v7, v7, x6 // ..........................................................*.................................................................................................................................................... + // vand.vx v2, v2, x6 // ...............................................*............................................................................................................................................................... + // vand.vx v4, v4, x6 // .....................................................*......................................................................................................................................................... + // vand.vx v6, v6, x6 // .......................................................*....................................................................................................................................................... + // vand.vx v8, v8, x6 // ....................................................................*.......................................................................................................................................... + // vadd.vx v1, v1, x6 // .........................................*..................................................................................................................................................................... + // vadd.vx v3, v3, x6 // ..................................................*............................................................................................................................................................ + // vadd.vx v5, v5, x6 // .........................................................*..................................................................................................................................................... + // vadd.vx v7, v7, x6 // .................................................................*............................................................................................................................................. + // vsub.vv v1, v1, v2 // ....................................................*.......................................................................................................................................................... + // vsub.vv v3, v3, v4 // ...............................................................*............................................................................................................................................... + // vsub.vv v5, v5, v6 // .............................................................*................................................................................................................................................. + // vsub.vv v7, v7, v8 // .........................................................................*..................................................................................................................................... + // vsrl.vi v2, v1, 4 // ..............................................................*................................................................................................................................................ + // vsrl.vi v4, v3, 4 // ..........................................................................*.................................................................................................................................... + // vsrl.vi v6, v5, 4 // ........................................................................*...................................................................................................................................... + // vsrl.vi v8, v7, 4 // ....................................................................................*.......................................................................................................................... + // vand.vi v1, v1, 0xf // ..................................................................*............................................................................................................................................ + // vand.vi v3, v3, 0xf // .............................................................................*................................................................................................................................. + // vand.vi v5, v5, 0xf // ......................................................................*........................................................................................................................................ + // vand.vi v7, v7, 0xf // ..................................................................................................*............................................................................................................ + // vadd.vi v2, v2, -3 // ...................................................................*........................................................................................................................................... + // vadd.vi v4, v4, -3 // ...........................................................................................*................................................................................................................... + // vadd.vi v6, v6, -3 // ..............................................................................*................................................................................................................................ + // vadd.vi v8, v8, -3 // ........................................................................................*...................................................................................................................... + // vadd.vi v1, v1, -3 // .......................................................................*....................................................................................................................................... + // vadd.vi v3, v3, -3 // .................................................................................*............................................................................................................................. + // vadd.vi v5, v5, -3 // ............................................................................*.................................................................................................................................. + // vadd.vi v7, v7, -3 // .......................................................................................................*....................................................................................................... + // vrgather.vv v10, v1, v30 // ....................................................................................................................*.......................................................................................... + // vrgather.vv v11, v2, v30 // ............................................................................................................................*.................................................................................. + // vrgather.vv v12, v1, v31 // ................................................................................................................*.............................................................................................. + // vrgather.vv v13, v2, v31 // ........................................................................................................................*...................................................................................... + // vrgather.vv v14, v3, v30 // ..............................................................................................................................................*................................................................ + // vrgather.vv v15, v4, v30 // ............................................................................................................*.................................................................................................. + // vrgather.vv v16, v3, v31 // ..........................................................................................................................................*.................................................................... + // vrgather.vv v17, v4, v31 // ........................................................................................................*...................................................................................................... + // vrgather.vv v18, v5, v30 // ................................................................................*.............................................................................................................................. + // vrgather.vv v19, v6, v30 // ......................................................................................*........................................................................................................................ + // vrgather.vv v20, v5, v31 // ..............................................................................................*................................................................................................................ + // vrgather.vv v21, v6, v31 // ..........................................................................................*.................................................................................................................... + // vrgather.vv v22, v7, v30 // ..........................................................................................................................................................*.................................................... + // vrgather.vv v23, v8, v30 // ..................................................................................................................................*............................................................................ + // vrgather.vv v24, v7, v31 // ....................................................................................................................................................*.......................................................... + // vrgather.vv v25, v8, v31 // ......................................................................................................................................*........................................................................ + // vmerge.vvm v1, v10, v11, v0 // ..............................................................................................................................................................*................................................ + // vmerge.vvm v2, v12, v13, v0 // ................................................................................................................................*.............................................................................. + // vmerge.vvm v3, v14, v15, v0 // ........................................................................................................................................................*...................................................... + // vmerge.vvm v4, v16, v17, v0 // ..................................................................................................................................................*............................................................ + // vmerge.vvm v5, v18, v19, v0 // ....................................................................................................*.......................................................................................................... + // vmerge.vvm v6, v20, v21, v0 // ......................................................................................................*........................................................................................................ + // vmerge.vvm v7, v22, v23, v0 // ................................................................................................................................................................*.............................................. + // vmerge.vvm v8, v24, v25, v0 // ..................................................................................................................................................................*............................................ + // vsetivli x17, 16, e16, m2, tu, mu // ....................................................................................................................................................................*.......................................... + // vsext.vf2 v10, v1 // .........................................................................................................................................................................*..................................... + // vsext.vf2 v12, v2 // .................................................................................................................................................................................................*............. + // vsext.vf2 v14, v3 // ..................................................................................................................................................................................................*............ + // vsext.vf2 v16, v4 // ........................................................................................................................................................................*...................................... + // vsext.vf2 v18, v5 // .........................................................................................................................................................................................................*..... + // vsext.vf2 v20, v6 // ................................................................................................................................................................................*.............................. + // vsext.vf2 v22, v7 // .................................................................................................................................................................................*............................. + // vsext.vf2 v24, v8 // .........................................................................................................................................................................................*..................... + // addi x7, x10, 16*2 // ............................................................................................*.................................................................................................................. + // addi x28, x10, 16*4 // ...........................................................................................*................................................................................................................... + // addi x29, x10, 16*6 // ..........................................................................................*.................................................................................................................... + // vse16.v v10, (x10) // ................................................................................................................................................................................................*.............. + // vse16.v v12, (x7) // ............................................................................................................................................................................................................*.. + // vse16.v v14, (x28) // ..........................................................................................................................................................................................................*.... + // vse16.v v16, (x29) // ..........................................................................................................................................................................................*.................... + // addi x7, x10, 16*8 // .............................................................................................................*................................................................................................. + // addi x28, x10, 16*10 // ............................................................................................................*.................................................................................................. + // addi x29, x10, 16*12 // .............................................................................................................*................................................................................................. + // addi x30, x10, 16*14 // ..................................................................................................*............................................................................................................ + // vse16.v v18, (x7) // ..............................................................................................................................................................................................................* + // vse16.v v20, (x28) // ........................................................................................................................................................................................*...................... + // vse16.v v22, (x29) // ............................................................................................................................................................................................*.................. + // vse16.v v24, (x30) // ..............................................................................................................................................................................................*................ + // addi x10, x10, 16*16 // ................................................................................................................................................................................................*.............. + + addi a4, a4, -1 + bnez a4, cbd2_rvv_vlen128_loop + restore_regs +ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_sampling/kyber_cbd3_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_sampling/kyber_cbd3_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..6b5e93f7a --- /dev/null +++ b/examples/opt/riscv/kyber_sampling/kyber_cbd3_rvv_vlen128_opt_c908.s @@ -0,0 +1,1343 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzeta1, vzeta2, vzeta3, vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 v16, v24, v18, v26, v20, v28, v22, v30, v17, v25, v19, v27, v21, v29, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v3, v2, v3, v2, v3, v2, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v16, v20, v18, v22, v24, v28, v26, v30, v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v17, v21, v19, v23, v25, v29, v27, v31, v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, vidx8_0122, vidx_low, vidx_high, x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +// void cbd3_rvv_vlen128(int16_t *r, const uint8_t *buf, const int16_t *table) +.globl cbd3_rvv_vlen128_opt_c908 +.align 2 +cbd3_rvv_vlen128_opt_c908: + save_regs + li t0, 0x249249 + li t1, 0x6DB6DB + li a3, 0x70000 + li a4, 4 + vsetivli a7, 8, e16, m1, tu, mu + addi t2, a2, _CBD3_MASK_E16_1100*2 + addi t3, a2, _CBD3_MASK_E8_0122*2 + addi t4, a2, _CBD3_IDX16_LOW*2 + addi t5, a2, _CBD3_IDX16_HIGH*2 + vle16.v v28, (t2) + vle16.v v29, (t3) + vle16.v v30, (t4) + vle16.v v31, (t5) + vmseq.vi v0, v28, 1 + vsetivli x7, 16, e8, m1, tu, mu // *......................................................................................................................................................................................................................................................... + addi x7, x11, 12 // *......................................................................................................................................................................................................................................................... + addi x26, x11, 12*2 // .*........................................................................................................................................................................................................................................................ + addi x28, x11, 12*3 // .*........................................................................................................................................................................................................................................................ + vle8.v v23, (x11) // ....*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + addi x11, x11, 12*4 // ....*..................................................................................................................................................................................................................................................... + vle8.v v20, (x7) // ......*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vle8.v v19, (x26) // ........*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vle8.v v2, (x28) // ..........*............................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v21, v23, v29 // ............*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v23, v20, v29 // ................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v20, v19, v29 // ....................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v19, v2, v29 // ........................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vsetivli x26, 4, e32, m1, tu, mu // ........................*................................................................................................................................................................................................................................. + vsrl.vi v7, v20, 1 // ................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v5, v20, x5 // ..................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v2, v7, x5 // ....................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v17, v21, x5 // ......................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v24, v20, 2 // ........................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v5, v2 // .........................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v13, v21, 1 // ..........................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v27, v23, 1 // ............................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v5, v23, x5 // ..............................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v16, v27, x5 // ................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v25, v24, x5 // ..................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v2, v23, 2 // ....................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v5, v5, v16 // .....................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v13, v13, x5 // ......................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v23, v2, x5 // ........................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v11, v20, v25 // .........................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v6, v21, 2 // ..........................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v12, v17, v13 // ...........................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v13, v19, x5 // ............................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v23, v5, v23 // .............................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v25, v6, x5 // ..............................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vx v9, v11, x6 // .................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v4, v11, 3 // ..................................................................*....................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v10, v12, v25 // ...................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v6, v19, 1 // ....................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vx v22, v23, x6 // .....................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v27, v19, 2 // ......................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v9, v4 // .......................................................................*.................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v19, v23, 3 // ........................................................................*................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v20, v6, x5 // ..........................................................................*............................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vx v17, v10, x6 // ...........................................................................*.............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v11, v27, x5 // ............................................................................*............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v22, v19 // ..............................................................................*........................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v15, v10, 3 // ...............................................................................*.......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v13, v20 // .................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsll.vi v20, v22, 10 // ..................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v17, v15 // ...................................................................................*...................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v23, v22, 7 // ....................................................................................*..................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v21, v11 // .....................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v4, v20, x13 // ......................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsll.vi v9, v1, 10 // ........................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v21, v1, 12 // ..........................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v20, v9, x13 // ............................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v23, v4 // .............................................................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v23, v1, 7 // ..............................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vx v19, v26, x6 // ...............................................................................................*.......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v5, v1, 2 // ................................................................................................*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v11, v26, 3 // ..................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v14, v23, v20 // ...................................................................................................*...................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v23, v21, 7 // ....................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v20, v19, v11 // .......................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v19, v22, 12 // ........................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v21, v22, 2 // ..........................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v5, v5, x13 // ............................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v11, v2, 12 // ..............................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi a4, a4, -1 +cbd3_rvv_vlen128_loop: + // Instructions: 139 + // Expected cycles: 245 + // Expected IPC: 0.57 + + // ----------------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------- + vand.vi v28, v11, 7 // *.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x7, x10, 8*2 // *.................................................................................................................................................................................................................................................... + addi x23, x10, 8*6 // .*................................................................................................................................................................................................................................................... + addi x18, x10, 8*14 // .*................................................................................................................................................................................................................................................... + vsrl.vi v3, v2, 2 // ..*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x19, x10, 8*8 // ..*.................................................................................................................................................................................................................................................. + vadd.vv v10, v23, v5 // ...*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x10, 8*12 // ...*................................................................................................................................................................................................................................................. + vsrl.vi v26, v20, 12 // ....*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x28, x10, 8*4 // ....*................................................................................................................................................................................................................................................ + vsrl.vi v23, v20, 2 // ......*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x26, x10, 8*10 // ......*.............................................................................................................................................................................................................................................. + vand.vi v24, v26, 7 // ........*............................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsll.vi v5, v20, 10 // ..........*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v20, v20, 7 // ............*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v23, v23, x13 // ..............*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsll.vi v11, v2, 10 // ................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v2, v2, 7 // ..................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v24, v23 // ...................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v23, v3, x13 // ....................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v21, v21, x13 // ......................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v19, v19, 7 // ........................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v23, v28, v23 // .........................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v5, v5, x13 // ..........................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v11, v11, x13 // ............................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v21 // .............................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v5 // ..............................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v2, v2, v11 // ................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsetivli x8, 8, e16, m1, tu, mu // .................................*................................................................................................................................................................................................................... + vadd.vi v28, v19, -3 // .....................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v12, v17, -3 // ......................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v15, v16, -3 // .......................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v5, v10, -3 // ........................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v28, v30 // .........................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v18, v14, -3 // ..........................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x30, x11, 12 // ..........................................*.......................................................................................................................................................................................................... + vrgather.vv v6, v12, v30 // .............................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v24, v2, -3 // ..............................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v11, v6, v0 // .................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v15, v31 // ...................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v22, (x28) // .......................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x28, x11, 12*3 // .......................................................*............................................................................................................................................................................................. + vrgather.vv v19, v28, v31 // .........................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v20, v20, -3 // ..........................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v23, v23, -3 // ............................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v15, v30 // .............................................................*....................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v12, v31 // .................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v18, v30 // .....................................................................*............................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v18, v31 // .........................................................................*........................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v20, v31 // .............................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v10, v15, v0 // .................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v23, v31 // ...................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v20, v30 // .......................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v24, v30 // ...........................................................................................*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v24, v31 // ...............................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v26, v23, v30 // ...................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v19, v21, v0 // .......................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x17, x11, 12*2 // .......................................................................................................*............................................................................................................................................. + vse16.v v25, (x18) // .........................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v2, v6, v0 // ...........................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v26, v18, v0 // .............................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v20, (x12) // ...............................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v17, v7, v0 // .................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v23, (x23) // ...................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v20, (x7) // .....................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v19, (x10) // .......................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x10, x10, 8*16 // .......................................................................................................................*............................................................................................................................. + vrgather.vv v23, v5, v30 // .........................................................................................................................*........................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v5, v31 // .............................................................................................................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v11, v0 // .................................................................................................................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v20, v13, v0 // ...................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v23, (x19) // .....................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v20, (x26) // .......................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsetivli x7, 16, e8, m1, tu, mu // .........................................................................................................................................*........................................................................................................... + vle8.v v23, (x28) // .............................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vle8.v v20, (x11) // ...............................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + addi x11, x11, 12*4 // ...............................................................................................................................................*..................................................................................................... + vle8.v v2, (x30) // .................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vle8.v v21, (x17) // ...................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v5, v20, v29 // .....................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v19, v23, v29 // .........................................................................................................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v23, v2, v29 // .............................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v20, v21, v29 // .................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vsetivli x1, 4, e32, m1, tu, mu // .....................................................................................................................................................................*............................................................................... + vsrl.vi v21, v23, 1 // .........................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v13, v23, x5 // ...........................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v11, v21, x5 // .............................................................................................................................................................................*....................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v2, v20, 1 // ...............................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v17, v23, 2 // .................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v13, v13, v11 // ..................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v23, v2, x5 // ...................................................................................................................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v11, v17, x5 // .....................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v21, v20, x5 // .......................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v26, v20, 2 // .........................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v2, v13, v11 // ..........................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v11, v19, x5 // ...........................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v13, v21, v23 // ............................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v26, v26, x5 // .............................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v23, v19, 1 // ...............................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vx v21, v2, x6 // ..................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v20, v2, 3 // ...................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v13, v13, v26 // ....................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v17, v5, 1 // .....................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v26, v5, x5 // .......................................................................................................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v2, v17, x5 // .........................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v20, v21, v20 // ..........................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v23, v23, x5 // ...........................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vx v21, v13, x6 // .............................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v13, v13, 3 // ..............................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v2, v26, v2 // ...............................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v5, v5, 2 // ................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v26, v19, 2 // ..................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v21, v13 // ...................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v27, v5, x5 // ....................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v19, v20, 12 // ......................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v26, v26, x5 // ........................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v2, v27 // .........................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v21, v20, 2 // ..........................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v2, v11, v23 // ...........................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v17, v8, 12 // ............................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v4, v20, 7 // ..............................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v23, v17, 7 // ................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vx v9, v16, x6 // .................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v25, v16, 3 // ..................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v15, v2, v26 // ...................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=32 + vsll.vi v28, v20, 10 // ....................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=32 + vsll.vi v11, v8, 10 // ......................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v26, v28, x13 // ........................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v9, v25 // .........................................................................................................................................................................................................................................*........... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v11, v11, x13 // ..........................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vx v13, v15, x6 // ...........................................................................................................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v20, v8, 7 // ............................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v4, v26 // .............................................................................................................................................................................................................................................*....... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v5, v15, 3 // ..............................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v15, v8, 2 // ................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v14, v20, v11 // .................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v11, v2, 12 // ..................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v20, v13, v5 // ...................................................................................................................................................................................................................................................*. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v5, v15, x13 // ....................................................................................................................................................................................................................................................* // @slothy:lmul=1 // @slothy:sew=32 + + // ----------------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------- + // vsrl.vi v18, v2, 2 // ..*.................................................................................................................................................................................................................................................. + // vadd.vv v10, v23, v5 // ...*................................................................................................................................................................................................................................................. + // vand.vx v15, v21, x13 // ......................*.............................................................................................................................................................................................................................. + // vand.vi v4, v19, 7 // ........................*............................................................................................................................................................................................................................ + // vand.vx v8, v18, x13 // ....................*................................................................................................................................................................................................................................ + // vand.vi v23, v11, 7 // *.................................................................................................................................................................................................................................................... + // vadd.vv v25, v4, v15 // .............................*....................................................................................................................................................................................................................... + // vand.vi v7, v20, 7 // ............*........................................................................................................................................................................................................................................ + // addi x28, x10, 8*4 // ....*................................................................................................................................................................................................................................................ + // addi x7, x10, 8*2 // *.................................................................................................................................................................................................................................................... + // vadd.vv v22, v23, v8 // .........................*........................................................................................................................................................................................................................... + // vsll.vi v5, v2, 10 // ................*.................................................................................................................................................................................................................................... + // vsrl.vi v21, v20, 12 // ....*................................................................................................................................................................................................................................................ + // vsrl.vi v4, v20, 2 // ......*.............................................................................................................................................................................................................................................. + // vand.vx v23, v5, x13 // ............................*........................................................................................................................................................................................................................ + // addi x23, x10, 8*6 // .*................................................................................................................................................................................................................................................... + // vand.vi v19, v21, 7 // ........*............................................................................................................................................................................................................................................ + // vand.vi v2, v2, 7 // ..................*.................................................................................................................................................................................................................................. + // vsll.vi v20, v20, 10 // ..........*.......................................................................................................................................................................................................................................... + // vand.vx v21, v4, x13 // ..............*...................................................................................................................................................................................................................................... + // vadd.vv v23, v2, v23 // ................................*.................................................................................................................................................................................................................... + // vand.vx v18, v20, x13 // ..........................*.......................................................................................................................................................................................................................... + // addi x26, x10, 8*10 // ......*.............................................................................................................................................................................................................................................. + // addi x19, x10, 8*8 // ..*.................................................................................................................................................................................................................................................. + // vadd.vv v11, v19, v21 // ...................*................................................................................................................................................................................................................................. + // addi x18, x10, 8*14 // .*................................................................................................................................................................................................................................................... + // vadd.vv v20, v7, v18 // ..............................*...................................................................................................................................................................................................................... + // vsetivli x12, 8, e16, m1, tu, mu // .................................*................................................................................................................................................................................................................... + // vadd.vi v7, v23, -3 // ..............................................*...................................................................................................................................................................................................... + // vadd.vi v3, v22, -3 // ............................................................*........................................................................................................................................................................................ + // vadd.vi v26, v25, -3 // .....................................*............................................................................................................................................................................................................... + // vadd.vi v2, v10, -3 // ........................................*............................................................................................................................................................................................................ + // vrgather.vv v22, v7, v30 // ...........................................................................................*......................................................................................................................................................... + // vadd.vi v4, v17, -3 // ......................................*.............................................................................................................................................................................................................. + // vadd.vi v23, v14, -3 // ..........................................*.......................................................................................................................................................................................................... + // vrgather.vv v24, v3, v30 // ...................................................................................................*................................................................................................................................................. + // vadd.vi v17, v20, -3 // ..........................................................*.......................................................................................................................................................................................... + // vrgather.vv v19, v23, v31 // .........................................................................*........................................................................................................................................................................... + // vadd.vi v15, v11, -3 // .......................................*............................................................................................................................................................................................................. + // vrgather.vv v5, v2, v31 // .............................................................................................................................*....................................................................................................................... + // vmerge.vvm v13, v24, v22, v0 // .............................................................................................................*....................................................................................................................................... + // vrgather.vv v21, v2, v30 // .........................................................................................................................*........................................................................................................................... + // vmerge.vvm v20, v5, v19, v0 // ...................................................................................................................................*................................................................................................................. + // addi x12, x10, 8*12 // ...*................................................................................................................................................................................................................................................. + // vrgather.vv v19, v3, v31 // ...................................................................................*................................................................................................................................................................. + // vrgather.vv v2, v7, v31 // ...............................................................................................*..................................................................................................................................................... + // vse16.v v13, (x10) // .......................................................................................................................*............................................................................................................................. + // addi x10, x10, 8*16 // .......................................................................................................................*............................................................................................................................. + // vse16.v v20, (x26) // .......................................................................................................................................*............................................................................................................. + // vrgather.vv v20, v23, v30 // .....................................................................*............................................................................................................................................................................... + // vmerge.vvm v23, v21, v20, v0 // .................................................................................................................................*................................................................................................................... + // vmerge.vvm v20, v19, v2, v0 // .................................................................................................................*................................................................................................................................... + // vse16.v v23, (x19) // .....................................................................................................................................*............................................................................................................... + // vse16.v v20, (x7) // .....................................................................................................................*............................................................................................................................... + // vrgather.vv v23, v26, v30 // .........................................*........................................................................................................................................................................................................... + // vrgather.vv v20, v26, v31 // .........................................................*........................................................................................................................................................................................... + // vrgather.vv v19, v4, v30 // .............................................*....................................................................................................................................................................................................... + // vrgather.vv v2, v4, v31 // .................................................................*................................................................................................................................................................................... + // vrgather.vv v21, v15, v30 // .............................................................*....................................................................................................................................................................................... + // vrgather.vv v5, v15, v31 // ...................................................*................................................................................................................................................................................................. + // vrgather.vv v11, v17, v31 // .............................................................................*....................................................................................................................................................................... + // vrgather.vv v13, v17, v30 // .......................................................................................*............................................................................................................................................................. + // vmerge.vvm v23, v23, v19, v0 // .................................................*................................................................................................................................................................................................... + // vmerge.vvm v20, v20, v2, v0 // .......................................................................................................*............................................................................................................................................. + // vse16.v v23, (x28) // .......................................................*............................................................................................................................................................................................. + // vse16.v v20, (x23) // ...................................................................................................................*................................................................................................................................. + // vmerge.vvm v23, v5, v11, v0 // .................................................................................*................................................................................................................................................................... + // vmerge.vvm v20, v21, v13, v0 // ...........................................................................................................*......................................................................................................................................... + // vse16.v v23, (x18) // .........................................................................................................*........................................................................................................................................... + // vse16.v v20, (x12) // ...............................................................................................................*..................................................................................................................................... + // vsetivli x7, 16, e8, m1, tu, mu // .........................................................................................................................................*........................................................................................................... + // addi x7, x11, 12 // ..........................................*.......................................................................................................................................................................................................... + // addi x26, x11, 12*2 // .......................................................................................................*............................................................................................................................................. + // addi x28, x11, 12*3 // .......................................................*............................................................................................................................................................................................. + // vle8.v v23, (x11) // ...............................................................................................................................................*..................................................................................................... + // addi x11, x11, 12*4 // ...............................................................................................................................................*..................................................................................................... + // vle8.v v20, (x7) // .................................................................................................................................................*................................................................................................... + // vle8.v v19, (x26) // ...................................................................................................................................................*................................................................................................. + // vle8.v v2, (x28) // .............................................................................................................................................*....................................................................................................... + // vrgather.vv v21, v23, v29 // .....................................................................................................................................................*............................................................................................... + // vrgather.vv v23, v20, v29 // .............................................................................................................................................................*....................................................................................... + // vrgather.vv v20, v19, v29 // .................................................................................................................................................................*................................................................................... + // vrgather.vv v19, v2, v29 // .........................................................................................................................................................*........................................................................................... + // vsetivli x26, 4, e32, m1, tu, mu // .....................................................................................................................................................................*............................................................................... + // vsrl.vi v7, v20, 1 // ...............................................................................................................................................................................*..................................................................... + // vand.vx v5, v20, x5 // .......................................................................................................................................................................................*............................................................. + // vand.vx v2, v7, x5 // ...................................................................................................................................................................................*................................................................. + // vand.vx v17, v21, x5 // .......................................................................................................................................................................................................*............................................. + // vsrl.vi v24, v20, 2 // .........................................................................................................................................................................................*........................................................... + // vadd.vv v20, v5, v2 // ............................................................................................................................................................................................*........................................................ + // vsrl.vi v13, v21, 1 // .....................................................................................................................................................................................................*............................................... + // vsrl.vi v27, v23, 1 // .........................................................................................................................................................................*........................................................................... + // vand.vx v5, v23, x5 // ...........................................................................................................................................................................*......................................................................... + // vand.vx v16, v27, x5 // .............................................................................................................................................................................*....................................................................... + // vand.vx v25, v24, x5 // .............................................................................................................................................................................................*....................................................... + // vsrl.vi v2, v23, 2 // .................................................................................................................................................................................*................................................................... + // vadd.vv v5, v5, v16 // ..................................................................................................................................................................................*.................................................................. + // vand.vx v13, v13, x5 // .........................................................................................................................................................................................................*........................................... + // vand.vx v23, v2, x5 // .....................................................................................................................................................................................*............................................................... + // vadd.vv v11, v20, v25 // ....................................................................................................................................................................................................*................................................ + // vsrl.vi v6, v21, 2 // ................................................................................................................................................................................................................*.................................... + // vadd.vv v12, v17, v13 // ...............................................................................................................................................................................................................*..................................... + // vand.vx v13, v19, x5 // ...........................................................................................................................................................................................*......................................................... + // vadd.vv v23, v5, v23 // ..........................................................................................................................................................................................*.......................................................... + // vand.vx v25, v6, x5 // ....................................................................................................................................................................................................................*................................ + // vadd.vx v9, v11, x6 // .............................................................................................................................................................................................................*....................................... + // vsrl.vi v4, v11, 3 // ..............................................................................................................................................................................................................*...................................... + // vadd.vv v10, v12, v25 // .........................................................................................................................................................................................................................*........................... + // vsrl.vi v6, v19, 1 // ...............................................................................................................................................................................................*..................................................... + // vadd.vx v22, v23, x6 // ..................................................................................................................................................................................................*.................................................. + // vsrl.vi v27, v19, 2 // ..................................................................................................................................................................................................................*.................................. + // vsub.vv v1, v9, v4 // ...................................................................................................................................................................................................................*................................. + // vsrl.vi v19, v23, 3 // ...................................................................................................................................................................................................*................................................. + // vand.vx v20, v6, x5 // ...........................................................................................................................................................................................................*......................................... + // vadd.vx v17, v10, x6 // .................................................................................................................................................................................................................................*................... + // vand.vx v11, v27, x5 // ........................................................................................................................................................................................................................*............................ + // vsub.vv v22, v22, v19 // ..........................................................................................................................................................................................................*.......................................... + // vsrl.vi v15, v10, 3 // ..................................................................................................................................................................................................................................*.................. + // vadd.vv v21, v13, v20 // ...........................................................................................................................................................................................................................*......................... + // vsll.vi v20, v22, 10 // ....................................................................................................................................................................................................................................*................ + // vsub.vv v2, v17, v15 // .........................................................................................................................................................................................................................................*........... + // vand.vi v23, v22, 7 // ..............................................................................................................................................................................................................................*...................... + // vadd.vv v26, v21, v11 // ...................................................................................................................................................................................................................................*................. + // vand.vx v4, v20, x13 // ........................................................................................................................................................................................................................................*............ + // vsll.vi v9, v1, 10 // ......................................................................................................................................................................................................................................*.............. + // vsrl.vi v21, v1, 12 // ............................................................................................................................................................................................................................*........................ + // vand.vx v20, v9, x13 // ..........................................................................................................................................................................................................................................*.......... + // vadd.vv v17, v23, v4 // .............................................................................................................................................................................................................................................*....... + // vand.vi v23, v1, 7 // ............................................................................................................................................................................................................................................*........ + // vadd.vx v19, v26, x6 // ...........................................................................................................................................................................................................................................*......... + // vsrl.vi v5, v1, 2 // ................................................................................................................................................................................................................................................*.... + // vsrl.vi v11, v26, 3 // ..............................................................................................................................................................................................................................................*...... + // vadd.vv v14, v23, v20 // .................................................................................................................................................................................................................................................*... + // vand.vi v23, v21, 7 // ................................................................................................................................................................................................................................*.................... + // vsub.vv v20, v19, v11 // ...................................................................................................................................................................................................................................................*. + // vsrl.vi v19, v22, 12 // ......................................................................................................................................................................................................................*.............................. + // vsrl.vi v21, v22, 2 // ..........................................................................................................................................................................................................................*.......................... + // vand.vx v5, v5, x13 // ....................................................................................................................................................................................................................................................* + // vsrl.vi v11, v2, 12 // ..................................................................................................................................................................................................................................................*.. + + addi a4, a4, -1 + bnez a4, cbd3_rvv_vlen128_loop + vsrl.vi v18, v2, 2 // ................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v10, v23, v5 // .................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v15, v21, x13 // ..................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v4, v19, 7 // ....................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v8, v18, x13 // ......................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v23, v11, 7 // ........................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v4, v15 // .........................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v7, v20, 7 // ..........................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x28, x10, 8*4 // ..........................................................................................................................*............................................................................................................................... + addi x7, x10, 8*2 // ...........................................................................................................................*.............................................................................................................................. + vadd.vv v22, v23, v8 // ............................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsll.vi v5, v2, 10 // .............................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v21, v20, 12 // ...............................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsrl.vi v4, v20, 2 // .................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v23, v5, x13 // ...................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x23, x10, 8*6 // ...................................................................................................................................*...................................................................................................................... + vand.vi v19, v21, 7 // .....................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vand.vi v2, v2, 7 // .......................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsll.vi v20, v20, 10 // .........................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v21, v4, x13 // ...........................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v23, v2, v23 // ............................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vand.vx v18, v20, x13 // .............................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x26, x10, 8*10 // .............................................................................................................................................*............................................................................................................ + addi x19, x10, 8*8 // ..............................................................................................................................................*........................................................................................................... + vadd.vv v11, v19, v21 // ...............................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x18, x10, 8*14 // ...............................................................................................................................................*.......................................................................................................... + vadd.vv v20, v7, v18 // .................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsetivli x12, 8, e16, m1, tu, mu // ..................................................................................................................................................*....................................................................................................... + vadd.vi v7, v23, -3 // ......................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v3, v22, -3 // .......................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v26, v25, -3 // ........................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v2, v10, -3 // .........................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v7, v30 // ..........................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v4, v17, -3 // ...........................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v23, v14, -3 // ..............................................................................................................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v3, v30 // ...............................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v17, v20, -3 // ................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v19, v23, v31 // ...................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vi v15, v11, -3 // ....................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v2, v31 // .......................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v24, v22, v0 // ...........................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v2, v30 // .............................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v5, v19, v0 // .................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x12, x10, 8*12 // .................................................................................................................................................................................*........................................................................ + vrgather.vv v19, v3, v31 // ...................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v7, v31 // .......................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v13, (x10) // ...........................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x10, x10, 8*16 // ...........................................................................................................................................................................................*.............................................................. + vse16.v v20, (x26) // .............................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v23, v30 // ...............................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v21, v20, v0 // ...................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v19, v2, v0 // .....................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v23, (x19) // .......................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v20, (x7) // .........................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v23, v26, v30 // ...........................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v26, v31 // ...............................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v19, v4, v30 // ...................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v4, v31 // .......................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v15, v30 // ...........................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v15, v31 // ...............................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v17, v31 // ...................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v17, v30 // .......................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v19, v0 // ...........................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v20, v2, v0 // .............................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v23, (x28) // ...............................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v20, (x23) // .................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v5, v11, v0 // ...................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v21, v13, v0 // .....................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v23, (x18) // .......................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v20, (x12) // .........................................................................................................................................................................................................................................................* // @slothy:lmul=1 // @slothy:sew=16 + restore_regs +ret \ No newline at end of file diff --git a/examples/opt/riscv/kyber_sampling/kyber_rej_uniform_rvv_vlen128_opt_c908.s b/examples/opt/riscv/kyber_sampling/kyber_rej_uniform_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..ad7bc2e56 --- /dev/null +++ b/examples/opt/riscv/kyber_sampling/kyber_rej_uniform_rvv_vlen128_opt_c908.s @@ -0,0 +1,1169 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzeta1, vzeta2, vzeta3, vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 v16, v24, v18, v26, v20, v28, v22, v30, v17, v25, v19, v27, v21, v29, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v3, v2, v3, v2, v3, v2, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v16, v20, v18, v22, v24, v28, v26, v30, v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v17, v21, v19, v23, v25, v29, v27, v31, v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, vidx8_0122, vidx_low, vidx_high, x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +// void rej_uniform_rvv_vlen128(int16_t *r, const uint8_t *buf, const int16_t *table, uint32_t *ctr_p, uint32_t *pos_p) +.globl rej_uniform_rvv_vlen128_opt_c908 +.align 2 +rej_uniform_rvv_vlen128_opt_c908: + save_regs + li t0, 0xfff + li t1, 3329 + vsetivli a7, 8, e16, m1, tu, mu + addi t2, a2, _REJ_UNIFORM_IDX8*2 + addi t3, a2, _REJ_UNIFORM_MASK_01*2 + vle16.v v30, (t2) + vle16.v v31, (t3) + vmseq.vi v0, v31, 1 + addi a5, a0, 0 + addi a6, a1, 0 +// do...while(ctr <= KYBER_N - 8*4 && pos <= REJ_UNIFORM_VECTOR_BUFLEN - 12*4) +rej_uniform_rvv_vlen128_loop_x4: + start: + // Instructions: 46 + // Expected cycles: 75 + // Expected IPC: 0.61 + // + // Cycle bound: 75.0 + // IPC bound: 0.61 + // + // Wall time: 1.73s + // User time: 1.73s + // + // ---------------------------- cycle (expected) ----------------------------> + // 0 25 50 + // |------------------------|------------------------| + vsetivli x9, 16, e8, m1, tu, mu // *.......................................................................... + addi x21, x11, 12 // *.......................................................................... + addi x9, x11, 24 // .*......................................................................... + addi x23, x11, 36 // ..*........................................................................ + vle8.v v4, (x11) // ....*...................................................................... // @slothy:lmul=1 // @slothy:sew=8 + addi x11, x11, 12*4 // ....*...................................................................... + vle8.v v27, (x21) // ......*.................................................................... // @slothy:lmul=1 // @slothy:sew=8 + vle8.v v22, (x9) // ........*.................................................................. // @slothy:lmul=1 // @slothy:sew=8 + vle8.v v15, (x23) // ..........*................................................................ // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v9, v4, v30 // ............*.............................................................. // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v28, v27, v30 // ................*.......................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v20, v22, v30 // ....................*...................................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v4, v15, v30 // ........................*.................................................. // @slothy:lmul=1 // @slothy:sew=8 + vsetivli x9, 8, e16, m1, tu, mu // ........................*.................................................. + vsrl.vi v28, v28, 4, v0.t // ................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vsrl.vi v22, v9, 4, v0.t // ..................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vand.vx v17, v28, x5 // ....................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vand.vx v13, v22, x5 // ......................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vmsltu.vx v1, v17, x6 // ........................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vmsltu.vx v11, v13, x6 // ..........................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vsrl.vi v22, v20, 4, v0.t // ............................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vsrl.vi v15, v4, 4, v0.t // ..............................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vcpop.m x9, v11 // ...............................................*........................... // @slothy:lmul=1 // @slothy:sew=16 + vand.vx v27, v22, x5 // ................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vand.vx v16, v15, x5 // ..................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vcpop.m x21, v1 // ...................................................*....................... // @slothy:lmul=1 // @slothy:sew=16 + vmsltu.vx v28, v27, x6 // ....................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vcompress.vm v9, v17, v1 // ......................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + add x9, x9, x9 // .......................................................*................... + add x9, x10, x9 // ........................................................*.................. + vmsltu.vx v4, v16, x6 // .........................................................*................. // @slothy:lmul=1 // @slothy:sew=16 + vcpop.m x23, v28 // ..........................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + add x25, x21, x21 // ...........................................................*............... + vse16.v v9, (x9) // ...........................................................*............... // @slothy:lmul=1 // @slothy:sew=16 + add x25, x9, x25 // ............................................................*.............. + vcompress.vm v9, v13, v11 // .............................................................*............. // @slothy:lmul=1 // @slothy:sew=16 + vcpop.m x20, v4 // ..............................................................*............ // @slothy:lmul=1 // @slothy:sew=16 + vcompress.vm v15, v16, v4 // ................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vse16.v v9, (x10) // ...................................................................*....... // @slothy:lmul=1 // @slothy:sew=16 + vcompress.vm v22, v27, v28 // .....................................................................*..... // @slothy:lmul=1 // @slothy:sew=16 + add x9, x23, x23 // ......................................................................*.... + add x9, x25, x9 // .......................................................................*... + vse16.v v15, (x9) // ........................................................................*.. // @slothy:lmul=1 // @slothy:sew=16 + add x7, x20, x20 // ........................................................................*.. + vse16.v v22, (x25) // ..........................................................................* // @slothy:lmul=1 // @slothy:sew=16 + add x10, x9, x7 // ..........................................................................* + + // ---------------------------- cycle (expected) ----------------------------> + // 0 25 50 + // |------------------------|------------------------|------------------------ + // addi x7, x11, 12 // *.......................................................................... + // addi x28, x11, 24 // .*......................................................................... + // addi x29, x11, 36 // ..*........................................................................ + // vsetivli x17, 16, e8, m1, tu, mu // *.......................................................................... + // vle8.v v12, (x11) // ....*...................................................................... + // vle8.v v13, (x7) // ......*.................................................................... + // vle8.v v14, (x28) // ........*.................................................................. + // vle8.v v15, (x29) // ..........*................................................................ + // addi x11, x11, 12*4 // ....*...................................................................... + // vrgather.vv v16, v12, v30 // ............*.............................................................. + // vrgather.vv v17, v13, v30 // ................*.......................................................... + // vrgather.vv v18, v14, v30 // ....................*...................................................... + // vrgather.vv v19, v15, v30 // ........................*.................................................. + // vsetivli x17, 8, e16, m1, tu, mu // ........................*.................................................. + // vsrl.vi v16, v16, 4, v0.t // ..................................*........................................ + // vsrl.vi v17, v17, 4, v0.t // ................................*.......................................... + // vsrl.vi v18, v18, 4, v0.t // ............................................*.............................. + // vsrl.vi v19, v19, 4, v0.t // ..............................................*............................ + // vand.vx v16, v16, x5 // ......................................*.................................... + // vand.vx v17, v17, x5 // ....................................*...................................... + // vand.vx v18, v18, x5 // ................................................*.......................... + // vand.vx v19, v19, x5 // ..................................................*........................ + // vmsltu.vx v12, v16, x6 // ..........................................*................................ + // vmsltu.vx v13, v17, x6 // ........................................*.................................. + // vmsltu.vx v14, v18, x6 // ....................................................*...................... + // vmsltu.vx v15, v19, x6 // .........................................................*................. + // vcpop.m x7, v12 // ...............................................*........................... + // vcpop.m x28, v13 // ...................................................*....................... + // vcpop.m x29, v14 // ..........................................................*................ + // vcpop.m x30, v15 // ..............................................................*............ + // vcompress.vm v8, v16, v12 // .............................................................*............. + // vcompress.vm v9, v17, v13 // ......................................................*.................... + // vcompress.vm v10, v18, v14 // .....................................................................*..... + // vcompress.vm v11, v19, v15 // ................................................................*.......... + // vse16.v v8, (x10) // ...................................................................*....... + // add x7, x7, x7 // .......................................................*................... + // add x28, x28, x28 // ...........................................................*............... + // add x10, x10, x7 // ........................................................*.................. + // add x29, x29, x29 // ......................................................................*.... + // vse16.v v9, (x10) // ...........................................................*............... + // add x10, x10, x28 // ............................................................*.............. + // vse16.v v10, (x10) // ..........................................................................* + // add x10, x10, x29 // .......................................................................*... + // add x30, x30, x30 // ........................................................................*.. + // vse16.v v11, (x10) // ........................................................................*.. + // add x10, x10, x30 // ..........................................................................* + + end: + + sub t2, a0, a5 + li t4, 256-8*4 + srli t2, t2, 1 + sub t3, a1, a6 + li t5, 504-12*4 + bgtu t2, t4, rej_uniform_rvv_vlen128_loopend_x4 + bleu t3, t5, rej_uniform_rvv_vlen128_loop_x4 +rej_uniform_rvv_vlen128_loopend_x4: +// while(ctr <= KYBER_N - 8*2 && pos <= REJ_UNIFORM_VECTOR_BUFLEN - 12*2) +rej_uniform_rvv_vlen128_loop_x2: + sub t2, a0, a5 + li t4, 256-8*2 + srli t2, t2, 1 + sub t3, a1, a6 + li t5, 504-12*2 + bgtu t2, t4, rej_uniform_rvv_vlen128_loopend_x2 + bgtu t3, t5, rej_uniform_rvv_vlen128_loopend_x2 + start_x2: + // Instructions: 24 + // Expected cycles: 44 + // Expected IPC: 0.55 + // + // Cycle bound: 44.0 + // IPC bound: 0.55 + // + // Wall time: 0.28s + // User time: 0.28s + // + // ------------ cycle (expected) -------------> + // 0 25 + // |------------------------|------------------ + vsetivli x29, 16, e8, m1, tu, mu // *........................................... + addi x7, x11, 12 // *........................................... + vle8.v v24, (x7) // ....*....................................... // @slothy:lmul=1 // @slothy:sew=8 + vle8.v v6, (x11) // ......*..................................... // @slothy:lmul=1 // @slothy:sew=8 + addi x11, x11, 12*2 // ......*..................................... + vrgather.vv v28, v24, v30 // ........*................................... // @slothy:lmul=1 // @slothy:sew=8 + vrgather.vv v21, v6, v30 // ............*............................... // @slothy:lmul=1 // @slothy:sew=8 + vsetivli x7, 8, e16, m1, tu, mu // ............*............................... + vsrl.vi v23, v21, 4, v0.t // ....................*....................... // @slothy:lmul=1 // @slothy:sew=16 + vsrl.vi v24, v28, 4, v0.t // ......................*..................... // @slothy:lmul=1 // @slothy:sew=16 + vand.vx v28, v23, x5 // ........................*................... // @slothy:lmul=1 // @slothy:sew=16 + vand.vx v13, v24, x5 // ..........................*................. // @slothy:lmul=1 // @slothy:sew=16 + vmsltu.vx v11, v28, x6 // ............................*............... // @slothy:lmul=1 // @slothy:sew=16 + vmsltu.vx v26, v13, x6 // ..............................*............. // @slothy:lmul=1 // @slothy:sew=16 + vcpop.m x9, v11 // ................................*........... // @slothy:lmul=1 // @slothy:sew=16 + vcompress.vm v2, v28, v11 // .................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vcpop.m x23, v26 // ....................................*....... // @slothy:lmul=1 // @slothy:sew=16 + vcompress.vm v14, v13, v26 // ......................................*..... // @slothy:lmul=1 // @slothy:sew=16 + add x9, x9, x9 // ........................................*... + vse16.v v2, (x10) // .........................................*.. // @slothy:lmul=1 // @slothy:sew=16 + add x10, x10, x9 // .........................................*.. + add x7, x23, x23 // ..........................................*. + vse16.v v14, (x10) // ...........................................* // @slothy:lmul=1 // @slothy:sew=16 + add x10, x10, x7 // ...........................................* + + // ------------ cycle (expected) -------------> + // 0 25 + // |------------------------|------------------ + // addi x7, x11, 12 // *........................................... + // vsetivli x17, 16, e8, m1, tu, mu // *........................................... + // vle8.v v12, (x11) // ......*..................................... + // vle8.v v13, (x7) // ....*....................................... + // addi x11, x11, 12*2 // ......*..................................... + // vrgather.vv v16, v12, v30 // ............*............................... + // vrgather.vv v17, v13, v30 // ........*................................... + // vsetivli x17, 8, e16, m1, tu, mu // ............*............................... + // vsrl.vi v16, v16, 4, v0.t // ....................*....................... + // vsrl.vi v17, v17, 4, v0.t // ......................*..................... + // vand.vx v16, v16, x5 // ........................*................... + // vand.vx v17, v17, x5 // ..........................*................. + // vmsltu.vx v12, v16, x6 // ............................*............... + // vmsltu.vx v13, v17, x6 // ..............................*............. + // vcpop.m x7, v12 // ................................*........... + // vcpop.m x28, v13 // ....................................*....... + // vcompress.vm v8, v16, v12 // .................................*.......... + // vcompress.vm v9, v17, v13 // ......................................*..... + // vse16.v v8, (x10) // .........................................*.. + // add x7, x7, x7 // ........................................*... + // add x28, x28, x28 // ..........................................*. + // add x10, x10, x7 // .........................................*.. + // vse16.v v9, (x10) // ...........................................* + // add x10, x10, x28 // ...........................................* + + end_x2: + + j rej_uniform_rvv_vlen128_loop_x2 +rej_uniform_rvv_vlen128_loopend_x2: +// while(ctr <= KYBER_N - 8 && pos <= REJ_UNIFORM_VECTOR_BUFLEN - 12) +rej_uniform_rvv_vlen128_loop_x1: + sub t2, a0, a5 + li t4, 256-8 + srli t2, t2, 1 + sub t3, a1, a6 + li t5, 504-12 + bgtu t2, t4, rej_uniform_rvv_vlen128_loopend_x1 + bgtu t3, t5, rej_uniform_rvv_vlen128_loopend_x1 + start_x1: + // Instructions: 13 + // Expected cycles: 34 + // Expected IPC: 0.38 + // + // Cycle bound: 34.0 + // IPC bound: 0.38 + // + // Wall time: 0.11s + // User time: 0.11s + // + // ------- cycle (expected) --------> + // 0 25 + // |------------------------|-------- + vsetivli x9, 16, e8, m1, tu, mu // *................................. + vle8.v v4, (x11) // ....*............................. // @slothy:lmul=1 // @slothy:sew=8 + addi x11, x11, 12 // ....*............................. + vrgather.vv v15, v4, v30 // .......*.......................... // @slothy:lmul=1 // @slothy:sew=8 + vsetivli x9, 8, e16, m1, tu, mu // ...........*...................... + vsrl.vi v15, v15, 4, v0.t // ...............*.................. // @slothy:lmul=1 // @slothy:sew=16 + vand.vx v4, v15, x5 // ...................*.............. // @slothy:lmul=1 // @slothy:sew=16 + vmsltu.vx v22, v4, x6 // .......................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vcpop.m x9, v22 // ...........................*...... // @slothy:lmul=1 // @slothy:sew=16 + vcompress.vm v15, v4, v22 // .............................*.... // @slothy:lmul=1 // @slothy:sew=16 + add x9, x9, x9 // ...............................*.. + vse16.v v15, (x10) // .................................* // @slothy:lmul=1 // @slothy:sew=16 + add x10, x10, x9 // .................................* + + // ------- cycle (expected) --------> + // 0 25 + // |------------------------|-------- + // vsetivli x17, 16, e8, m1, tu, mu // *................................. + // vle8.v v12, (x11) // ....*............................. + // addi x11, x11, 12 // ....*............................. + // vrgather.vv v16, v12, v30 // .......*.......................... + // vsetivli x17, 8, e16, m1, tu, mu // ...........*...................... + // vsrl.vi v16, v16, 4, v0.t // ...............*.................. + // vand.vx v16, v16, x5 // ...................*.............. + // vmsltu.vx v12, v16, x6 // .......................*.......... + // vcpop.m x7, v12 // ...........................*...... + // vcompress.vm v8, v16, v12 // .............................*.... + // vse16.v v8, (x10) // .................................* + // add x7, x7, x7 // ...............................*.. + // add x10, x10, x7 // .................................* + + end_x1: + + j rej_uniform_rvv_vlen128_loop_x1 +rej_uniform_rvv_vlen128_loopend_x1: + sw t2, (a3) + sw t3, (a4) + restore_regs +ret \ No newline at end of file diff --git a/examples/opt/riscv/ntt_dilithium/dilithium_normal2ntt_order_rvv_vlen128_opt_c908.s b/examples/opt/riscv/ntt_dilithium/dilithium_normal2ntt_order_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..db2795cdb --- /dev/null +++ b/examples/opt/riscv/ntt_dilithium/dilithium_normal2ntt_order_rvv_vlen128_opt_c908.s @@ -0,0 +1,867 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 va0, va1, va2, va3, va4, va5, va6, va7, xb, xbqinv, xq, vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level0 + ct_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + # level4 + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + # level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + # level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + # level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8,v9,v10,v11,v12,v13,v14,v15 + # shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, v1 + # level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + # level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v18,v17,v19,v20,v22,v21,v23, t1, t2, t1, t2, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 v24,v26,v25,v27,v28,v30,v29,v31, t5, t6, t5, t6, a5, a6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 v16,v17,v18,v19,v20,v21,v22,v23, t2, t3, t0, v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +# q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +# inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +# inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl normal2ntt_order_rvv_vlen128 +.align 2 +normal2ntt_order_rvv_vlen128_opt_c908: + vsetivli a7, 4, e32, m1, tu, mu + # for vgather + li t0, _MASK_0101*4 + li t1, _MASK_2323*4 + add t0, t0, a1 + add t1, t1, a1 + vle32.v v1, (t0) + vle32.v v2, (t1) + li t2, _MASK_1032*4 + li t3, _MASK_1100*4 + li t4, _MASK_1010*4 + add t2, t2, a1 + add t3, t3, a1 + add t4, t4, a1 + vle32.v v3, (t2) + vle32.v v4, (t3) + vle32.v v5, (t4) + li a2, 4 +normal2ntt_order_rvv_vlen128_loop: + // Instructions: 72 + // Expected cycles: 174 + // Expected IPC: 0.41 + // + // ----------------------------------------------------------------------------- cycle (expected) ------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|----------------------- + addi x5, x10, 4*8*4 // *............................................................................................................................................................................. + vl8re32.v v16, (x10) // *............................................................................................................................................................................. + vl8re32.v v24, (x5) // ..*........................................................................................................................................................................... + vmv.v.v v0, v4 // ...*.......................................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v8, v17, v1 // ....*......................................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v9, v16, v2 // ........*..................................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v10, v19, v1 // ............*................................................................................................................................................................. // @slothy:lmul=1 + vrgather.vv v11, v18, v2 // ................*............................................................................................................................................................. // @slothy:lmul=1 + vrgather.vv v12, v21, v1 // ....................*......................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v13, v20, v2 // ........................*..................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v14, v23, v1 // ............................*................................................................................................................................................. // @slothy:lmul=1 + vrgather.vv v15, v22, v2 // ................................*............................................................................................................................................. // @slothy:lmul=1 + vmerge.vvm v16, v8, v16, v0 // ....................................*......................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v17, v17, v9, v0 // .....................................*........................................................................................................................................ // @slothy:lmul=1 + vmerge.vvm v18, v10, v18, v0 // ......................................*....................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v19, v19, v11, v0 // .......................................*...................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v20, v12, v20, v0 // ........................................*..................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v21, v21, v13, v0 // .........................................*.................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v22, v14, v22, v0 // ..........................................*................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v23, v23, v15, v0 // ...........................................*.................................................................................................................................. // @slothy:lmul=1 + vrgather.vv v8, v25, v1 // ............................................*................................................................................................................................. // @slothy:lmul=1 + vrgather.vv v9, v24, v2 // ................................................*............................................................................................................................. // @slothy:lmul=1 + vrgather.vv v10, v27, v1 // ....................................................*......................................................................................................................... // @slothy:lmul=1 + vrgather.vv v11, v26, v2 // ........................................................*..................................................................................................................... // @slothy:lmul=1 + vrgather.vv v12, v29, v1 // ............................................................*................................................................................................................. // @slothy:lmul=1 + vrgather.vv v13, v28, v2 // ................................................................*............................................................................................................. // @slothy:lmul=1 + vrgather.vv v14, v31, v1 // ....................................................................*......................................................................................................... // @slothy:lmul=1 + vrgather.vv v15, v30, v2 // ........................................................................*..................................................................................................... // @slothy:lmul=1 + vmerge.vvm v24, v8, v24, v0 // ............................................................................*................................................................................................. // @slothy:lmul=1 + vmerge.vvm v25, v25, v9, v0 // .............................................................................*................................................................................................ // @slothy:lmul=1 + vmerge.vvm v26, v10, v26, v0 // ..............................................................................*............................................................................................... // @slothy:lmul=1 + vmerge.vvm v27, v27, v11, v0 // ...............................................................................*.............................................................................................. // @slothy:lmul=1 + vmerge.vvm v28, v12, v28, v0 // ................................................................................*............................................................................................. // @slothy:lmul=1 + vmerge.vvm v29, v29, v13, v0 // .................................................................................*............................................................................................ // @slothy:lmul=1 + vmerge.vvm v30, v14, v30, v0 // ..................................................................................*........................................................................................... // @slothy:lmul=1 + vmerge.vvm v31, v31, v15, v0 // ...................................................................................*.......................................................................................... // @slothy:lmul=1 + vmv.v.v v0, v5 // ....................................................................................*......................................................................................... // @slothy:lmul=1 + vrgather.vv v8, v17, v3 // .....................................................................................*........................................................................................ // @slothy:lmul=1 + vrgather.vv v9, v16, v3 // .........................................................................................*.................................................................................... // @slothy:lmul=1 + vrgather.vv v10, v19, v3 // .............................................................................................*................................................................................ // @slothy:lmul=1 + vrgather.vv v11, v18, v3 // .................................................................................................*............................................................................ // @slothy:lmul=1 + vrgather.vv v12, v21, v3 // .....................................................................................................*........................................................................ // @slothy:lmul=1 + vrgather.vv v13, v20, v3 // .........................................................................................................*.................................................................... // @slothy:lmul=1 + vrgather.vv v14, v23, v3 // .............................................................................................................*................................................................ // @slothy:lmul=1 + vrgather.vv v15, v22, v3 // .................................................................................................................*............................................................ // @slothy:lmul=1 + vmerge.vvm v16, v8, v16, v0 // .....................................................................................................................*........................................................ // @slothy:lmul=1 + vmerge.vvm v17, v17, v9, v0 // ......................................................................................................................*....................................................... // @slothy:lmul=1 + vmerge.vvm v18, v10, v18, v0 // .......................................................................................................................*...................................................... // @slothy:lmul=1 + vmerge.vvm v19, v19, v11, v0 // ........................................................................................................................*..................................................... // @slothy:lmul=1 + vmerge.vvm v20, v12, v20, v0 // .........................................................................................................................*.................................................... // @slothy:lmul=1 + vmerge.vvm v21, v21, v13, v0 // ..........................................................................................................................*................................................... // @slothy:lmul=1 + vmerge.vvm v22, v14, v22, v0 // ...........................................................................................................................*.................................................. // @slothy:lmul=1 + vmerge.vvm v23, v23, v15, v0 // ............................................................................................................................*................................................. // @slothy:lmul=1 + vs8r.v v16, (x10) // ................................................................................................................................*............................................. + vrgather.vv v8, v25, v3 // ..................................................................................................................................*........................................... // @slothy:lmul=1 + vrgather.vv v9, v24, v3 // ......................................................................................................................................*....................................... // @slothy:lmul=1 + vrgather.vv v10, v27, v3 // ..........................................................................................................................................*................................... // @slothy:lmul=1 + vrgather.vv v11, v26, v3 // ..............................................................................................................................................*............................... // @slothy:lmul=1 + vrgather.vv v12, v29, v3 // ..................................................................................................................................................*........................... // @slothy:lmul=1 + vrgather.vv v13, v28, v3 // ......................................................................................................................................................*....................... // @slothy:lmul=1 + vrgather.vv v14, v31, v3 // ..........................................................................................................................................................*................... // @slothy:lmul=1 + vrgather.vv v15, v30, v3 // ..............................................................................................................................................................*............... // @slothy:lmul=1 + vmerge.vvm v24, v8, v24, v0 // ..................................................................................................................................................................*........... // @slothy:lmul=1 + vmerge.vvm v25, v25, v9, v0 // ...................................................................................................................................................................*.......... // @slothy:lmul=1 + vmerge.vvm v26, v10, v26, v0 // ....................................................................................................................................................................*......... // @slothy:lmul=1 + vmerge.vvm v27, v27, v11, v0 // .....................................................................................................................................................................*........ // @slothy:lmul=1 + vmerge.vvm v28, v12, v28, v0 // ......................................................................................................................................................................*....... // @slothy:lmul=1 + vmerge.vvm v29, v29, v13, v0 // .......................................................................................................................................................................*...... // @slothy:lmul=1 + vmerge.vvm v30, v14, v30, v0 // ........................................................................................................................................................................*..... // @slothy:lmul=1 + vmerge.vvm v31, v31, v15, v0 // .........................................................................................................................................................................*.... // @slothy:lmul=1 + vs8r.v v24, (x5) // .............................................................................................................................................................................* + addi x12, x12, -1 // .............................................................................................................................................................................* + + // ----------------------------------------------------------------------------- cycle (expected) ------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|----------------------- + // addi x5, x10, 4*8*4 // *............................................................................................................................................................................. + // vl8re32.v v16, (x10) // *............................................................................................................................................................................. + // vl8re32.v v24, (x5) // ..*........................................................................................................................................................................... + // vmv.v.v v0, v4 // ...*.......................................................................................................................................................................... + // vrgather.vv v8, v17, v1 // ....*......................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ........*..................................................................................................................................................................... + // vrgather.vv v10, v19, v1 // ............*................................................................................................................................................................. + // vrgather.vv v11, v18, v2 // ................*............................................................................................................................................................. + // vrgather.vv v12, v21, v1 // ....................*......................................................................................................................................................... + // vrgather.vv v13, v20, v2 // ........................*..................................................................................................................................................... + // vrgather.vv v14, v23, v1 // ............................*................................................................................................................................................. + // vrgather.vv v15, v22, v2 // ................................*............................................................................................................................................. + // vmerge.vvm v16, v8, v16, v0 // ....................................*......................................................................................................................................... + // vmerge.vvm v17, v17, v9, v0 // .....................................*........................................................................................................................................ + // vmerge.vvm v18, v10, v18, v0 // ......................................*....................................................................................................................................... + // vmerge.vvm v19, v19, v11, v0 // .......................................*...................................................................................................................................... + // vmerge.vvm v20, v12, v20, v0 // ........................................*..................................................................................................................................... + // vmerge.vvm v21, v21, v13, v0 // .........................................*.................................................................................................................................... + // vmerge.vvm v22, v14, v22, v0 // ..........................................*................................................................................................................................... + // vmerge.vvm v23, v23, v15, v0 // ...........................................*.................................................................................................................................. + // vrgather.vv v8, v25, v1 // ............................................*................................................................................................................................. + // vrgather.vv v9, v24, v2 // ................................................*............................................................................................................................. + // vrgather.vv v10, v27, v1 // ....................................................*......................................................................................................................... + // vrgather.vv v11, v26, v2 // ........................................................*..................................................................................................................... + // vrgather.vv v12, v29, v1 // ............................................................*................................................................................................................. + // vrgather.vv v13, v28, v2 // ................................................................*............................................................................................................. + // vrgather.vv v14, v31, v1 // ....................................................................*......................................................................................................... + // vrgather.vv v15, v30, v2 // ........................................................................*..................................................................................................... + // vmerge.vvm v24, v8, v24, v0 // ............................................................................*................................................................................................. + // vmerge.vvm v25, v25, v9, v0 // .............................................................................*................................................................................................ + // vmerge.vvm v26, v10, v26, v0 // ..............................................................................*............................................................................................... + // vmerge.vvm v27, v27, v11, v0 // ...............................................................................*.............................................................................................. + // vmerge.vvm v28, v12, v28, v0 // ................................................................................*............................................................................................. + // vmerge.vvm v29, v29, v13, v0 // .................................................................................*............................................................................................ + // vmerge.vvm v30, v14, v30, v0 // ..................................................................................*........................................................................................... + // vmerge.vvm v31, v31, v15, v0 // ...................................................................................*.......................................................................................... + // vmv.v.v v0, v5 // ....................................................................................*......................................................................................... + // vrgather.vv v8, v17, v3 // .....................................................................................*........................................................................................ + // vrgather.vv v9, v16, v3 // .........................................................................................*.................................................................................... + // vrgather.vv v10, v19, v3 // .............................................................................................*................................................................................ + // vrgather.vv v11, v18, v3 // .................................................................................................*............................................................................ + // vrgather.vv v12, v21, v3 // .....................................................................................................*........................................................................ + // vrgather.vv v13, v20, v3 // .........................................................................................................*.................................................................... + // vrgather.vv v14, v23, v3 // .............................................................................................................*................................................................ + // vrgather.vv v15, v22, v3 // .................................................................................................................*............................................................ + // vmerge.vvm v16, v8, v16, v0 // .....................................................................................................................*........................................................ + // vmerge.vvm v17, v17, v9, v0 // ......................................................................................................................*....................................................... + // vmerge.vvm v18, v10, v18, v0 // .......................................................................................................................*...................................................... + // vmerge.vvm v19, v19, v11, v0 // ........................................................................................................................*..................................................... + // vmerge.vvm v20, v12, v20, v0 // .........................................................................................................................*.................................................... + // vmerge.vvm v21, v21, v13, v0 // ..........................................................................................................................*................................................... + // vmerge.vvm v22, v14, v22, v0 // ...........................................................................................................................*.................................................. + // vmerge.vvm v23, v23, v15, v0 // ............................................................................................................................*................................................. + // vs8r.v v16, (x10) // ................................................................................................................................*............................................. + // vrgather.vv v8, v25, v3 // ..................................................................................................................................*........................................... + // vrgather.vv v9, v24, v3 // ......................................................................................................................................*....................................... + // vrgather.vv v10, v27, v3 // ..........................................................................................................................................*................................... + // vrgather.vv v11, v26, v3 // ..............................................................................................................................................*............................... + // vrgather.vv v12, v29, v3 // ..................................................................................................................................................*........................... + // vrgather.vv v13, v28, v3 // ......................................................................................................................................................*....................... + // vrgather.vv v14, v31, v3 // ..........................................................................................................................................................*................... + // vrgather.vv v15, v30, v3 // ..............................................................................................................................................................*............... + // vmerge.vvm v24, v8, v24, v0 // ..................................................................................................................................................................*........... + // vmerge.vvm v25, v25, v9, v0 // ...................................................................................................................................................................*.......... + // vmerge.vvm v26, v10, v26, v0 // ....................................................................................................................................................................*......... + // vmerge.vvm v27, v27, v11, v0 // .....................................................................................................................................................................*........ + // vmerge.vvm v28, v12, v28, v0 // ......................................................................................................................................................................*....... + // vmerge.vvm v29, v29, v13, v0 // .......................................................................................................................................................................*...... + // vmerge.vvm v30, v14, v30, v0 // ........................................................................................................................................................................*..... + // vmerge.vvm v31, v31, v15, v0 // .........................................................................................................................................................................*.... + // vs8r.v v24, (x5) // .............................................................................................................................................................................* + // addi x12, x12, -1 // .............................................................................................................................................................................* + + addi a2, a2, 256 + bnez a2, normal2ntt_order_rvv_vlen128_loop +ret +end: \ No newline at end of file diff --git a/examples/opt/riscv/ntt_dilithium/dilithium_ntt2normal_order_rvv_vlen128_opt_c908.s b/examples/opt/riscv/ntt_dilithium/dilithium_ntt2normal_order_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..dd8dd1815 --- /dev/null +++ b/examples/opt/riscv/ntt_dilithium/dilithium_ntt2normal_order_rvv_vlen128_opt_c908.s @@ -0,0 +1,938 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 va0, va1, va2, va3, va4, va5, va6, va7, xb, xbqinv, xq, vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level0 + ct_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + # level4 + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + # level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + # level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + # level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8,v9,v10,v11,v12,v13,v14,v15 + # shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, v1 + # level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + # level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v18,v17,v19,v20,v22,v21,v23, t1, t2, t1, t2, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 v24,v26,v25,v27,v28,v30,v29,v31, t5, t6, t5, t6, a5, a6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 v16,v17,v18,v19,v20,v21,v22,v23, t2, t3, t0, v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +# q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +# inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +# inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl ntt2normal_order_rvv_vlen128 +.align 2 +ntt2normal_order_rvv_vlen128_opt_c908: + vsetivli a7, 4, e32, m1, tu, mu + li t1, _MASK_0101*4 + li t2, _MASK_2323*4 + add t1, t1, a1 + add t2, t2, a1 + vle32.v v1, (t1) + vle32.v v2, (t2) + li t3, _MASK_1032*4 + li t4, _MASK_1100*4 + li t5, _MASK_1010*4 + add t3, t3, a1 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v3, (t3) + vle32.v v4, (t4) + vle32.v v5, (t5) + li a2, 4 + addi x5, x10, 4*8*4 // *....................................................................................................................................................................... + vl8re32.v v16, (x10) // *....................................................................................................................................................................... + vmv.v.v v0, v5 // .*...................................................................................................................................................................... // @slothy:lmul=1 + vl8re32.v v24, (x5) // ..*..................................................................................................................................................................... + vrgather.vv v11, v22, v3 // ....*................................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v14, v17, v3 // ........*............................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v12, v16, v3 // ............*........................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v10, v23, v3 // ................*....................................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v23, v23, v11, v0 // ....................*................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v7, v18, v3 // .....................*.................................................................................................................................................. // @slothy:lmul=1 + vrgather.vv v15, v19, v3 // .........................*.............................................................................................................................................. // @slothy:lmul=1 + vmerge.vvm v22, v10, v22, v0 // .............................*.......................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v18, v15, v18, v0 // ..............................*......................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v19, v19, v7, v0 // ...............................*........................................................................................................................................ // @slothy:lmul=1 + vmerge.vvm v17, v17, v12, v0 // ................................*....................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v16, v14, v16, v0 // .................................*...................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v11, v25, v3 // ..................................*..................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v6, v24, v3 // ......................................*................................................................................................................................. // @slothy:lmul=1 + vmerge.vvm v24, v11, v24, v0 // ..........................................*............................................................................................................................. // @slothy:lmul=1 + vmerge.vvm v25, v25, v6, v0 // ...........................................*............................................................................................................................ // @slothy:lmul=1 + vrgather.vv v11, v21, v3 // ............................................*........................................................................................................................... // @slothy:lmul=1 + vrgather.vv v14, v20, v3 // ................................................*....................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v21, v21, v14, v0 // ....................................................*................................................................................................................... // @slothy:lmul=1 + vrgather.vv v14, v28, v3 // .....................................................*.................................................................................................................. // @slothy:lmul=1 + vrgather.vv v12, v26, v3 // .........................................................*.............................................................................................................. // @slothy:lmul=1 + vrgather.vv v13, v29, v3 // .............................................................*.......................................................................................................... // @slothy:lmul=1 + vrgather.vv v10, v27, v3 // .................................................................*...................................................................................................... // @slothy:lmul=1 + vrgather.vv v6, v30, v3 // .....................................................................*.................................................................................................. // @slothy:lmul=1 + vrgather.vv v8, v31, v3 // .........................................................................*.............................................................................................. // @slothy:lmul=1 + vmerge.vvm v28, v13, v28, v0 // .............................................................................*.......................................................................................... // @slothy:lmul=1 + vmerge.vvm v27, v27, v12, v0 // ..............................................................................*......................................................................................... // @slothy:lmul=1 + vmerge.vvm v26, v10, v26, v0 // ...............................................................................*........................................................................................ // @slothy:lmul=1 + vmerge.vvm v20, v11, v20, v0 // ................................................................................*....................................................................................... // @slothy:lmul=1 + vmerge.vvm v29, v29, v14, v0 // .................................................................................*...................................................................................... // @slothy:lmul=1 + vmerge.vvm v31, v31, v6, v0 // ..................................................................................*..................................................................................... // @slothy:lmul=1 + vmerge.vvm v30, v8, v30, v0 // ...................................................................................*.................................................................................... // @slothy:lmul=1 + addi a2, a2, 256 +ntt2normal_order_rvv_vlen128_loop: + // Instructions: 72 + // Expected cycles: 170 + // Expected IPC: 0.42 + + // --------------------------------------------------------------------------- cycle (expected) ----------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------- + addi x12, x12, -1 // *......................................................................................................................................................................... + vrgather.vv v7, v30, v2 // *......................................................................................................................................................................... // @slothy:lmul=1 + vmv.v.v v0, v4 // .*........................................................................................................................................................................ // @slothy:lmul=1 + vrgather.vv v12, v22, v2 // ....*..................................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v11, v16, v2 // ........*................................................................................................................................................................. // @slothy:lmul=1 + vrgather.vv v10, v23, v1 // ............*............................................................................................................................................................. // @slothy:lmul=1 + vrgather.vv v13, v17, v1 // ................*......................................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v17, v17, v11, v0 // ....................*..................................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v22, v10, v22, v0 // .....................*.................................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v23, v23, v12, v0 // ......................*................................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v11, v31, v1 // .......................*.................................................................................................................................................. // @slothy:lmul=1 + vrgather.vv v6, v27, v1 // ...........................*.............................................................................................................................................. // @slothy:lmul=1 + vrgather.vv v15, v26, v2 // ...............................*.......................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v26, v6, v26, v0 // ...................................*...................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v30, v11, v30, v0 // ....................................*..................................................................................................................................... // @slothy:lmul=1 + vmerge.vvm v16, v13, v16, v0 // .....................................*.................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v11, v20, v2 // ......................................*................................................................................................................................... // @slothy:lmul=1 + vrgather.vv v12, v18, v2 // ..........................................*............................................................................................................................... // @slothy:lmul=1 + vrgather.vv v8, v28, v2 // ..............................................*........................................................................................................................... // @slothy:lmul=1 + vrgather.vv v13, v29, v1 // ..................................................*....................................................................................................................... // @slothy:lmul=1 + vrgather.vv v14, v24, v2 // ......................................................*................................................................................................................... // @slothy:lmul=1 + vrgather.vv v10, v21, v1 // ..........................................................*............................................................................................................... // @slothy:lmul=1 + vrgather.vv v9, v19, v1 // ..............................................................*........................................................................................................... // @slothy:lmul=1 + vrgather.vv v6, v25, v1 // ..................................................................*....................................................................................................... // @slothy:lmul=1 + vmerge.vvm v25, v25, v14, v0 // ......................................................................*................................................................................................... // @slothy:lmul=1 + vmerge.vvm v20, v10, v20, v0 // .......................................................................*.................................................................................................. // @slothy:lmul=1 + vmerge.vvm v28, v13, v28, v0 // ........................................................................*................................................................................................. // @slothy:lmul=1 + vmerge.vvm v29, v29, v8, v0 // .........................................................................*................................................................................................ // @slothy:lmul=1 + vmerge.vvm v19, v19, v12, v0 // ..........................................................................*............................................................................................... // @slothy:lmul=1 + vmerge.vvm v21, v21, v11, v0 // ...........................................................................*.............................................................................................. // @slothy:lmul=1 + vmerge.vvm v18, v9, v18, v0 // ............................................................................*............................................................................................. // @slothy:lmul=1 + vmerge.vvm v24, v6, v24, v0 // .............................................................................*............................................................................................ // @slothy:lmul=1 + vs8r.v v16, (x10) // ................................................................................*......................................................................................... + vl8re32.v v16, (x10) // ..................................................................................*....................................................................................... + vmerge.vvm v27, v27, v15, v0 // ....................................................................................*..................................................................................... // @slothy:lmul=1 + vrgather.vv v10, v23, v3 // .....................................................................................*.................................................................................... // @slothy:lmul=1 + vmerge.vvm v31, v31, v7, v0 // .........................................................................................*................................................................................ // @slothy:lmul=1 + vrgather.vv v12, v18, v3 // ..........................................................................................*............................................................................... // @slothy:lmul=1 + vmv.v.v v0, v5 // ...........................................................................................*.............................................................................. // @slothy:lmul=1 + vrgather.vv v14, v19, v3 // ..............................................................................................*........................................................................... // @slothy:lmul=1 + vs8r.v v24, (x5) // ..................................................................................................*....................................................................... + addi x5, x10, 4*8*4 // ..................................................................................................*....................................................................... + vrgather.vv v11, v22, v3 // ....................................................................................................*..................................................................... // @slothy:lmul=1 + vmerge.vvm v23, v23, v11, v0 // ........................................................................................................*................................................................. // @slothy:lmul=1 + vmerge.vvm v22, v10, v22, v0 // .........................................................................................................*................................................................ // @slothy:lmul=1 + vmerge.vvm v18, v14, v18, v0 // ..........................................................................................................*............................................................... // @slothy:lmul=1 + vmerge.vvm v19, v19, v12, v0 // ...........................................................................................................*.............................................................. // @slothy:lmul=1 + vrgather.vv v11, v21, v3 // ............................................................................................................*............................................................. // @slothy:lmul=1 + vrgather.vv v31, v20, v3 // ................................................................................................................*......................................................... // @slothy:lmul=1 + vmerge.vvm v21, v21, v31, v0 // ....................................................................................................................*..................................................... // @slothy:lmul=1 + vl8re32.v v24, (x5) // .....................................................................................................................*.................................................... + vrgather.vv v15, v17, v3 // .......................................................................................................................*.................................................. // @slothy:lmul=1 + vrgather.vv v12, v30, v3 // ...........................................................................................................................*.............................................. // @slothy:lmul=1 + vrgather.vv v6, v31, v3 // ...............................................................................................................................*.......................................... // @slothy:lmul=1 + vmerge.vvm v31, v31, v12, v0 // ...................................................................................................................................*...................................... // @slothy:lmul=1 + vmerge.vvm v30, v6, v30, v0 // ....................................................................................................................................*..................................... // @slothy:lmul=1 + vmerge.vvm v20, v11, v20, v0 // .....................................................................................................................................*.................................... // @slothy:lmul=1 + vrgather.vv v11, v29, v3 // ......................................................................................................................................*................................... // @slothy:lmul=1 + vrgather.vv v6, v16, v3 // ..........................................................................................................................................*............................... // @slothy:lmul=1 + vmerge.vvm v16, v15, v16, v0 // ..............................................................................................................................................*........................... // @slothy:lmul=1 + vrgather.vv v14, v27, v3 // ...............................................................................................................................................*.......................... // @slothy:lmul=1 + vrgather.vv v12, v26, v3 // ...................................................................................................................................................*...................... // @slothy:lmul=1 + vrgather.vv v10, v24, v3 // .......................................................................................................................................................*.................. // @slothy:lmul=1 + vrgather.vv v8, v25, v3 // ...........................................................................................................................................................*.............. // @slothy:lmul=1 + vrgather.vv v15, v28, v3 // ...............................................................................................................................................................*.......... // @slothy:lmul=1 + vmerge.vvm v27, v27, v12, v0 // ...................................................................................................................................................................*...... // @slothy:lmul=1 + vmerge.vvm v26, v14, v26, v0 // ....................................................................................................................................................................*..... // @slothy:lmul=1 + vmerge.vvm v17, v17, v6, v0 // .....................................................................................................................................................................*.... // @slothy:lmul=1 + vmerge.vvm v25, v25, v10, v0 // ......................................................................................................................................................................*... // @slothy:lmul=1 + vmerge.vvm v24, v8, v24, v0 // .......................................................................................................................................................................*.. // @slothy:lmul=1 + vmerge.vvm v28, v11, v28, v0 // ........................................................................................................................................................................*. // @slothy:lmul=1 + vmerge.vvm v29, v29, v15, v0 // .........................................................................................................................................................................* // @slothy:lmul=1 + + // --------------------------------------------------------------------------- cycle (expected) ----------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------- + // vrgather.vv v11, v18, v2 // ..........................................*............................................................................................................................... + // vmv.v.v v0, v4 // .*........................................................................................................................................................................ + // vrgather.vv v6, v19, v1 // ..............................................................*........................................................................................................... + // vmerge.vvm v18, v6, v18, v0 // ............................................................................*............................................................................................. + // vmerge.vvm v19, v19, v11, v0 // ..........................................................................*............................................................................................... + // vrgather.vv v11, v22, v2 // ....*..................................................................................................................................................................... + // vrgather.vv v6, v23, v1 // ............*............................................................................................................................................................. + // vmerge.vvm v22, v6, v22, v0 // .....................*.................................................................................................................................................... + // vrgather.vv v12, v21, v1 // ..........................................................*............................................................................................................... + // vrgather.vv v7, v20, v2 // ......................................*................................................................................................................................... + // vrgather.vv v9, v24, v2 // ......................................................*................................................................................................................... + // addi x12, x12, -1 // *......................................................................................................................................................................... + // vrgather.vv v6, v30, v2 // *......................................................................................................................................................................... + // vrgather.vv v14, v16, v2 // ........*................................................................................................................................................................. + // vmerge.vvm v21, v21, v7, v0 // ...........................................................................*.............................................................................................. + // vmerge.vvm v23, v23, v11, v0 // ......................*................................................................................................................................................... + // vmerge.vvm v20, v12, v20, v0 // .......................................................................*.................................................................................................. + // vrgather.vv v7, v17, v1 // ................*......................................................................................................................................................... + // vmerge.vvm v17, v17, v14, v0 // ....................*..................................................................................................................................................... + // vmerge.vvm v16, v7, v16, v0 // .....................................*.................................................................................................................................... + // vrgather.vv v11, v31, v1 // .......................*.................................................................................................................................................. + // vmerge.vvm v31, v31, v6, v0 // .........................................................................................*................................................................................ + // vrgather.vv v8, v28, v2 // ..............................................*........................................................................................................................... + // vrgather.vv v6, v29, v1 // ..................................................*....................................................................................................................... + // vmerge.vvm v29, v29, v8, v0 // .........................................................................*................................................................................................ + // vmerge.vvm v28, v6, v28, v0 // ........................................................................*................................................................................................. + // vrgather.vv v10, v27, v1 // ...........................*.............................................................................................................................................. + // vrgather.vv v6, v26, v2 // ...............................*.......................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // ...................................*...................................................................................................................................... + // vmerge.vvm v27, v27, v6, v0 // ....................................................................................*..................................................................................... + // vrgather.vv v6, v25, v1 // ..................................................................*....................................................................................................... + // vmerge.vvm v24, v6, v24, v0 // .............................................................................*............................................................................................ + // vmerge.vvm v25, v25, v9, v0 // ......................................................................*................................................................................................... + // vmerge.vvm v30, v11, v30, v0 // ....................................*..................................................................................................................................... + // vs8r.v v16, (x10) // ................................................................................*......................................................................................... + // vs8r.v v24, (x5) // ..................................................................................................*....................................................................... + // addi x5, x10, 4*8*4 // ..................................................................................................*....................................................................... + // vl8re32.v v16, (x10) // ..................................................................................*....................................................................................... + // vmv.v.v v0, v5 // ...........................................................................................*.............................................................................. + // vl8re32.v v24, (x5) // .....................................................................................................................*.................................................... + // vrgather.vv v11, v22, v3 // ....................................................................................................*..................................................................... + // vrgather.vv v14, v17, v3 // .......................................................................................................................*.................................................. + // vrgather.vv v12, v16, v3 // ..........................................................................................................................................*............................... + // vrgather.vv v10, v23, v3 // .....................................................................................*.................................................................................... + // vmerge.vvm v23, v23, v11, v0 // ........................................................................................................*................................................................. + // vrgather.vv v7, v18, v3 // ..........................................................................................*............................................................................... + // vrgather.vv v15, v19, v3 // ..............................................................................................*........................................................................... + // vmerge.vvm v22, v10, v22, v0 // .........................................................................................................*................................................................ + // vmerge.vvm v18, v15, v18, v0 // ..........................................................................................................*............................................................... + // vmerge.vvm v19, v19, v7, v0 // ...........................................................................................................*.............................................................. + // vmerge.vvm v17, v17, v12, v0 // .....................................................................................................................................................................*.... + // vmerge.vvm v16, v14, v16, v0 // ..............................................................................................................................................*........................... + // vrgather.vv v11, v25, v3 // ...........................................................................................................................................................*.............. + // vrgather.vv v6, v24, v3 // .......................................................................................................................................................*.................. + // vmerge.vvm v24, v11, v24, v0 // .......................................................................................................................................................................*.. + // vmerge.vvm v25, v25, v6, v0 // ......................................................................................................................................................................*... + // vrgather.vv v11, v21, v3 // ............................................................................................................*............................................................. + // vrgather.vv v14, v20, v3 // ................................................................................................................*......................................................... + // vmerge.vvm v21, v21, v14, v0 // ....................................................................................................................*..................................................... + // vrgather.vv v14, v28, v3 // ...............................................................................................................................................................*.......... + // vrgather.vv v12, v26, v3 // ...................................................................................................................................................*...................... + // vrgather.vv v13, v29, v3 // ......................................................................................................................................*................................... + // vrgather.vv v10, v27, v3 // ...............................................................................................................................................*.......................... + // vrgather.vv v6, v30, v3 // ...........................................................................................................................*.............................................. + // vrgather.vv v8, v31, v3 // ...............................................................................................................................*.......................................... + // vmerge.vvm v28, v13, v28, v0 // ........................................................................................................................................................................*. + // vmerge.vvm v27, v27, v12, v0 // ...................................................................................................................................................................*...... + // vmerge.vvm v26, v10, v26, v0 // ....................................................................................................................................................................*..... + // vmerge.vvm v20, v11, v20, v0 // .....................................................................................................................................*.................................... + // vmerge.vvm v29, v29, v14, v0 // .........................................................................................................................................................................* + // vmerge.vvm v31, v31, v6, v0 // ...................................................................................................................................*...................................... + // vmerge.vvm v30, v8, v30, v0 // ....................................................................................................................................*..................................... + + addi a2, a2, 256 + bnez a2, ntt2normal_order_rvv_vlen128_loop + vrgather.vv v11, v18, v2 // ....................................................................................*................................................................................... // @slothy:lmul=1 + vmv.v.v v0, v4 // ......................................................................................*................................................................................. // @slothy:lmul=1 + vrgather.vv v6, v19, v1 // ........................................................................................*............................................................................... // @slothy:lmul=1 + vmerge.vvm v18, v6, v18, v0 // ............................................................................................*........................................................................... // @slothy:lmul=1 + vmerge.vvm v19, v19, v11, v0 // .............................................................................................*.......................................................................... // @slothy:lmul=1 + vrgather.vv v11, v22, v2 // ..............................................................................................*......................................................................... // @slothy:lmul=1 + vrgather.vv v6, v23, v1 // ..................................................................................................*..................................................................... // @slothy:lmul=1 + vmerge.vvm v22, v6, v22, v0 // ......................................................................................................*................................................................. // @slothy:lmul=1 + vrgather.vv v12, v21, v1 // .......................................................................................................*................................................................ // @slothy:lmul=1 + vrgather.vv v7, v20, v2 // ...........................................................................................................*............................................................ // @slothy:lmul=1 + vrgather.vv v9, v24, v2 // ...............................................................................................................*........................................................ // @slothy:lmul=1 + addi x12, x12, -1 // ...............................................................................................................*........................................................ + vrgather.vv v6, v30, v2 // ...................................................................................................................*.................................................... // @slothy:lmul=1 + vrgather.vv v14, v16, v2 // .......................................................................................................................*................................................ // @slothy:lmul=1 + vmerge.vvm v21, v21, v7, v0 // ...........................................................................................................................*............................................ // @slothy:lmul=1 + vmerge.vvm v23, v23, v11, v0 // ............................................................................................................................*........................................... // @slothy:lmul=1 + vmerge.vvm v20, v12, v20, v0 // .............................................................................................................................*.......................................... // @slothy:lmul=1 + vrgather.vv v7, v17, v1 // ..............................................................................................................................*......................................... // @slothy:lmul=1 + vmerge.vvm v17, v17, v14, v0 // ..................................................................................................................................*..................................... // @slothy:lmul=1 + vmerge.vvm v16, v7, v16, v0 // ...................................................................................................................................*.................................... // @slothy:lmul=1 + vrgather.vv v11, v31, v1 // ....................................................................................................................................*................................... // @slothy:lmul=1 + vmerge.vvm v31, v31, v6, v0 // ........................................................................................................................................*............................... // @slothy:lmul=1 + vrgather.vv v8, v28, v2 // .........................................................................................................................................*.............................. // @slothy:lmul=1 + vrgather.vv v6, v29, v1 // .............................................................................................................................................*.......................... // @slothy:lmul=1 + vmerge.vvm v29, v29, v8, v0 // .................................................................................................................................................*...................... // @slothy:lmul=1 + vmerge.vvm v28, v6, v28, v0 // ..................................................................................................................................................*..................... // @slothy:lmul=1 + vrgather.vv v10, v27, v1 // ...................................................................................................................................................*.................... // @slothy:lmul=1 + vrgather.vv v6, v26, v2 // .......................................................................................................................................................*................ // @slothy:lmul=1 + vmerge.vvm v26, v10, v26, v0 // ...........................................................................................................................................................*............ // @slothy:lmul=1 + vmerge.vvm v27, v27, v6, v0 // ............................................................................................................................................................*........... // @slothy:lmul=1 + vrgather.vv v6, v25, v1 // .............................................................................................................................................................*.......... // @slothy:lmul=1 + vmerge.vvm v24, v6, v24, v0 // .................................................................................................................................................................*...... // @slothy:lmul=1 + vmerge.vvm v25, v25, v9, v0 // ..................................................................................................................................................................*..... // @slothy:lmul=1 + vmerge.vvm v30, v11, v30, v0 // ...................................................................................................................................................................*.... // @slothy:lmul=1 + vs8r.v v16, (x10) // ....................................................................................................................................................................*... + vs8r.v v24, (x5) // .......................................................................................................................................................................* +ret \ No newline at end of file diff --git a/examples/opt/riscv/ntt_dilithium/dilithium_poly_reduce_rvv_vlen128_opt_c908.s b/examples/opt/riscv/ntt_dilithium/dilithium_poly_reduce_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..891b13411 --- /dev/null +++ b/examples/opt/riscv/ntt_dilithium/dilithium_poly_reduce_rvv_vlen128_opt_c908.s @@ -0,0 +1,759 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 va0, va1, va2, va3, va4, va5, va6, va7, xb, xbqinv, xq, vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level0 + ct_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + # level4 + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + # level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + # level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + # level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8,v9,v10,v11,v12,v13,v14,v15 + # shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, v1 + # level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + # level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v18,v17,v19,v20,v22,v21,v23, t1, t2, t1, t2, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 v24,v26,v25,v27,v28,v30,v29,v31, t5, t6, t5, t6, a5, a6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + # level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + # level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + # level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 v16,v17,v18,v19,v20,v21,v22,v23, t2, t3, t0, v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +# q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +# inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +# inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl poly_reduce_rvv_vlen128 +.align 2 +poly_reduce_rvv_vlen128_opt_c908: + li a7, 4*8 + li a3, 4 + vsetvli a7, a7, e32, m8, tu, mu + li a1, 4194304 + li a2, q + addi a4, a0, 0 + addi x21, x10, 4*4*8 // *............................. + vle32.v v8, (x21) // .*............................ // @slothy:lmul=8 + vle32.v v0, (x10) // ...*.......................... // @slothy:lmul=8 + addi x10, x10, 4*4*8*2 // ...*.......................... + vadd.vx v16, v0, x11 // ......*....................... // @slothy:lmul=8 + vadd.vx v24, v8, x11 // ........*..................... // @slothy:lmul=8 + vsra.vi v16, v16, 23 // ..........*................... // @slothy:lmul=8 + vsra.vi v24, v24, 23 // ............*................. // @slothy:lmul=8 + addi a3, a3, 256 +poly_reduce_rvv_vlen128_loop: + // Instructions: 16 + // Expected cycles: 27 + // Expected IPC: 0.59 + + // ----- cycle (expected) ------> + // 0 25 + // |------------------------|---- + vmul.vx v24, v24, x12 // *............................. // @slothy:lmul=8 + addi x13, x13, -1 // *............................. + addi x6, x14, 4*4*8 // .*............................ + vmul.vx v16, v16, x12 // ..*........................... // @slothy:lmul=8 + vsub.vv v0, v0, v16 // ......*....................... // @slothy:lmul=8 + addi x21, x10, 4*4*8 // ......*....................... + vse32.v v0, (x14) // ..........*................... // @slothy:lmul=8 + vsub.vv v24, v8, v24 // ............*................. // @slothy:lmul=8 + vle32.v v8, (x21) // ..............*............... // @slothy:lmul=8 + vle32.v v0, (x10) // ................*............. // @slothy:lmul=8 + addi x10, x10, 4*4*8*2 // ................*............. + vse32.v v24, (x6) // ..................*........... // @slothy:lmul=8 + vadd.vx v16, v0, x11 // ....................*......... // @slothy:lmul=8 + vadd.vx v24, v8, x11 // ......................*....... // @slothy:lmul=8 + vsra.vi v16, v16, 23 // ........................*..... // @slothy:lmul=8 + vsra.vi v24, v24, 23 // ..........................*... // @slothy:lmul=8 + + // ------ cycle (expected) ------> + // 0 25 + // |------------------------|----- + // vmul.vx v24, v24, x12 // *.............................. + // addi x6, x14, 4*4*8 // .*............................. + // addi x13, x13, -1 // *.............................. + // vmul.vx v16, v16, x12 // ..*............................ + // vsub.vv v24, v8, v24 // ............*.................. + // vsub.vv v0, v0, v16 // ......*........................ + // vse32.v v24, (x6) // ..................*............ + // vse32.v v0, (x14) // ..........*.................... + // addi x21, x10, 4*4*8 // ......*........................ + // vle32.v v8, (x21) // ..............*................ + // vle32.v v0, (x10) // ................*.............. + // addi x10, x10, 4*4*8*2 // ................*.............. + // vadd.vx v16, v0, x11 // ....................*.......... + // vadd.vx v24, v8, x11 // ......................*........ + // vsra.vi v16, v16, 23 // ........................*...... + // vsra.vi v24, v24, 23 // ..........................*.... + + addi a3, a3, 256 + bnez a3, poly_reduce_rvv_vlen128_loop + vmul.vx v24, v24, x12 // ................*............. // @slothy:lmul=8 + addi x6, x14, 4*4*8 // ................*............. + addi x13, x13, -1 // .................*............ + vmul.vx v16, v16, x12 // ..................*........... // @slothy:lmul=8 + vsub.vv v24, v8, v24 // ....................*......... // @slothy:lmul=8 + vsub.vv v0, v0, v16 // ......................*....... // @slothy:lmul=8 + vse32.v v24, (x6) // ........................*..... // @slothy:lmul=8 + vse32.v v0, (x14) // ..........................*... // @slothy:lmul=8 +ret \ No newline at end of file diff --git a/examples/opt/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128_opt_c908.s b/examples/opt/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..eff756785 --- /dev/null +++ b/examples/opt/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128_opt_c908.s @@ -0,0 +1,5516 @@ +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 va0, va1, va2, va3, va4, va5, va6, va7, xb, xbqinv, xq, vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 // step 1 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 // step 4 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq // step 3 + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 // step 5 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level0 + ct_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + // level4 + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + // level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + // level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + // level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8,v9,v10,v11,v12,v13,v14,v15 + // shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, v1 + // level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + // shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + // level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + // level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v18,v17,v19,v20,v22,v21,v23, t1, t2, t1, t2, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 v24,v26,v25,v27,v28,v30,v29,v31, t5, t6, t5, t6, a5, a6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + // level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 v16,v17,v18,v19,v20,v21,v22,v23, t2, t3, t0, v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +// q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +// inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +// inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl ntt_rvv_vlen128 +.align 2 +ntt_rvv_vlen128_opt_c908: + start: + // Instructions: 2406 + // Expected cycles: 1203 + // Expected IPC: 2.00 + // + // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500 525 550 575 600 625 650 675 700 725 750 775 800 825 850 875 900 925 950 975 1000 1025 1050 1075 1100 1125 1150 1175 1200 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|-- + vsetivli x16, 4, e32, m1, tu, mu // *.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x29, x10, (4*0+16)*4 // *.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x21, x10, (4*0)*4 // .*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x28, x29, 32*4 // .*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x23, x28, 32*4 // ..*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x12, x21, 32*4 // ..*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x5, x12, 32*4 // ...*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L0+1)*4(x11) // ...*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x16, x5, 32*4 // ....*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v21, (x23) // ....*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x9, x16, 32*4 // .....*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x7, (_ZETA_EXP_0TO3_L0+0)*4(x11) // .....*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v22, (x16) // ......*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x16, x23, 32*4 // ......*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x1, x16, 32*4 // .......*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v23, (x16) // .......*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x23, x9, 32*4 // ........*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x16, x23, 32*4 // ........*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v28, (x16) // .........*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x4, x1, 32*4 // .........*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x4, 32*4 // ..........*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x16, x16, 32*4 // ..........*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v29, (x13) // ...........*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v30, (x16) // ...........*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x16, x13, 32*4 // ............*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v31, (x16) // ............*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v24, (x9) // .............*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v16, (x21) // .............*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v24, x7 // ..............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v20, (x5) // ..............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x5, 8380417 // ...............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v25, (x1) // ...............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v27, (x4) // ................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v25, x7 // ................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v19, (x28) // .................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v26, (x23) // .................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v27, x7 // ..................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v17, (x29) // ..................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v26, x7 // ...................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v18, (x12) // ...................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x7 // ....................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x7 // ....................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x7 // .....................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x7 // .....................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v24, x6 // ......................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v25, x6 // ......................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v26, x6 // .......................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v27, x6 // .......................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x6 // ........................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x6 // ........................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x6 // .........................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x6 // .........................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..........................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ..........................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...........................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ...........................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ............................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ............................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // .............................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // .............................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // .................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // .................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v24, v16, v0 // ..................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v17, v2 // ..................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v18, v4 // ...................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v19, v6 // ...................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v20, v8 // ....................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v21, v10 // ....................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v22, v12 // .....................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v23, v14 // .....................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ......................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ......................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // .......................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // .......................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v8 // ........................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v10 // ........................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v12 // .........................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v23, v23, v14 // .........................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L1+0)*4(x11) // ..........................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x6, (_ZETA_EXP_0TO3_L1+1)*4(x11) // ..........................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x29, (_ZETA_EXP_0TO3_L1+2)*4(x11) // ...........................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L1+3)*4(x11) // ...........................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v20, x7 // ............................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v21, x7 // ............................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x7 // .............................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x7 // .............................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x29 // ..............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x29 // ..............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x29 // ...............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x29 // ...............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v20, x6 // ................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v21, x6 // ................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x6 // .................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x6 // .................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x28 // ..................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x28 // ..................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x28 // ...................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x28 // ...................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ....................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ....................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .....................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .....................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ......................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ......................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // .......................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // .......................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ........................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ........................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .........................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .........................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ..........................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ..........................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ...........................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ...........................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x25, (_ZETA_EXP_0TO3_L2+0)*4(x11) // ............................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vadd.vv v30, v18, v4 // ............................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x31, (_ZETA_EXP_0TO3_L2+1)*4(x11) // .............................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v20, v16, v0 // .............................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x13, (_ZETA_EXP_0TO3_L2+2)*4(x11) // ..............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vadd.vv v16, v16, v0 // ..............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x14, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ...............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v21, v17, v2 // ...............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x16, (_ZETA_EXP_0TO3_L2+4)*4(x11) // ................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vsub.vv v22, v18, v4 // ................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x20, (_ZETA_EXP_0TO3_L2+5)*4(x11) // .................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vsub.vv v23, v19, v6 // .................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // ..................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L2+7)*4(x11) // ..................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v0, v30, x25 // ...................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ...................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x13 // ....................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x31 // ....................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x23, (_ZETA_EXP_0TO3_L2+6)*4(x11) // .....................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vsub.vv v31, v27, v14 // .....................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v27, v27, v14 // ......................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x25 // ......................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v24, v8 // .......................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x23 // .......................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x20 // ........................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v25, v10 // ........................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // .........................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x16 // .........................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v30, x31 // ..........................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v26, v12 // ..........................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x7 // ...........................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x14 // ...........................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x13 // ............................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v26, v12 // ............................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // .............................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v30, x20 // .............................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v30, x16 // ..............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v18, x7 // ..............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v18, x23 // ...............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x14 // ...............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ..................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ..................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ...................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ...................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ....................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ....................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .....................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .....................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ......................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ......................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // .......................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // .......................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // ........................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // ........................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // .........................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // .........................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // ..........................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // ..........................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ...........................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ...........................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ............................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ............................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .............................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // .............................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ..............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ..............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // ...............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // ...............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L3+0)*4(x11) // ................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x6, (_ZETA_EXP_0TO3_L3+1)*4(x11) // ................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // .................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x28, (_ZETA_EXP_0TO3_L3+3)*4(x11) // .................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x31, (_ZETA_EXP_0TO3_L3+4)*4(x11) // ..................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x30, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ..................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x16, (_ZETA_EXP_0TO3_L3+6)*4(x11) // ...................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x15, (_ZETA_EXP_0TO3_L3+7)*4(x11) // ...................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v17, x7 // ....................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // ....................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v21, x31 // .....................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x16 // .....................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x6 // ......................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x28 // ......................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v21, x30 // .......................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x15 // .......................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ........................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ........................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .........................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .........................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..........................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..........................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...........................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...........................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ............................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ............................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .............................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // .............................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ..............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ..............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ...............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ...............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // ................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x6, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // ................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x29, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // .................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x28, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // .................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x31, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // ..................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x30, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // ..................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x16, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // ...................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x15, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // ...................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x12, x10, (4*0)*4 // ....................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x10, (4*0+16)*4 // ....................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vse32.v v16, (x12) // .....................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v17, (x13) // .....................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ......................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ......................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vse32.v v18, (x12) // .......................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v19, (x13) // .......................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ........................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x4, x13, 32*4 // ........................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v9, v27, x29 // .........................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v29, x31 // .........................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x21, x4, 32*4 // ..........................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v8, v27, x28 // ..........................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x9, x21, 32*4 // ...........................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x9, 32*4 // ...........................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v2, v29, x30 // ............................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v9, x5 // ............................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x1, x12, 32*4 // .............................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v1, v12, x5 // .............................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x23, x1, 32*4 // ..............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x20, x23, 32*4 // ..............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v15, v25, x7 // ...............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v25, x6 // ...............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v11, v8, v9 // ................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v2, v1 // ................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v15, x5 // .................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // .................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v9, v26, v11 // ..................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v26, v11 // ..................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v13, v4, v15 // ...................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // ...................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ....................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v1, (x13) // ....................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v24, v13 // .....................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v9, (x20) // .....................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v15, v14 // ......................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v22, (x1) // ......................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v9, v24, v13 // .......................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v20, (x12) // .......................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x20, 32*4 // ........................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v29, v28, v8 // ........................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v23, (x21) // .........................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v8 // .........................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v21, (x4) // ..........................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v17 // ..........................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v1, (x9) // ...........................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v17 // ...........................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v9, (x23) // ............................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x13, x13, 32*4 // ............................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v28, (x12) // .............................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v29, (x13) // .............................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ..............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ..............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v30, (x12) // ...............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v31, (x13) // ...............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L0+0)*4(x11) // ................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x6, (_ZETA_EXP_0TO3_L0+1)*4(x11) // ................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x12, x10, (4*1)*4 // .................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x10, (4*1+16)*4 // .................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v16, (x12) // ..................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v17, (x13) // ..................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v18, (x12) // ....................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v19, (x13) // ....................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x13, 32*4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v20, (x12) // ......................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v21, (x13) // ......................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .......................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .......................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v22, (x12) // ........................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v23, (x13) // ........................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .........................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .........................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v24, (x12) // ..........................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v25, (x13) // ..........................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...........................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...........................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v26, (x12) // ............................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v27, (x13) // ............................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .............................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .............................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v28, (x12) // ..............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v29, (x13) // ..............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v30, (x12) // ................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v31, (x13) // ................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v24, x7 // .................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v25, x7 // .................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v26, x7 // ..................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v27, x7 // ..................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x7 // ...................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x7 // ...................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x7 // ....................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x7 // ....................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v24, x6 // .....................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v25, x6 // .....................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v26, x6 // ......................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v27, x6 // ......................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x6 // .......................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x6 // .......................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x6 // ........................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x6 // ........................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .........................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .........................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..........................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ..........................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ...........................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ...........................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ............................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ............................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .............................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .............................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ...............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ...............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v24, v16, v0 // .................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v17, v2 // .................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v18, v4 // ..................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v19, v6 // ..................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v20, v8 // ...................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v21, v10 // ...................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v22, v12 // ....................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x9, (_ZETA_EXP_0TO3_L1+0)*4(x11) // ....................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vsub.vv v11, v23, v14 // .....................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x13, (_ZETA_EXP_0TO3_L1+1)*4(x11) // .....................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vadd.vv v1, v23, v14 // ......................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x16, (_ZETA_EXP_0TO3_L1+3)*4(x11) // ......................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vadd.vv v15, v20, v8 // .......................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x23, (_ZETA_EXP_0TO3_L1+2)*4(x11) // .......................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vadd.vv v19, v19, v6 // ........................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v3, v21, v10 // ........................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // .........................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v11, x23 // .........................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v31, v22, v12 // ..........................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v1, x13 // ..........................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x16 // ...........................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v23, v15, x9 // ...........................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v8, x5 // ............................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x16 // ............................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v22, v1, x9 // .............................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v30, x23 // .............................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v1, v31, x9 // ..............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v30, v31, x13 // ..............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v22, x5 // ...............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v2, x5 // ...............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v15, x13 // ................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v22, v29, x23 // ................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v31, v1, x5 // .................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // .................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v23, x5 // ..................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v22, x5 // ..................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v22, v28, x23 // ...................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v15, v3, x9 // ....................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v23, v3, x13 // ....................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v8, v1 // .....................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v22, x5 // .....................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v22, v15, x5 // ......................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v30, v31 // ......................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v11, x16 // .......................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x16 // .......................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v23, v22 // ........................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // .........................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // .........................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ..........................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ..........................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v20, v16, v0 // ...........................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v17, v2 // ...........................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v18, v4 // ............................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v19, v6 // ............................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v24, v8 // .............................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v25, v10 // .............................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v26, v12 // ..............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v27, v14 // ..............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ...............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // ................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // ................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // .................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // .................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v12 // ..................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v27, v27, v14 // ..................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L2+0)*4(x11) // ...................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L2+1)*4(x11) // ...................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (_ZETA_EXP_0TO3_L2+2)*4(x11) // ....................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x28, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ....................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x31, (_ZETA_EXP_0TO3_L2+4)*4(x11) // .....................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x30, (_ZETA_EXP_0TO3_L2+5)*4(x11) // .....................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x16, (_ZETA_EXP_0TO3_L2+6)*4(x11) // ......................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x15, (_ZETA_EXP_0TO3_L2+7)*4(x11) // ......................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v0, v18, x7 // .......................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // .......................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // ........................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // ........................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // .........................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // .........................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // ..........................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // ..........................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // ...........................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // ...........................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // ............................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // ............................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // .............................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x30 // .............................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // ..............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // ..............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // .................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // .................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ..................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ..................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ...................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ...................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ....................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ....................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // .....................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // .....................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ......................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ......................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // .......................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // .......................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // ........................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // ........................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // .........................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // .........................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ..........................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ..........................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ...........................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // ............................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // .............................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // .............................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // ..............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // ..............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L3+0)*4(x11) // ...............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L3+1)*4(x11) // ...............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // ................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v9, v17, x7 // ................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x16, (_ZETA_EXP_0TO3_L3+3)*4(x11) // .................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v8, v17, x6 // .................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x23, (_ZETA_EXP_0TO3_L3+4)*4(x11) // ..................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v1, v19, x29 // ..................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x13, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ...................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v15, v19, x16 // ...................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x16, (_ZETA_EXP_0TO3_L3+6)*4(x11) // ....................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v14, v21, x23 // ....................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x23, (_ZETA_EXP_0TO3_L3+7)*4(x11) // .....................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v0, v21, x13 // .....................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // ......................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v4, v23, x16 // ......................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x6, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // .......................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v23, v23, x23 // .......................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x29, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // ........................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v9, v9, x5 // ........................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x28, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // .........................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v1, v1, x5 // .........................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x31, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // ..........................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v14, v14, x5 // ..........................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x30, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // ...........................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v4, v4, x5 // ...........................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x16, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // ............................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v9, v8, v9 // ............................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x15, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // .............................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v8, v15, v1 // .............................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x10, (4*1)*4 // ..............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v1, v0, v14 // ..............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x13, x10, (4*1+16)*4 // ...............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v15, v23, v4 // ...............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v9 // ................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v9, v16, v9 // ................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v8 // .................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v8 // .................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v15 // ..................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v15 // ..................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v1 // ...................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v1 // ...................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v9, (x12) // ....................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v17, (x13) // ....................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .....................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x13, 32*4 // .....................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vse32.v v18, (x12) // ......................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v19, (x13) // ......................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .......................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v20, (x12) // ........................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v21, (x13) // ........................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v22, (x12) // ..........................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v23, (x13) // ..........................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v25, x7 // ............................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v27, x29 // ............................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v29, x31 // .............................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x16 // .............................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v25, x6 // ..............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v27, x28 // ..............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x30 // ...............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x15 // ...............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ....................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // .....................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ......................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // .......................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v24, (x12) // ........................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v25, (x13) // ........................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v26, (x12) // ..........................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v27, (x13) // ..........................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v28, (x12) // ............................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v29, (x13) // ............................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .............................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v30, (x12) // ..............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v31, (x13) // ..............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L0+0)*4(x11) // ...............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L0+1)*4(x11) // ...............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x12, x10, (4*2)*4 // ................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x10, (4*2+16)*4 // ................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v16, (x12) // .................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v17, (x13) // .................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ..................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ..................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v18, (x12) // ...................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v19, (x13) // ...................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ....................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x13, 32*4 // ....................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v20, (x12) // .....................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v21, (x13) // .....................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ......................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v22, (x12) // .......................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v23, (x13) // .......................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ........................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v24, (x12) // .........................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v25, (x13) // .........................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ..........................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v26, (x12) // ...........................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v27, (x13) // ...........................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ............................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ............................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x31, x13, 32*4 // .............................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v7, v27, x7 // .............................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v6, (x31) // ..............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x12, 32*4 // ..............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v5, v25, x7 // ...............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v0, (x31) // ...............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v3, v6, x7 // ................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v10, (x13) // ................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v13, v0, x7 // .................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v6, x6 // .................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v29, v10, x6 // ..................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v7, x5 // ..................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v7, v10, x7 // ...................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v5, x5 // ...................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v24, x7 // ....................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v2, (x12) // ....................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v26, x7 // .....................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v13, x5 // .....................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v5, v2, x7 // ......................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v30, v3, x5 // ......................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v25, x6 // .......................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v28, v7, x5 // .......................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v24, v24, x6 // ........................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ........................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v0, x6 // .........................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v6, x5 // .........................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v27, x6 // ..........................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v5, x5 // ..........................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v27, v2, x6 // ...........................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v13, v12 // ...........................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v26, x6 // ............................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v24, v10 // ............................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v29, v28 // .............................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v14, v30 // .............................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v6, v4 // ..............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v3, v11 // ..............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v27, v5 // ...............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v17, v2 // ...............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v13, v7 // ................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v24, v16, v0 // ................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v18, v4 // .................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v19, v6 // .................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v20, v8 // ..................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v21, v10 // ..................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v22, v12 // ...................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v23, v14 // ...................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ....................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // .....................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // .....................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v8 // ......................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v10 // ......................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v12 // .......................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v23, v23, v14 // .......................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L1+0)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L1+1)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (_ZETA_EXP_0TO3_L1+2)*4(x11) // .........................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L1+3)*4(x11) // .........................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v20, x7 // ..........................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v21, x7 // ..........................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x7 // ...........................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x7 // ...........................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x29 // ............................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x29 // ............................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x29 // .............................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x29 // .............................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v20, x6 // ..............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v21, x6 // ..............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x6 // ...............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x6 // ...............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x28 // ................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x28 // ................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x28 // .................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x28 // .................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ....................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ....................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // .....................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // .....................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ......................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ......................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .......................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .......................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ........................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ........................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // .........................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // .........................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v20, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v17, v2 // ..........................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v18, v4 // ...........................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v19, v6 // ...........................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v24, v8 // ............................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v25, v10 // ............................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v26, v12 // .............................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v27, v14 // .............................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ..............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // ...............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // ...............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v12 // .................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v27, v27, v14 // .................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L2+0)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x6, (_ZETA_EXP_0TO3_L2+1)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x29, (_ZETA_EXP_0TO3_L2+2)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, (_ZETA_EXP_0TO3_L2+4)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x30, (_ZETA_EXP_0TO3_L2+5)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x16, (_ZETA_EXP_0TO3_L2+6)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x15, (_ZETA_EXP_0TO3_L2+7)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v0, v18, x7 // ......................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // ......................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // .......................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // .......................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // ........................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // ........................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v9, v31, x16 // .........................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v19, x6 // .........................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v31, x15 // ..........................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v26, x30 // ..........................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v8, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v15, v30, x16 // ...........................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v6, x5 // ............................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v9, x5 // ............................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v30, x15 // .............................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v27, x30 // .............................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v27, v15, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v1, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v18, x6 // ...............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v26, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v9, v1 // .................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // .................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v23, x28 // ..................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v11, v27 // ..................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v8, v3 // ....................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v5, v7 // ....................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v15, v26 // .....................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v22, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v22, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v18 // ......................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v18 // .......................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v9, v22 // ........................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v8 // ........................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v13, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v10 // ..........................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // .............................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L3+0)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L3+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L3+3)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, (_ZETA_EXP_0TO3_L3+4)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x30, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x16, (_ZETA_EXP_0TO3_L3+6)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x15, (_ZETA_EXP_0TO3_L3+7)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v0, v17, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // ..................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v21, x31 // ...................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x28 // ....................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v21, x30 // .....................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x15 // .....................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // .............................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x30, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x16, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x15, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x12, x10, (4*2)*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x10, (4*2+16)*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vse32.v v16, (x12) // ...................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v17, (x13) // ...................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x13, 32*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vse32.v v18, (x12) // .....................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v19, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vse32.v v20, (x12) // .......................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v21, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v22, (x12) // .........................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v23, (x13) // .........................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v0, v25, x7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v27, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v29, x31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x16 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v25, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v27, x28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x30 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x15 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v25, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x22, x10, (4*3)*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vadd.vv v10, v24, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x22, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x8, x31, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v16, (x22) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v30, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x15, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v27, (x15) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x22, x15, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vadd.vv v9, v26, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x15, x22, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vse32.v v31, (x15) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L0+0)*4(x11) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vadd.vv v13, v28, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x6, (_ZETA_EXP_0TO3_L0+1)*4(x11) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v29, (x22) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v10, (x12) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v18, (x31) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x12, 32*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x27, x31, 32*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v9, (x31) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x10, (4*3+16)*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x15, x27, 32*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vse32.v v22, (x15) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v13, (x27) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v20, (x8) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v17, (x31) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x31, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x15, x31, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v19, (x31) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x15, 32*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x31, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v23, (x31) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x8, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x12, x31, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v21, (x15) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v22, (x31) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v25, (x13) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v24, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v26, (x12) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v27, (x13) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v28, (x12) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v29, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v30, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v31, (x13) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v24, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v25, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v26, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v27, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v24, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v25, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v26, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v27, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v24, v16, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v17, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v18, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v19, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v20, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v21, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v22, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v8 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v23, v23, v14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L1+0)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L1+1)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (_ZETA_EXP_0TO3_L1+2)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L1+3)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v20, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v21, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v20, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v21, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v22, v0, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L2+0)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v23, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x6, (_ZETA_EXP_0TO3_L2+1)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v31, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x29, (_ZETA_EXP_0TO3_L2+2)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v0, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x28, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v8, v8, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x31, (_ZETA_EXP_0TO3_L2+4)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v29, v10, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x30, (_ZETA_EXP_0TO3_L2+5)*4(x11) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v4, v12, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x16, (_ZETA_EXP_0TO3_L2+6)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v14, v14, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x15, (_ZETA_EXP_0TO3_L2+7)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v22, v1, v22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v3, v23 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v5, v31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v7, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v9, v9, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v11, v29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v13, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v15, v15, v14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v20, v16, v22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v17, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v18, v23 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v23 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v19, v31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v24, v9 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v9 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v25, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v26, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v27, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v27, v27, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v18, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L3+0)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L3+1)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L3+3)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, (_ZETA_EXP_0TO3_L3+4)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x30, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x16, (_ZETA_EXP_0TO3_L3+6)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x15, (_ZETA_EXP_0TO3_L3+7)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v0, v17, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v21, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x16 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v21, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v13, v25, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x15, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x27, x10, (4*3+16)*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x8, x10, (4*3)*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v16, (x8) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x31, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v7, v25, x15 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x15, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v6, v13, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x16, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v13, v27, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x8, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v17, (x27) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x8, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v4, v29, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x15, x31, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vse32.v v18, (x31) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x31, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v18, v29, x8 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x8, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v20, (x15) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v5, v31, x31 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x27, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v19, (x31) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x31, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v10, v13, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v27, x8 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v21, (x31) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x31, 32*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v0, v7, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x13, x31, 32*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v23, (x31) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x31, x15, 32*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v6, v5, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x31, 32*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v22, (x31) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v12, v10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v18, v13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v24, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v25, (x13) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v26, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v27, (x13) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v28, (x12) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v29, (x13) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v30, (x12) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v31, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x14, _ZETA_EXP_4TO7_P0_L4*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x12, x10, (64*0)*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x14, x14, x11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x10, (64*0+4*8)*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x7, 0*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, 1*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, 2*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x28, 3*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x31, 4*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x30, 5*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x16, 6*4(x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x15, 7*4(x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vl8re32.v v16, (x12) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + li x14, _ZETA_EXP_4TO7_P0_L5*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vl8re32.v v24, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:sew=32 + add x14, x14, x11 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v0, v18, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v1, v21, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x16, 2*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x9, 4*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vadd.vv v17, v17, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x23, 5*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v11, v19, x16 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x16, 6*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v9, v1, x9 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x9, 0*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v15, v1, x23 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x23, 7*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v2, v23, x16 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x16, 3*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v1, v11, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (8+0)*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v9, v9, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v19, v19, x16 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x23 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x23, 1*4(x14) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v15, v15, v9 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v0, v20, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v17, x9 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v19, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v7, v11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v0, v15 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v8, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v17, x23 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v9, v4, v9 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v0, v15 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v9 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x6, (8+1)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (8+2)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (8+3)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, (8+4)*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x30, (8+5)*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x16, (8+6)*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x15, (8+7)*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v0, v25, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v27, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v29, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x16 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v25, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v27, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, _MASK_1100*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + li x30, _MASK_0101*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + li x31, _MASK_2323*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x29, x29, x11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x30, x30, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x31, x31, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v0, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v2, (x31) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + li x29, _ZETA_EXP_4TO7_P0_L6*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vrgather.vv v8, v17, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vrgather.vv v8, v25, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:sew=32 + addi x29, x29, 8*4*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vv v0, v17, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v0, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v13, v21, v13 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v4, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v21, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v0, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vmulh.vv v23, v23, v15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v15, v19, v11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v19, v31, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v29, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v4, v27, v3 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v27, v17, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v10, v25, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v17, v29, v5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v9, v23, v21 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v19, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v19, v25, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v6, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v13, v8 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v10, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v10, v31, v7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v27, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v13, v15, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v4, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v17, v3 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v19, v5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v27 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v13 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v27 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v13 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v10, v11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, _MASK_1010*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + li x30, _MASK_1032*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x29, x29, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x30, x30, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v0, (x29) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, _ZETA_EXP_4TO7_P0_L7*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vrgather.vv v8, v17, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vrgather.vv v8, v25, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:sew=32 + addi x29, x29, 8*4*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vv v0, v17, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vs8r.v v16, (x12) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vmul.vv v0, v25, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v22, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + li x16, _ZETA_EXP_4TO7_P1_L4*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v9, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x16, x16, x11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v8, v4, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x23, 4*4(x16) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v23, v6, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x9, 0*4(x16) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vsub.vv v22, v1, v22 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x6, 1*4(x16) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vsub.vv v9, v3, v9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x4, 2*4(x16) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v8, v5, v8 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x28, 3*4(x16) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v1, v7, v23 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x30, 5*4(x16) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v25, v24, v22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x15, 7*4(x16) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vadd.vv v24, v24, v22 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x16, 6*4(x16) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v29, v28, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x10, (64*1)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vadd.vv v28, v28, v8 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x1, _ZETA_EXP_4TO7_P1_L5*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x14, x1, x11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v27, v26, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v16, (x12) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:sew=32 + vs8r.v v24, (x13) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:sew=32 + addi x13, x10, (64*1+4*8)*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v0, v18, x9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v24, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:sew=32 + vmul.vx v2, v19, x9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x23 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x23 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x30 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x7, 0*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x6, 1*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, 2*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, 3*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, 4*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x30, 5*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x16, 6*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x15, 7*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v17, x7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v21, x31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x28 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v21, x30 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (8+0)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x6, (8+1)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (8+2)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (8+3)*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, (8+4)*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x30, (8+5)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x16, (8+6)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x23, (8+7)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v12, v31, x16 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v25, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x21, _MASK_2323*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x24, x21, x11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v8, v29, x31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v31, x23 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + li x19, _MASK_1100*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + add x26, x19, x11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v31, v25, x6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + li x18, _MASK_0101*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v14, v0, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v27, x29 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + li x29, _ZETA_EXP_4TO7_P1_L6*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v9, v12, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + add x23, x18, x11 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v0, (x26) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v25, v27, x28 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v8, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v4, v9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v2, (x24) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v29, x30 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x23) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v6, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v31, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v8, v17, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v9, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v15, v25, v15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v15 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v15 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + vrgather.vv v8, v25, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:sew=32 + addi x29, x29, 8*4*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vv v0, v17, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vmul.vv v0, v25, v8 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, _MASK_1010*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + add x16, x29, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + li x23, _MASK_1032*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v0, (x16) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x16, x23, x11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + li x23, _ZETA_EXP_4TO7_P1_L7*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v5, (x16) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x29, x23, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + vl8re32.v v8, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vrgather.vv v6, v24, v5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v7, v25, v5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v6, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v31, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v1, v30, v5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v7, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v6, v30, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v29, v5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v1, v28, v5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v1, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v6, v28, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v27, v5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v1, v26, v5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v6, v26, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v1, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v23, v5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v1, v22, v5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v6, v22, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v17, v5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v1, v16, v5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v7, v21, v5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v1, v20, v5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v1, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v7, v20, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v7, v19, v5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v1, v18, v5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v1, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v7, v18, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v6, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x29, x29, 8*4*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + vmul.vv v0, v17, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:sew=32 + vs8r.v v16, (x12) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vmul.vv v0, v25, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vs8r.v v24, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + li x14, _ZETA_EXP_4TO7_P2_L4*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + addi x12, x10, (64*2)*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + add x14, x14, x11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + addi x13, x10, (64*2+4*8)*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + lw x7, 0*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + lw x6, 1*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + lw x29, 2*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + lw x28, 3*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + lw x31, 4*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + lw x30, 5*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + lw x16, 6*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + lw x15, 7*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + vl8re32.v v16, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + li x14, _ZETA_EXP_4TO7_P2_L5*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + vl8re32.v v24, (x13) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + add x14, x14, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v18, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v27, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x7, 0*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... + vmulh.vx v26, v30, x15 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x6, 1*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + vmulh.vx v31, v31, x15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x29, 2*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + vmulh.vx v22, v0, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x28, 3*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + vmulh.vx v23, v2, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x31, 4*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + vmulh.vx v0, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v6, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v10, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v1, v22 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v3, v23 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v5, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v7, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v9, v9, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v22 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v22 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v23 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v23 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v31, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v15, v11 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v15, v26, v12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v9 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v15 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v15 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x30, 5*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + lw x16, 6*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + lw x15, 7*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + vmul.vx v0, v17, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v21, x31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x16 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v21, x30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (8+0)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + lw x6, (8+1)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + lw x29, (8+2)*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + lw x28, (8+3)*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + lw x31, (8+4)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + lw x30, (8+5)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + lw x16, (8+6)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + lw x15, (8+7)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + vmul.vx v0, v25, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v27, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v29, x31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x16 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v25, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v27, x28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, _MASK_1100*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + li x30, _MASK_0101*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + li x31, _MASK_2323*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + add x29, x29, x11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + add x30, x30, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + add x31, x31, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + vle32.v v0, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v2, (x31) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, _ZETA_EXP_4TO7_P2_L6*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + vrgather.vv v8, v17, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v6, v21, v13, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + add x6, x29, x11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + addi x29, x6, 8*4*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + vmerge.vvm v21, v23, v15, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v4, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x6) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:sew=32 + vrgather.vv v7, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v14, v21, v14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v6, v13 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v23, v27, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v19, v17, v9 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v11, v4, v11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v23, v26, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v8, v17, v8 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v17, v25, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v24, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v4, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v23, v8, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v13, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v17, v24, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v3, v29, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v9, v6, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v28, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v14, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v10, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v9, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v7, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v30, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v15, v21, v15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v8, v31, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v11, v13 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v8, v30, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v15, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v3, v28, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v9, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v19, v23 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:sew=32 + vmul.vv v0, v25, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + li x29, _MASK_1010*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + li x30, _MASK_1032*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + add x29, x29, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + add x30, x30, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + vle32.v v0, (x29) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, _ZETA_EXP_4TO7_P2_L7*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + vrgather.vv v8, v17, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + vrgather.vv v8, v25, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:sew=32 + addi x29, x29, 8*4*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + vmul.vv v0, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v0, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v4, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v2, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v11, v19, v11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v1, v9 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v0, (x29) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:sew=32 + vmulh.vv v21, v21, v13 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v8, v31, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v19, v25, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v0, v29, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v7 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v9, v16, v17 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v29, v29, v5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v15, v23, v15 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v8 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v13, v25, v1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v19, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v31, v0, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v11, v10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v27, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v13, v8 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v15, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v11, v18, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v21, v12 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v10, v18, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v15, v22, v23 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v14, v22, v23 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v4, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v22, v27, v3 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v13, v20, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v29, v31 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v12, v20, v8 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v22, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v8, v16, v17 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vs8r.v v8, (x12) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:sew=32 + vsub.vv v31, v30, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vs8r.v v24, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:sew=32 + li x14, _ZETA_EXP_4TO7_P3_L4*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + addi x12, x10, (64*3)*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + add x14, x14, x11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + addi x13, x10, (64*3+4*8)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + lw x7, 0*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + lw x6, 1*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + lw x29, 2*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + lw x28, 3*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + lw x31, 4*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + lw x30, 5*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + lw x16, 6*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + lw x15, 7*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + vl8re32.v v16, (x12) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... // @slothy:sew=32 + li x14, _ZETA_EXP_4TO7_P3_L5*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + vl8re32.v v24, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:sew=32 + add x14, x14, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + vmul.vx v0, v18, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x7, 0*4(x14) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + lw x6, 1*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + lw x29, 2*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + lw x28, 3*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + lw x31, 4*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + lw x30, 5*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + lw x16, 6*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + lw x15, 7*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + vmul.vx v0, v17, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v2, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x9, (8+3)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + lw x21, (8+0)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + vmulh.vx v9, v19, x28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v21, x31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x1, (8+4)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + vmulh.vx v3, v27, x9 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x26, (8+7)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + vmulh.vx v0, v0, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x9, (8+2)*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + vsub.vv v8, v9, v8 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x23, (8+1)*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + lw x4, (8+6)*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + vmulh.vx v9, v17, x6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v27, x9 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v21, x30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v9, v9, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v11, v23, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x16, (8+5)*4(x14) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + vmulh.vx v0, v10, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x26 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v9 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v9 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v9, v15, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v25, x21 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v23, v23, x15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v9 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v9 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v12, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v11, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v29, x1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v25, x23 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x16 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v9, v23, v9 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v4, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v14, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + li x29, _MASK_1100*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + li x30, _MASK_0101*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + li x31, _MASK_2323*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + add x30, x30, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + add x31, x31, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + vle32.v v0, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v2, (x31) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, _ZETA_EXP_4TO7_P3_L6*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + vrgather.vv v8, v17, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ + vrgather.vv v8, v25, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... // @slothy:sew=32 + addi x29, x29, 8*4*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + vmul.vv v0, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:sew=32 + li x24, _MASK_1032*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... + vadd.vv v20, v20, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x31, x24, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + vle32.v v1, (x31) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x31, _MASK_1010*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + vmulh.vv v4, v27, v11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=32 + add x8, x31, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + vmul.vv v5, v25, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, _ZETA_EXP_4TO7_P3_L7*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + vmul.vv v0, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v14, v31, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v27, v27, v10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v2, v31, v15 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v25, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v29, v13 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v5, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v14, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v27, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v7, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v0, (x8) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v7, v2, v9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v4, v5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v8, v17, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v13, v3, v13 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v27 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v27 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v13 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v13 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + vrgather.vv v8, v25, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:sew=32 + addi x29, x29, 8*4*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + vmul.vv v0, v17, v8 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:sew=32 + vs8r.v v16, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ // @slothy:sew=32 + vmul.vv v0, v25, v8 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:lmul=1 // @slothy:sew=32 + vs8r.v v24, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:sew=32 + + // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500 525 550 575 600 625 650 675 700 725 750 775 800 825 850 875 900 925 950 975 1000 1025 1050 1075 1100 1125 1150 1175 1200 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|-- + // vsetivli x7, 4, e32, m1, tu, mu // *.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // li x5, 8380417 // ...............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L0+0)*4(x11) // .....*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, (_ZETA_EXP_0TO3_L0+1)*4(x11) // ...*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (4*0)*4 // .*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x10, (4*0+16)*4 // *.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v16, (x12) // .............*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v17, (x13) // ..................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ..*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // .*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v18, (x12) // ...................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v19, (x13) // .................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ...*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ..*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v20, (x12) // ..............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v21, (x13) // ....*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ....*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // ......*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v22, (x12) // ......*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v23, (x13) // .......*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .....*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // .......*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v24, (x12) // .............*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v25, (x13) // ...............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ........*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v26, (x12) // .................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v27, (x13) // ................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ........*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ..........*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v28, (x12) // .........*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v29, (x13) // ...........*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..........*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ............*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v30, (x12) // ...........*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v31, (x13) // ............*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x7 // ..............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v25, x7 // ................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v26, x7 // ...................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v27, x7 // ..................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v8, v28, x7 // ....................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v10, v29, x7 // ....................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v12, v30, x7 // .....................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v14, v31, x7 // .....................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v24, x6 // ......................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v3, v25, x6 // ......................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v5, v26, x6 // .......................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v27, x6 // .......................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v28, x6 // ........................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v29, x6 // ........................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x6 // .........................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x6 // .........................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ..........................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ..........................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ...........................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ...........................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ............................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ............................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // .............................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // .............................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ..............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ..............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ...............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v10, v11, v10 // ................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v12, v13, v12 // .................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v15, v14 // .................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v24, v16, v0 // ..................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v25, v17, v2 // ..................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v26, v18, v4 // ...................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v19, v6 // ...................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v20, v8 // ....................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v21, v10 // ....................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v30, v22, v12 // .....................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v23, v14 // .....................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ......................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v17, v17, v2 // ......................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v18, v18, v4 // .......................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v19, v19, v6 // .......................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v8 // ........................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v10 // ........................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v12 // .........................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v23, v23, v14 // .........................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L1+0)*4(x11) // ..........................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x6, (_ZETA_EXP_0TO3_L1+1)*4(x11) // ..........................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x29, (_ZETA_EXP_0TO3_L1+2)*4(x11) // ...........................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L1+3)*4(x11) // ...........................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v20, x7 // ............................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v21, x7 // ............................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v22, x7 // .............................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x7 // .............................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v28, x29 // ..............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v29, x29 // ..............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x29 // ...............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x29 // ...............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v20, x6 // ................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v21, x6 // ................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v22, x6 // .................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x6 // .................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v9, v28, x28 // ..................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v11, v29, x28 // ..................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v13, v30, x28 // ...................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x28 // ...................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ....................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ....................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .....................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .....................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // ......................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v10, v10, x5 // ......................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // .......................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // .......................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ........................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ........................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // .........................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .........................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ..........................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v10, v11, v10 // ..........................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v12, v13, v12 // ...........................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // ...........................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v16, v0 // .............................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v17, v2 // ...............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v18, v4 // ................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v23, v19, v6 // .................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v28, v24, v8 // .......................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v25, v10 // ........................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v26, v12 // ............................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v27, v14 // .....................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ..............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ...................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v4 // ............................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v19, v19, v6 // ..................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v24, v24, v8 // .............................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // .........................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v12 // ..........................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v27, v27, v14 // ......................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, (_ZETA_EXP_0TO3_L2+0)*4(x11) // ............................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L2+1)*4(x11) // .............................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L2+2)*4(x11) // ..............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ...............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (_ZETA_EXP_0TO3_L2+4)*4(x11) // ................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, (_ZETA_EXP_0TO3_L2+5)*4(x11) // .................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, (_ZETA_EXP_0TO3_L2+6)*4(x11) // .....................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (_ZETA_EXP_0TO3_L2+7)*4(x11) // ..................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v0, v18, x7 // ...................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v19, x7 // ......................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v4, v22, x29 // ............................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x29 // ....................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v8, v26, x31 // ..............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v27, x31 // .........................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x16 // ...............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x16 // .......................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v18, x6 // ..........................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v3, v19, x6 // ....................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v22, x28 // ...........................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x28 // ...............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v26, x30 // .............................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v27, x30 // ........................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x15 // ..............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ...........................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // ..................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v10, v10, x5 // ..................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // ...................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ...................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ....................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // ....................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // .....................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // .....................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v8, v9, v8 // ......................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v10, v11, v10 // ......................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v12, v13, v12 // .......................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // .......................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v18, v16, v0 // ........................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v17, v2 // ........................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v20, v4 // .........................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v21, v6 // .........................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v24, v8 // ..........................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v25, v10 // ..........................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v30, v28, v12 // ...........................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v29, v14 // ...........................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ............................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ............................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .............................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v6 // .............................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ..............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // ..............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // ...............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // ...............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L3+0)*4(x11) // ................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, (_ZETA_EXP_0TO3_L3+1)*4(x11) // ................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // .................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, (_ZETA_EXP_0TO3_L3+3)*4(x11) // .................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, (_ZETA_EXP_0TO3_L3+4)*4(x11) // ..................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x30, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ..................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, (_ZETA_EXP_0TO3_L3+6)*4(x11) // ...................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, (_ZETA_EXP_0TO3_L3+7)*4(x11) // ...................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v17, x7 // ....................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x29 // ....................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v21, x31 // .....................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v23, x16 // .....................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v17, x6 // ......................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v3, v19, x28 // ......................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v5, v21, x30 // .......................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x15 // .......................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ........................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ........................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // .........................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // .........................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ..........................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ..........................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ...........................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...........................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ............................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v2 // ............................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // .............................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // .............................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ..............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ..............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ...............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ...............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // ................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // ................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x29, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // .................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // .................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // ..................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x30, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // ..................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // ...................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // ...................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (4*0)*4 // ....................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x10, (4*0+16)*4 // ....................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v16, (x12) // .....................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v17, (x13) // .....................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ......................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ......................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v18, (x12) // .......................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v19, (x13) // .......................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ........................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ........................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v20, (x12) // .......................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v21, (x13) // ..........................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // .............................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ..........................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v22, (x12) // ......................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v23, (x13) // .........................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v25, x7 // ...............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // .........................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v29, x31 // .........................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // .................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v25, x6 // ...............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v27, x28 // ..........................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v5, v29, x30 // ............................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v31, x15 // ...................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ............................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // .............................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ....................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ...................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ......................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v25, v24, v0 // .....................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v26, v2 // ..................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v29, v28, v4 // ........................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v6 // ..........................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v24, v24, v0 // .......................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v2 // ..................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v4 // .........................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // ...........................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v24, (x12) // ............................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v25, (x13) // ...........................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v26, (x12) // .....................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v27, (x13) // ....................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ........................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ............................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v28, (x12) // .............................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v29, (x13) // .............................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ..............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v30, (x12) // ...............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v31, (x13) // ...............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L0+0)*4(x11) // ................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, (_ZETA_EXP_0TO3_L0+1)*4(x11) // ................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x10, (4*1)*4 // .................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x10, (4*1+16)*4 // .................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v16, (x12) // ..................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v17, (x13) // ..................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v18, (x12) // ....................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v19, (x13) // ....................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v20, (x12) // ......................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v21, (x13) // ......................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // .......................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .......................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v22, (x12) // ........................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v23, (x13) // ........................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .........................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v24, (x12) // ..........................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v25, (x13) // ..........................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...........................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v26, (x12) // ............................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v27, (x13) // ............................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .............................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .............................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v28, (x12) // ..............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v29, (x13) // ..............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ...............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v30, (x12) // ................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v31, (x13) // ................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v24, x7 // .................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v25, x7 // .................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v26, x7 // ..................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v6, v27, x7 // ..................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v8, v28, x7 // ...................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v29, x7 // ...................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x7 // ....................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v14, v31, x7 // ....................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v24, x6 // .....................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v25, x6 // .....................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v26, x6 // ......................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v7, v27, x6 // ......................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v28, x6 // .......................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v29, x6 // .......................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x6 // ........................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x6 // ........................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .........................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .........................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ..........................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ..........................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v8, v8, x5 // ...........................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ...........................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ............................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ............................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // .............................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .............................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ..............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ..............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ...............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ...............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v15, v14 // ................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v24, v16, v0 // .................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v25, v17, v2 // .................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v26, v18, v4 // ..................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v19, v6 // ..................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v28, v20, v8 // ...................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v21, v10 // ...................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v22, v12 // ....................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v23, v14 // .....................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // .........................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v4 // .................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v19, v19, v6 // ........................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v8 // .......................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v10 // ........................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v12 // ..........................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v23, v23, v14 // ......................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, (_ZETA_EXP_0TO3_L1+0)*4(x11) // ....................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, (_ZETA_EXP_0TO3_L1+1)*4(x11) // .....................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x29, (_ZETA_EXP_0TO3_L1+2)*4(x11) // .......................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L1+3)*4(x11) // ......................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v0, v20, x7 // ...........................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v21, x7 // ....................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v22, x7 // ..............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x7 // .............................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v28, x29 // ...................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v29, x29 // ................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v12, v30, x29 // .............................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x29 // .........................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v20, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v21, x6 // ....................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v22, x6 // ..............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x6 // ..........................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v28, x28 // ...........................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v29, x28 // .......................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x28 // ............................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x28 // .......................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ......................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ...............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // .....................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v10, v10, x5 // ..................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // ...............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ............................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // .....................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // ........................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ......................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // .........................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // .........................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ..........................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v14, v15, v14 // ..........................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v20, v16, v0 // ...........................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v17, v2 // ...........................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v18, v4 // ............................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v19, v6 // ............................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v24, v8 // .............................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v25, v10 // .............................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v26, v12 // ..............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v27, v14 // ..............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ...............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ...............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v4 // ................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v19, v19, v6 // ................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v8 // .................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v25, v25, v10 // .................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v12 // ..................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v27, v27, v14 // ..................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, (_ZETA_EXP_0TO3_L2+0)*4(x11) // ...................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L2+1)*4(x11) // ...................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L2+2)*4(x11) // ....................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ....................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, (_ZETA_EXP_0TO3_L2+4)*4(x11) // .....................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, (_ZETA_EXP_0TO3_L2+5)*4(x11) // .....................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, (_ZETA_EXP_0TO3_L2+6)*4(x11) // ......................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x15, (_ZETA_EXP_0TO3_L2+7)*4(x11) // ......................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v0, v18, x7 // .......................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v19, x7 // .......................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v22, x29 // ........................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x29 // ........................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v26, x31 // .........................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v27, x31 // .........................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x16 // ..........................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v14, v31, x16 // ..........................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v1, v18, x6 // ...........................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x6 // ...........................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x28 // ............................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x28 // ............................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v26, x30 // .............................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v27, x30 // .............................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x15 // ..............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ..............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // .................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v10, v10, x5 // .................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v12, v12, x5 // ..................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v14, v14, x5 // ..................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // ...................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ....................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ....................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v8, v9, v8 // .....................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v10, v11, v10 // .....................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v12, v13, v12 // ......................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v14, v15, v14 // ......................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v18, v16, v0 // .......................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v17, v2 // .......................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v20, v4 // ........................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v21, v6 // ........................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v24, v8 // .........................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v25, v10 // .........................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v12 // ..........................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v29, v14 // ..........................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ...........................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v6 // ............................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // .............................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // .............................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // ..............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // ..............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L3+0)*4(x11) // ...............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L3+1)*4(x11) // ...............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // ................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, (_ZETA_EXP_0TO3_L3+3)*4(x11) // .................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, (_ZETA_EXP_0TO3_L3+4)*4(x11) // ..................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x30, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ...................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, (_ZETA_EXP_0TO3_L3+6)*4(x11) // ....................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (_ZETA_EXP_0TO3_L3+7)*4(x11) // .....................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v17, x7 // ................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x29 // ..................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v4, v21, x31 // ....................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v23, x16 // ......................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v1, v17, x6 // .................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v19, x28 // ...................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v21, x30 // .....................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x15 // .......................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ........................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .........................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ..........................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ...........................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .............................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ..............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v19, v18, v2 // .................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v21, v20, v4 // ...................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ..................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v18, v18, v2 // .................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v20, v20, v4 // ...................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ..................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // ......................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x6, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // .......................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // ........................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // .........................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // ..........................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x30, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // ...........................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // ............................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // .............................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (4*1)*4 // ..............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x10, (4*1+16)*4 // ...............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v16, (x12) // ....................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v17, (x13) // ....................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // .....................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // .....................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v18, (x12) // ......................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v19, (x13) // ......................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .......................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v20, (x12) // ........................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v21, (x13) // ........................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v22, (x12) // ..........................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v23, (x13) // ..........................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v25, x7 // ............................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // ............................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v29, x31 // .............................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // .............................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v25, x6 // ..............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v27, x28 // ..............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v29, x30 // ...............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v31, x15 // ...............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // ....................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v28, v4 // .....................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // ......................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v4 // .......................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v24, (x12) // ........................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v25, (x13) // ........................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v26, (x12) // ..........................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v27, (x13) // ..........................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v28, (x12) // ............................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v29, (x13) // ............................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .............................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v30, (x12) // ..............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v31, (x13) // ..............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L0+0)*4(x11) // ...............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L0+1)*4(x11) // ...............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (4*2)*4 // ................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x10, (4*2+16)*4 // ................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v16, (x12) // .................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v17, (x13) // .................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ..................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ..................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v18, (x12) // ...................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v19, (x13) // ...................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ....................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // ....................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v20, (x12) // .....................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v21, (x13) // .....................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ......................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v22, (x12) // .......................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v23, (x13) // .......................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ........................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v24, (x12) // .........................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v25, (x13) // .........................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..........................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v26, (x12) // ...........................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v27, (x13) // ...........................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ............................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ............................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v28, (x12) // ....................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v29, (x13) // ................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ..............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v30, (x12) // ...............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v31, (x13) // ..............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x7 // ....................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v25, x7 // ...............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v26, x7 // .....................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v27, x7 // .............................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v28, x7 // ......................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v10, v29, x7 // ...................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x7 // .................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v14, v31, x7 // ................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v24, x6 // ........................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v25, x6 // .......................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v26, x6 // ............................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v27, x6 // ..........................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v28, x6 // ...........................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v29, x6 // ..................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v13, v30, x6 // .........................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x6 // .................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ........................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // .........................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ..................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v8, v8, x5 // ..........................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v10, v10, x5 // .......................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // .....................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v14, v14, x5 // ......................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...........................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ..............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ...............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // .............................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ..............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // .............................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v24, v16, v0 // ................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v25, v17, v2 // ...............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v18, v4 // .................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v19, v6 // .................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v28, v20, v8 // ..................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v29, v21, v10 // ..................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v30, v22, v12 // ...................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v23, v14 // ...................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v17, v17, v2 // ....................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v18, v18, v4 // .....................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v19, v19, v6 // .....................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v20, v20, v8 // ......................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v21, v21, v10 // ......................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v22, v22, v12 // .......................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v23, v23, v14 // .......................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L1+0)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L1+1)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L1+2)*4(x11) // .........................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L1+3)*4(x11) // .........................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v20, x7 // ..........................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v2, v21, x7 // ..........................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v4, v22, x7 // ...........................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x7 // ...........................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v28, x29 // ............................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v29, x29 // ............................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x29 // .............................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x29 // .............................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v20, x6 // ..............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v21, x6 // ..............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x6 // ...............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x6 // ...............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v28, x28 // ................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v11, v29, x28 // ................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v13, v30, x28 // .................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v15, v31, x28 // .................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ....................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v10, v10, x5 // ....................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v12, v12, x5 // .....................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v14, v14, x5 // .....................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ......................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ......................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // .......................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .......................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ........................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ........................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // .........................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // .........................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v21, v17, v2 // ..........................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v22, v18, v4 // ...........................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v19, v6 // ...........................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v24, v8 // ............................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v25, v10 // ............................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v26, v12 // .............................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v27, v14 // .............................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ..............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v4 // ...............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v19, v19, v6 // ...............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v25, v25, v10 // ................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v12 // .................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v27, v27, v14 // .................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x7, (_ZETA_EXP_0TO3_L2+0)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x6, (_ZETA_EXP_0TO3_L2+1)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x29, (_ZETA_EXP_0TO3_L2+2)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (_ZETA_EXP_0TO3_L2+4)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, (_ZETA_EXP_0TO3_L2+5)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, (_ZETA_EXP_0TO3_L2+6)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (_ZETA_EXP_0TO3_L2+7)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v18, x7 // ......................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v2, v19, x7 // ......................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v4, v22, x29 // .......................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x29 // .......................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v26, x31 // ........................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v27, x31 // ........................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x16 // ...........................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x16 // .........................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v18, x6 // ...............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x6 // .........................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x28 // ..................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v26, x30 // ..........................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v11, v27, x30 // .............................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x15 // .............................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ..........................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ............................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ............................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v8, v9, v8 // ....................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v10, v11, v10 // .................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v12, v13, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v14, v15, v14 // ..............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v18, v16, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v17, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v26, v24, v8 // .........................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v25, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v29, v14 // .................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // .............................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L3+0)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L3+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L3+3)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (_ZETA_EXP_0TO3_L3+4)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, (_ZETA_EXP_0TO3_L3+6)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (_ZETA_EXP_0TO3_L3+7)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v17, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v2, v19, x29 // ..................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v4, v21, x31 // ...................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v17, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v19, x28 // ....................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v21, x30 // .....................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x15 // .....................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v19, v18, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v21, v20, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // .............................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x10, (4*2)*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x10, (4*2+16)*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v16, (x12) // ...................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v17, (x13) // ...................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v18, (x12) // .....................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v19, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v20, (x12) // .......................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v21, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v22, (x12) // .........................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v23, (x13) // .........................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v0, v25, x7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v29, x31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v25, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v27, x28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v29, x30 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v31, x15 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v26, v26, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v24, (x12) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v25, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v26, (x12) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v27, (x13) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v28, (x12) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v29, (x13) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v30, (x12) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v31, (x13) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L0+0)*4(x11) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L0+1)*4(x11) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (4*3)*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x10, (4*3+16)*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v16, (x12) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v17, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v18, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v19, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v20, (x12) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v21, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v22, (x12) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v23, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v24, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v25, (x13) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v26, (x12) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v27, (x13) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v28, (x12) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v29, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v30, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v31, (x13) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v25, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v26, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v27, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v8, v28, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v10, v29, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v12, v30, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v14, v31, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v1, v24, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v25, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v26, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v27, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v9, v28, x6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v11, v29, x6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v13, v30, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v15, v31, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v14, v14, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v24, v16, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v17, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v18, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v19, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v28, v20, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v21, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v30, v22, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v19, v19, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v20, v20, v8 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v21, v21, v10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v22, v22, v12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v23, v23, v14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, (_ZETA_EXP_0TO3_L1+0)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L1+1)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L1+2)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L1+3)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v20, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v21, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v22, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v6, v23, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v8, v28, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v29, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v20, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v21, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v28, x28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v29, x28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v15, v31, x28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v10, v10, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v8, v9, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v17, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v18, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v19, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v28, v24, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v25, v10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v30, v26, v12 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v27, v14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v19, v19, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v25, v25, v10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v26, v26, v12 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v27, v27, v14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x7, (_ZETA_EXP_0TO3_L2+0)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, (_ZETA_EXP_0TO3_L2+1)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x29, (_ZETA_EXP_0TO3_L2+2)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, (_ZETA_EXP_0TO3_L2+4)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, (_ZETA_EXP_0TO3_L2+5)*4(x11) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, (_ZETA_EXP_0TO3_L2+6)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, (_ZETA_EXP_0TO3_L2+7)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v18, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v22, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v6, v23, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v8, v26, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v27, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v18, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v7, v23, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v26, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v27, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v14, v14, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v8, v9, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v15, v14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v18, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v19, v17, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v22, v20, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v26, v24, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v25, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v29, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v21, v21, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v24, v24, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L3+0)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L3+1)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L3+3)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (_ZETA_EXP_0TO3_L3+4)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, (_ZETA_EXP_0TO3_L3+6)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (_ZETA_EXP_0TO3_L3+7)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v17, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v21, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v6, v23, x16 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v1, v17, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v21, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x15, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x10, (4*3)*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x10, (4*3+16)*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v16, (x12) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v17, (x13) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v18, (x12) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v19, (x13) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v20, (x12) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v21, (x13) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v22, (x12) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v23, (x13) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v25, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v4, v29, x31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v31, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v25, x6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v27, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v5, v29, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v7, v31, x15 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v25, v24, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v26, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v29, v28, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v28, v28, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v30, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v24, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v25, (x13) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v26, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v27, (x13) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v28, (x12) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v29, (x13) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v30, (x12) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v31, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x14, _ZETA_EXP_4TO7_P0_L4*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (64*0)*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x14, x14, x11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x10, (64*0+4*8)*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, 0*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, 1*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, 2*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, 3*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, 4*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, 5*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, 6*4(x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x15, 7*4(x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vl8re32.v v16, (x12) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x14, _ZETA_EXP_4TO7_P0_L5*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v24, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // add x14, x14, x11 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v18, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v22, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v6, v23, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v8, v26, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v27, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v18, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v7, v23, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v26, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v27, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v14, v14, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v8, v9, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v15, v14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v18, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v19, v17, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v22, v20, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v26, v24, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v25, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v29, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v21, v21, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, 0*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, 1*4(x14) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, 2*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x28, 3*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, 4*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x30, 5*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, 6*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, 7*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v17, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v21, x31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x16 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v17, x6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v5, v21, x30 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x15 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v17, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v22, v22, v6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (8+0)*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, (8+1)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (8+2)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (8+3)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (8+4)*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, (8+5)*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, (8+6)*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (8+7)*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v25, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v27, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v29, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v6, v31, x16 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v1, v25, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v27, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v29, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v31, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v30, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v24, v24, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x29, _MASK_1100*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x30, _MASK_0101*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x31, _MASK_2323*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x30, x30, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x31, x31, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v0, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v1, (x30) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v2, (x31) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // li x29, _ZETA_EXP_4TO7_P0_L6*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v17, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v9, v16, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v10, v19, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v18, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v12, v21, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v13, v20, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v14, v23, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v15, v22, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v16, v8, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v17, v17, v9, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v18, v10, v18, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v19, v11, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v12, v20, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v21, v21, v13, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v14, v22, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v23, v23, v15, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v8, v25, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v9, v24, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v26, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v12, v29, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v13, v28, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v14, v31, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v30, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v8, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v28, v12, v28, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v29, v29, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v30, v14, v30, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v31, v31, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vl8re32.v v8, (x29) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x29, x29, 8*4*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v17, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v19, v10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v4, v21, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v6, v23, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v1, v17, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v3, v19, v11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v5, v21, v13 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v7, v23, v15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v19, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v21, v20, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v23, v22, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v18, v18, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v22, v22, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v25, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v27, v10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vv v4, v29, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vv v6, v31, v14 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v1, v25, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v3, v27, v11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v5, v29, v13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v7, v31, v15 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v26, v26, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x29, _MASK_1010*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x30, _MASK_1032*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x30, x30, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v0, (x29) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v1, (x30) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x29, _ZETA_EXP_4TO7_P0_L7*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v17, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v19, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v18, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v12, v21, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v13, v20, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v14, v23, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v15, v22, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v17, v9, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v18, v10, v18, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v19, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v20, v12, v20, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v21, v21, v13, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v22, v14, v22, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v23, v23, v15, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v25, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v24, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v26, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v12, v29, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v13, v28, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v14, v31, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v30, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v8, v24, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v28, v12, v28, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v14, v30, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x29, x29, 8*4*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v0, v17, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v2, v19, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v4, v21, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vv v6, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v1, v17, v9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v3, v19, v11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v5, v21, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v7, v23, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vs8r.v v16, (x12) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v25, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v27, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v4, v29, v12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v6, v31, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v1, v25, v9 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v3, v27, v11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v5, v29, v13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v7, v31, v15 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v26, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vs8r.v v24, (x13) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // li x14, _ZETA_EXP_4TO7_P1_L4*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x10, (64*1)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x14, x14, x11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x10, (64*1+4*8)*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x7, 0*4(x14) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, 1*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x29, 2*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, 3*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, 4*4(x14) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, 5*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, 6*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, 7*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vl8re32.v v16, (x12) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // li x14, _ZETA_EXP_4TO7_P1_L5*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v24, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // add x14, x14, x11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v18, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v2, v19, x7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v22, x29 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v23, x29 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v26, x31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v10, v27, x31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v12, v30, x16 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v14, v31, x16 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v1, v18, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v3, v19, x6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x28 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v26, x30 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v27, x30 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x15 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v8, v9, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v10, v11, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v12, v13, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v15, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v18, v16, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v19, v17, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v20, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v21, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v26, v24, v8 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v25, v10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v30, v28, v12 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v29, v14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v17, v17, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, 0*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x6, 1*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, 2*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, 3*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, 4*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, 5*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, 6*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, 7*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v17, x7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v19, x29 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v21, x31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v17, x6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v19, x28 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v21, x30 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v17, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v19, v18, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, (8+0)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x6, (8+1)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (8+2)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (8+3)*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (8+4)*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, (8+5)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, (8+6)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, (8+7)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v25, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v29, x31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v31, x16 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v25, x6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v3, v27, x28 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v5, v29, x30 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v31, x15 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v28, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v28, v28, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v30, v30, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x29, _MASK_1100*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + // li x30, _MASK_0101*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x31, _MASK_2323*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + // add x30, x30, x11 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + // add x31, x31, x11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v0, (x29) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v1, (x30) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v2, (x31) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x29, _ZETA_EXP_4TO7_P1_L6*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v17, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v19, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v18, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v12, v21, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v13, v20, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v14, v23, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v15, v22, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v17, v9, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v18, v10, v18, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v19, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v20, v12, v20, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v21, v21, v13, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v22, v14, v22, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v23, v23, v15, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v25, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v24, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v26, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v12, v29, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v13, v28, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v14, v31, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v30, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v8, v24, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v28, v12, v28, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v14, v30, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x29, x29, 8*4*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v0, v17, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v2, v19, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v4, v21, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vv v6, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v1, v17, v9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v3, v19, v11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v5, v21, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v7, v23, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v25, v8 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v27, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v4, v29, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v6, v31, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v1, v25, v9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v3, v27, v11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v5, v29, v13 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v7, v31, v15 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v25, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v29, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + // li x29, _MASK_1010*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + // li x30, _MASK_1032*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + // add x29, x29, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + // add x30, x30, x11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v0, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v1, (x30) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + // li x29, _ZETA_EXP_4TO7_P1_L7*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v17, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v19, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v18, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v12, v21, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v13, v20, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v14, v23, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v15, v22, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v16, v8, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v17, v9, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v18, v10, v18, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v19, v11, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v12, v20, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v21, v21, v13, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v22, v14, v22, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v23, v23, v15, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v25, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v24, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v26, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v12, v29, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v13, v28, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v14, v31, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v30, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v24, v8, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v25, v25, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v27, v27, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v28, v12, v28, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v13, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v14, v30, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v31, v31, v15, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + // vl8re32.v v8, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + // addi x29, x29, 8*4*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v17, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v19, v10 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v4, v21, v12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v6, v23, v14 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v1, v17, v9 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v3, v19, v11 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v5, v21, v13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v7, v23, v15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v17, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v19, v18, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ + // vl8re32.v v8, (x29) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ + // vs8r.v v16, (x12) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v25, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v27, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v4, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v6, v31, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v1, v25, v9 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v3, v27, v11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v5, v29, v13 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v7, v31, v15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ + // vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... + // vs8r.v v24, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... + // li x14, _ZETA_EXP_4TO7_P2_L4*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (64*2)*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + // add x14, x14, x11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + // addi x13, x10, (64*2+4*8)*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + // lw x7, 0*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + // lw x6, 1*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + // lw x29, 2*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + // lw x28, 3*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + // lw x31, 4*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + // lw x30, 5*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + // lw x16, 6*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + // lw x15, 7*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v16, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + // li x14, _ZETA_EXP_4TO7_P2_L5*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v24, (x13) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + // add x14, x14, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v18, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v22, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v23, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + // vmul.vx v8, v26, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmul.vx v10, v27, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmul.vx v12, v30, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v18, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v19, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v22, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + // vmulh.vx v9, v26, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmulh.vx v11, v27, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmulh.vx v13, v30, x15 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. + // vsub.vv v8, v9, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. + // vsub.vv v10, v11, v10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. + // vsub.vv v12, v13, v12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ + // vsub.vv v14, v15, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. + // vsub.vv v18, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. + // vsub.vv v19, v17, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ + // vsub.vv v22, v20, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v21, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vsub.vv v26, v24, v8 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v25, v10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v29, v14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. + // vadd.vv v17, v17, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ + // vadd.vv v20, v20, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v8 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + // vadd.vv v25, v25, v10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + // lw x7, 0*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... + // lw x6, 1*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + // lw x29, 2*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + // lw x28, 3*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + // lw x31, 4*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + // lw x30, 5*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + // lw x16, 6*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + // lw x15, 7*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v17, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v19, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v21, x31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x16 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v17, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v21, x30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vsub.vv v19, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vsub.vv v21, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. + // vsub.vv v23, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ + // vadd.vv v18, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ + // vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... + // lw x7, (8+0)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + // lw x6, (8+1)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + // lw x29, (8+2)*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + // lw x28, (8+3)*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + // lw x31, (8+4)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + // lw x30, (8+5)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + // lw x16, (8+6)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + // lw x15, (8+7)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + // vmul.vx v0, v25, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmul.vx v4, v29, x31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v25, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v27, x28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v29, x30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v31, x15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vsub.vv v29, v28, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + // vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + // vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + // li x29, _MASK_1100*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + // li x30, _MASK_0101*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + // li x31, _MASK_2323*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + // add x29, x29, x11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + // add x30, x30, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + // add x31, x31, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + // vle32.v v0, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... + // vle32.v v1, (x30) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... + // vle32.v v2, (x31) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + // li x29, _ZETA_EXP_4TO7_P2_L6*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + // vrgather.vv v8, v17, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... + // vrgather.vv v10, v19, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... + // vrgather.vv v11, v18, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... + // vrgather.vv v12, v21, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... + // vrgather.vv v13, v20, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... + // vrgather.vv v14, v23, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + // vrgather.vv v15, v22, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + // vmerge.vvm v16, v8, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + // vmerge.vvm v17, v17, v9, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + // vmerge.vvm v18, v10, v18, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + // vmerge.vvm v19, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. + // vmerge.vvm v20, v12, v20, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + // vmerge.vvm v21, v21, v13, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + // vmerge.vvm v22, v14, v22, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. + // vmerge.vvm v23, v23, v15, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + // add x29, x29, x11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + // vrgather.vv v8, v25, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ + // vrgather.vv v9, v24, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vrgather.vv v11, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ + // vrgather.vv v12, v29, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... + // vrgather.vv v13, v28, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vrgather.vv v14, v31, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + // vrgather.vv v15, v30, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. + // vmerge.vvm v24, v8, v24, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vmerge.vvm v28, v12, v28, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vmerge.vvm v29, v29, v13, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... + // vmerge.vvm v30, v14, v30, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v15, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. + // vl8re32.v v8, (x29) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ + // addi x29, x29, 8*4*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + // vmul.vv v0, v17, v8 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ + // vmul.vv v2, v19, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + // vmul.vv v4, v21, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vmul.vv v6, v23, v14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... + // vmulh.vv v1, v17, v9 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vmulh.vv v3, v19, v11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + // vmulh.vv v5, v21, v13 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... + // vmulh.vv v7, v23, v15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vsub.vv v17, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ + // vsub.vv v19, v18, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ + // vl8re32.v v8, (x29) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ + // vmul.vv v0, v25, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... + // vmul.vv v2, v27, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... + // vmul.vv v4, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... + // vmul.vv v6, v31, v14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... + // vmulh.vv v1, v25, v9 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + // vmulh.vv v3, v27, v11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + // vmulh.vv v5, v29, v13 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + // vmulh.vv v7, v31, v15 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ + // vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vsub.vv v31, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + // vadd.vv v26, v26, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + // vadd.vv v28, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ + // vadd.vv v30, v30, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ + // li x29, _MASK_1010*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + // li x30, _MASK_1032*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + // add x29, x29, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + // add x30, x30, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + // vle32.v v0, (x29) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... + // vle32.v v1, (x30) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... + // li x29, _ZETA_EXP_4TO7_P2_L7*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + // vrgather.vv v8, v17, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + // vrgather.vv v9, v16, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + // vrgather.vv v10, v19, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + // vrgather.vv v11, v18, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + // vrgather.vv v12, v21, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + // vrgather.vv v13, v20, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + // vrgather.vv v14, v23, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + // vrgather.vv v15, v22, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vmerge.vvm v17, v17, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... + // vmerge.vvm v18, v10, v18, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... + // vmerge.vvm v19, v19, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmerge.vvm v20, v12, v20, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmerge.vvm v21, v21, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. + // vmerge.vvm v22, v14, v22, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. + // vmerge.vvm v23, v23, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + // add x29, x29, x11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + // vrgather.vv v8, v25, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + // vrgather.vv v9, v24, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vrgather.vv v11, v26, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vrgather.vv v12, v29, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + // vrgather.vv v13, v28, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + // vrgather.vv v14, v31, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ + // vrgather.vv v15, v30, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ + // vmerge.vvm v24, v8, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vmerge.vvm v28, v12, v28, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + // vmerge.vvm v29, v29, v13, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + // vmerge.vvm v30, v14, v30, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ + // vmerge.vvm v31, v31, v15, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ + // vl8re32.v v8, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + // addi x29, x29, 8*4*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + // vmul.vv v0, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + // vmul.vv v2, v19, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + // vmul.vv v4, v21, v12 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + // vmul.vv v6, v23, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + // vmulh.vv v1, v17, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + // vmulh.vv v3, v19, v11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + // vmulh.vv v5, v21, v13 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + // vmulh.vv v7, v23, v15 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ + // vsub.vv v17, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. + // vsub.vv v19, v18, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ + // vsub.vv v21, v20, v4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + // vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... + // vl8re32.v v8, (x29) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + // vs8r.v v16, (x12) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ + // vmul.vv v0, v25, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + // vmul.vv v2, v27, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + // vmul.vv v4, v29, v12 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + // vmul.vv v6, v31, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + // vmulh.vv v1, v25, v9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + // vmulh.vv v3, v27, v11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + // vmulh.vv v5, v29, v13 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. + // vmulh.vv v7, v31, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + // vsub.vv v25, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + // vsub.vv v27, v26, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. + // vsub.vv v29, v28, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. + // vsub.vv v31, v30, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ + // vadd.vv v24, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... + // vadd.vv v26, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... + // vadd.vv v28, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vadd.vv v30, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vs8r.v v24, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + // li x14, _ZETA_EXP_4TO7_P3_L4*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + // addi x12, x10, (64*3)*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + // add x14, x14, x11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + // addi x13, x10, (64*3+4*8)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + // lw x7, 0*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + // lw x6, 1*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + // lw x29, 2*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + // lw x28, 3*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + // lw x31, 4*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + // lw x30, 5*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + // lw x16, 6*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + // lw x15, 7*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + // vl8re32.v v16, (x12) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + // li x14, _ZETA_EXP_4TO7_P3_L5*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + // vl8re32.v v24, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + // add x14, x14, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + // vmul.vx v0, v18, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + // vmul.vx v2, v19, x7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vmul.vx v4, v22, x29 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vmul.vx v6, v23, x29 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... + // vmul.vx v8, v26, x31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... + // vmul.vx v10, v27, x31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vmul.vx v12, v30, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vmul.vx v14, v31, x16 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. + // vmulh.vx v1, v18, x6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. + // vmulh.vx v3, v19, x6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ + // vmulh.vx v5, v22, x28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ + // vmulh.vx v7, v23, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + // vmulh.vx v9, v26, x30 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + // vmulh.vx v11, v27, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vmulh.vx v13, v30, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vmulh.vx v15, v31, x15 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. + // vmulh.vx v2, v2, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + // vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + // vmulh.vx v8, v8, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + // vmulh.vx v10, v10, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vmulh.vx v12, v12, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vmulh.vx v14, v14, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... + // vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... + // vsub.vv v2, v3, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + // vsub.vv v4, v5, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + // vsub.vv v6, v7, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + // vsub.vv v8, v9, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + // vsub.vv v10, v11, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... + // vsub.vv v12, v13, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... + // vsub.vv v14, v15, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + // vsub.vv v18, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + // vsub.vv v19, v17, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vsub.vv v22, v20, v4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vsub.vv v23, v21, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... + // vsub.vv v26, v24, v8 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... + // vsub.vv v27, v25, v10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vsub.vv v30, v28, v12 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vsub.vv v31, v29, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. + // vadd.vv v16, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. + // vadd.vv v17, v17, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ + // vadd.vv v20, v20, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ + // vadd.vv v21, v21, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + // vadd.vv v24, v24, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + // vadd.vv v25, v25, v10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vadd.vv v28, v28, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vadd.vv v29, v29, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + // lw x7, 0*4(x14) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + // lw x6, 1*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + // lw x29, 2*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + // lw x28, 3*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + // lw x31, 4*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + // lw x30, 5*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + // lw x16, 6*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + // lw x15, 7*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + // vmul.vx v0, v17, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + // vmul.vx v2, v19, x29 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ + // vmul.vx v4, v21, x31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + // vmul.vx v6, v23, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... + // vmulh.vx v1, v17, x6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + // vmulh.vx v3, v19, x28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + // vmulh.vx v5, v21, x30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + // vmulh.vx v7, v23, x15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vmulh.vx v0, v0, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vmulh.vx v2, v2, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ + // vmulh.vx v4, v4, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vmulh.vx v6, v6, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ + // vsub.vv v0, v1, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... + // vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + // vsub.vv v4, v5, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ + // vsub.vv v6, v7, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + // vsub.vv v17, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + // vsub.vv v19, v18, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + // vsub.vv v21, v20, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vsub.vv v23, v22, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... + // vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ + // vadd.vv v18, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + // vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... + // vadd.vv v22, v22, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... + // lw x7, (8+0)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + // lw x6, (8+1)*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + // lw x29, (8+2)*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + // lw x28, (8+3)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + // lw x31, (8+4)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + // lw x30, (8+5)*4(x14) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + // lw x16, (8+6)*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + // lw x15, (8+7)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vmul.vx v0, v25, x7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... + // vmul.vx v2, v27, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + // vmul.vx v4, v29, x31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ + // vmul.vx v6, v31, x16 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... + // vmulh.vx v1, v25, x6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... + // vmulh.vx v3, v27, x28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + // vmulh.vx v5, v29, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... + // vmulh.vx v7, v31, x15 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + // vmulh.vx v0, v0, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... + // vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + // vmulh.vx v4, v4, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + // vmulh.vx v6, v6, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... + // vsub.vv v0, v1, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... + // vsub.vv v2, v3, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vsub.vv v4, v5, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vsub.vv v6, v7, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. + // vsub.vv v25, v24, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. + // vsub.vv v27, v26, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + // vsub.vv v29, v28, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + // vsub.vv v31, v30, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... + // vadd.vv v24, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... + // vadd.vv v26, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vadd.vv v28, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vadd.vv v30, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + // li x29, _MASK_1100*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + // li x30, _MASK_0101*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + // li x31, _MASK_2323*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + // add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + // add x30, x30, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + // add x31, x31, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vle32.v v0, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vle32.v v1, (x30) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + // vle32.v v2, (x31) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + // li x29, _ZETA_EXP_4TO7_P3_L6*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + // vrgather.vv v8, v17, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + // vrgather.vv v9, v16, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... + // vrgather.vv v10, v19, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... + // vrgather.vv v11, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + // vrgather.vv v12, v21, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + // vrgather.vv v13, v20, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... + // vrgather.vv v14, v23, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... + // vrgather.vv v15, v22, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vmerge.vvm v17, v17, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + // vmerge.vvm v18, v10, v18, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + // vmerge.vvm v19, v19, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vmerge.vvm v20, v12, v20, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vmerge.vvm v21, v21, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. + // vmerge.vvm v22, v14, v22, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. + // vmerge.vvm v23, v23, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ + // add x29, x29, x11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ + // vrgather.vv v8, v25, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... + // vrgather.vv v9, v24, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... + // vrgather.vv v10, v27, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vrgather.vv v11, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vrgather.vv v12, v29, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + // vrgather.vv v13, v28, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + // vrgather.vv v14, v31, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ + // vrgather.vv v15, v30, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ + // vmerge.vvm v24, v8, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + // vmerge.vvm v25, v25, v9, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + // vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + // vmerge.vvm v27, v27, v11, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + // vmerge.vvm v28, v12, v28, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + // vmerge.vvm v29, v29, v13, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + // vmerge.vvm v30, v14, v30, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ + // vmerge.vvm v31, v31, v15, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ + // vl8re32.v v8, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + // addi x29, x29, 8*4*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + // vmul.vv v0, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + // vmul.vv v2, v19, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + // vmul.vv v4, v21, v12 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + // vmul.vv v6, v23, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + // vmulh.vv v1, v17, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + // vmulh.vv v3, v19, v11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + // vmulh.vv v5, v21, v13 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + // vmulh.vv v7, v23, v15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. + // vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + // vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + // vsub.vv v17, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vsub.vv v19, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vsub.vv v21, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. + // vsub.vv v23, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. + // vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + // vadd.vv v18, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + // vadd.vv v20, v20, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vadd.vv v22, v22, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + // vl8re32.v v8, (x29) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... + // vmul.vv v0, v25, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + // vmul.vv v2, v27, v10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + // vmul.vv v4, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + // vmul.vv v6, v31, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + // vmulh.vv v1, v25, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vmulh.vv v3, v27, v11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + // vmulh.vv v5, v29, v13 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... + // vmulh.vv v7, v31, v15 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... + // vmulh.vx v2, v2, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + // vmulh.vx v4, v4, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ + // vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ + // vsub.vv v2, v3, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + // vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... + // vsub.vv v25, v24, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ + // vsub.vv v27, v26, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vsub.vv v29, v28, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vsub.vv v31, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + // vadd.vv v24, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + // vadd.vv v26, v26, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ + // vadd.vv v28, v28, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... + // vadd.vv v30, v30, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... + // li x29, _MASK_1010*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + // li x30, _MASK_1032*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... + // add x29, x29, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + // add x30, x30, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vle32.v v0, (x29) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... + // vle32.v v1, (x30) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + // li x29, _ZETA_EXP_4TO7_P3_L7*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + // vrgather.vv v8, v17, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + // vrgather.vv v9, v16, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ + // vrgather.vv v10, v19, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vrgather.vv v11, v18, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + // vrgather.vv v12, v21, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + // vrgather.vv v13, v20, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ + // vrgather.vv v14, v23, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + // vrgather.vv v15, v22, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + // vmerge.vvm v16, v8, v16, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + // vmerge.vvm v17, v17, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + // vmerge.vvm v18, v10, v18, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + // vmerge.vvm v19, v19, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + // vmerge.vvm v20, v12, v20, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vmerge.vvm v21, v21, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vmerge.vvm v22, v14, v22, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + // vmerge.vvm v23, v23, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + // add x29, x29, x11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vrgather.vv v8, v25, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vrgather.vv v9, v24, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. + // vrgather.vv v10, v27, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. + // vrgather.vv v11, v26, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ + // vrgather.vv v12, v29, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ + // vrgather.vv v13, v28, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... + // vrgather.vv v14, v31, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... + // vrgather.vv v15, v30, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vmerge.vvm v24, v8, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vmerge.vvm v25, v25, v9, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmerge.vvm v26, v10, v26, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmerge.vvm v27, v27, v11, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ + // vmerge.vvm v28, v12, v28, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ + // vmerge.vvm v29, v29, v13, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... + // vmerge.vvm v30, v14, v30, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... + // vmerge.vvm v31, v31, v15, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + // vl8re32.v v8, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + // addi x29, x29, 8*4*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + // vmul.vv v0, v17, v8 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + // vmul.vv v2, v19, v10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ + // vmul.vv v4, v21, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ + // vmul.vv v6, v23, v14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... + // vmulh.vv v1, v17, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... + // vmulh.vv v3, v19, v11 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + // vmulh.vv v5, v21, v13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + // vmulh.vv v7, v23, v15 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + // vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + // vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vmulh.vx v6, v6, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + // vsub.vv v0, v1, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + // vsub.vv v2, v3, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vsub.vv v4, v5, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vsub.vv v6, v7, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + // vsub.vv v17, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + // vsub.vv v19, v18, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ + // vsub.vv v21, v20, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ + // vsub.vv v23, v22, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + // vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + // vadd.vv v18, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vadd.vv v20, v20, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vadd.vv v22, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + // vl8re32.v v8, (x29) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + // vs8r.v v16, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + // vmul.vv v0, v25, v8 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + // vmul.vv v2, v27, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + // vmul.vv v4, v29, v12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + // vmul.vv v6, v31, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vmulh.vv v1, v25, v9 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vmulh.vv v3, v27, v11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + // vmulh.vv v5, v29, v13 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + // vmulh.vv v7, v31, v15 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ + // vmulh.vx v0, v0, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ + // vmulh.vx v2, v2, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + // vmulh.vx v4, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + // vmulh.vx v6, v6, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... + // vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... + // vsub.vv v2, v3, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... + // vsub.vv v4, v5, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... + // vsub.vv v6, v7, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vsub.vv v25, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vsub.vv v27, v26, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... + // vsub.vv v29, v28, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... + // vsub.vv v31, v30, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vadd.vv v24, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vadd.vv v26, v26, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + // vadd.vv v28, v28, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + // vadd.vv v30, v30, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* + // vs8r.v v24, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* + + end: + +ret \ No newline at end of file diff --git a/examples/opt/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128_unfolded_opt_c908.s b/examples/opt/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128_unfolded_opt_c908.s new file mode 100644 index 000000000..1c0d73136 --- /dev/null +++ b/examples/opt/riscv/ntt_dilithium/ntt_dilithium_rvv_vlen128_unfolded_opt_c908.s @@ -0,0 +1,5563 @@ +#define _ZETA_EXP_0TO3_L0 (0 * 2) +#define _ZETA_EXP_0TO3_L1 (_ZETA_EXP_0TO3_L0 + 1 * 2) +#define _ZETA_EXP_0TO3_L2 (_ZETA_EXP_0TO3_L1 + 2 * 2) +#define _ZETA_EXP_0TO3_L3 (_ZETA_EXP_0TO3_L2 + 4 * 2) +#define _ZETA_EXP_4TO7_P0_L4 (_ZETA_EXP_0TO3_L3 + 8 * 2) +#define _ZETA_EXP_4TO7_P0_L5 (_ZETA_EXP_4TO7_P0_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P0_L6 (_ZETA_EXP_4TO7_P0_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P0_L7 (_ZETA_EXP_4TO7_P0_L6 + 16 * 2 * 2) +#define _ZETA_EXP_4TO7_P1_L4 (_ZETA_EXP_4TO7_P0_L7 + 32 * 2) +#define _ZETA_EXP_4TO7_P1_L5 (_ZETA_EXP_4TO7_P1_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P1_L6 (_ZETA_EXP_4TO7_P1_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P1_L7 (_ZETA_EXP_4TO7_P1_L6 + 16 * 2 * 2) +#define _ZETA_EXP_4TO7_P2_L4 (_ZETA_EXP_4TO7_P1_L7 + 32 * 2) +#define _ZETA_EXP_4TO7_P2_L5 (_ZETA_EXP_4TO7_P2_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P2_L6 (_ZETA_EXP_4TO7_P2_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P2_L7 (_ZETA_EXP_4TO7_P2_L6 + 16 * 2 * 2) +#define _ZETA_EXP_4TO7_P3_L4 (_ZETA_EXP_4TO7_P2_L7 + 32 * 2) +#define _ZETA_EXP_4TO7_P3_L5 (_ZETA_EXP_4TO7_P3_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P3_L6 (_ZETA_EXP_4TO7_P3_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P3_L7 (_ZETA_EXP_4TO7_P3_L6 + 16 * 2 * 2) +#define _MASK_1100 (_ZETA_EXP_4TO7_P3_L7 + 32 * 2) +#define _MASK_1010 (_MASK_1100 + 4) +#define _MASK_0101 (_MASK_1010 + 4) +#define _MASK_2323 (_MASK_0101 + 4) +#define _MASK_1032 (_MASK_2323 + 4) +#define _ZETA_EXP_INTT_0TO3_P0_L0 (_MASK_1032 + 4) +#define _ZETA_EXP_INTT_0TO3_P0_L1 (_ZETA_EXP_INTT_0TO3_P0_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P0_L2 (_ZETA_EXP_INTT_0TO3_P0_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P0_L3 (_ZETA_EXP_INTT_0TO3_P0_L2 + 8 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L0 (_ZETA_EXP_INTT_0TO3_P0_L3 + 4 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L1 (_ZETA_EXP_INTT_0TO3_P1_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L2 (_ZETA_EXP_INTT_0TO3_P1_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L3 (_ZETA_EXP_INTT_0TO3_P1_L2 + 8 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L0 (_ZETA_EXP_INTT_0TO3_P1_L3 + 4 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L1 (_ZETA_EXP_INTT_0TO3_P2_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L2 (_ZETA_EXP_INTT_0TO3_P2_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L3 (_ZETA_EXP_INTT_0TO3_P2_L2 + 8 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L0 (_ZETA_EXP_INTT_0TO3_P2_L3 + 4 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L1 (_ZETA_EXP_INTT_0TO3_P3_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L2 (_ZETA_EXP_INTT_0TO3_P3_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L3 (_ZETA_EXP_INTT_0TO3_P3_L2 + 8 * 2) +#define _ZETA_EXP_INTT_4TO7_L4 (_ZETA_EXP_INTT_0TO3_P3_L3 + 4 * 2) +#define _ZETA_EXP_INTT_4TO7_L5 (_ZETA_EXP_INTT_4TO7_L4 + 8 * 2) +#define _ZETA_EXP_INTT_4TO7_L6 (_ZETA_EXP_INTT_4TO7_L5 + 4 * 2) +#define _ZETA_EXP_INTT_4TO7_L7 (_ZETA_EXP_INTT_4TO7_L6 + 2 * 2) + +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont_x8 va0, va1, va2, va3, va4, va5, va6, va7, xb, xbqinv, xq, vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro ct_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level0 + ct_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +.macro ntt_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + addi a2, a0, (64*\off)*4 + add a4, a4, a1 + addi a3, a0, (64*\off+4*8)*4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + vl8re32.v v16, (a2) + li a4, \ZETA_EXP_4TO7_L5*4 + vl8re32.v v24, (a3) + add a4, a4, a1 + // level4 + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level5 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + // level6 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li t4, \ZETA_EXP_4TO7_L6*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + add t4, t4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1, v2 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + // level7 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_EXP_4TO7_L7*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1 + vl8re32.v v8, (t4) + addi t4, t4, 8*4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vl8re32.v v8, (t4) + vs8r.v v16, (a2) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v9, v8, v11,v10,v13,v12,v15,v14,t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v24, (a3) +.endm + +.macro intt_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a2, a0, (64*\off)*4 + addi a3, a0, (64*\off+8*4)*4 + li t4, \ZETA_INTT_0TO3_L0*4 + vl8re32.v v16, (a2) + add t4, t4, a1 + vl8re32.v v24, (a3) + // level0 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8,v9,v10,v11,v12,v13,v14,v15 + // shuffle1 for level1 + li t4, _MASK_1010*4 + li t5, _MASK_1032*4 + add t4, t4, a1 + add t5, t5, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + li t4, \ZETA_INTT_0TO3_L1*4 + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, v1 + add t4, t4, a1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, v1 + // level1 + vl8re32.v v0, (t4) + addi t4, t4, 8*4*4 + gs_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vl8re32.v v0, (t4) + gs_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v1, v0, v3, v2, v5, v4, v7, v6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + // shuffle2 for level2 + li t4, _MASK_1100*4 + li t5, _MASK_0101*4 + li t6, _MASK_2323*4 + add t4, t4, a1 + add t5, t5, a1 + add t6, t6, a1 + vle32.v v0, (t4) + vle32.v v1, (t5) + vle32.v v2, (t6) + li a4, \ZETA_INTT_0TO3_L2*4 + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + add a4, a4, a1 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15,v1,v2 + // level2 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, \ZETA_INTT_0TO3_L3*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + // level3 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v18,v17,v19,v20,v22,v21,v23, t1, t2, t1, t2, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vs8r.v v16, (a2) + gs_bfu_x4 v24,v26,v25,v27,v28,v30,v29,v31, t5, t6, t5, t6, a5, a6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + vs8r.v v24, (a3) +.endm + +.macro intt_level4to7_rvv off + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vle32.v v16, (a2) + vle32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v18, (a2) + vle32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v20, (a2) + vle32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v22, (a2) + vle32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v24, (a2) + vle32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vle32.v v26, (a2) + vle32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + vle32.v v28, (a2) + vle32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + add a4, a4, a1 + vle32.v v30, (a2) + vle32.v v31, (a3) + // level4 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + gs_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v8, v9, v10,v11,v12,v13,v14,v15 + // level5 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + gs_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level6 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + gs_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level7 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + li t2, inv256 + li t3, inv256qinv + tomont_x8 v16,v17,v18,v19,v20,v21,v22,v23, t2, t3, t0, v0, v1, v2, v3, v4, v5, v6, v7 + addi a2, a0, (4*\off)*4 + addi a3, a0, (4*\off+16)*4 + vse32.v v16, (a2) + vse32.v v17, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v18, (a2) + vse32.v v19, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v20, (a2) + vse32.v v21, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v22, (a2) + vse32.v v23, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v24, (a2) + vse32.v v25, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v26, (a2) + vse32.v v27, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v28, (a2) + vse32.v v29, (a3) + addi a2, a2, 32*4 + addi a3, a3, 32*4 + vse32.v v30, (a2) + vse32.v v31, (a3) +.endm + +// q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +// inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +// inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl ntt_rvv_vlen128 +.align 2 +ntt_rvv_vlen128_opt_c908: + start: + // Instructions: 2406 + // Expected cycles: 1203 + // Expected IPC: 2.00 + // + // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500 525 550 575 600 625 650 675 700 725 750 775 800 825 850 875 900 925 950 975 1000 1025 1050 1075 1100 1125 1150 1175 1200 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|-- + vsetivli x22, 4, e32, m1, tu, mu // *.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x28, x10, (4*0)*4 // *.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x31, ((0 * 2)+0)*4(x11) // .*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x1, x28, 32*4 // .*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x27, ((0 * 2)+1)*4(x11) // ..*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x30, x1, 32*4 // ..*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x29, x30, 32*4 // ...*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x20, x10, (4*0+16)*4 // ...*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x4, x29, 32*4 // ....*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x19, x20, 32*4 // ....*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x25, x4, 32*4 // .....*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v25, (x4) // .....*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x23, x19, 32*4 // ......*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x24, x25, 32*4 // ......*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v27, (x24) // .......*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x22, x24, 32*4 // .......*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v1, v25, x27 // ........*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x8, x23, 32*4 // ........*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v20, (x25) // .........*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x26, x8, 32*4 // .........*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v8, v27, x31 // ..........*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x24, x26, 32*4 // ..........*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + li x5, 8380417 // ...........*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v18, (x24) // ...........*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x25, x24, 32*4 // ............*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v4, v20, x31 // ............*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v21, (x23) // .............*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x24, x25, 32*4 // .............*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v6, v18, x31 // ..............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v7, (x26) // ..............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v20, x27 // ...............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v20, (x30) // ...............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v27, x27 // ................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v17, (x25) // ................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v7, x31 // .................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v22, (x29) // .................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v7, x27 // ..................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v10, (x22) // ..................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v17, x27 // ...................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v18, x27 // ...................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v10, x31 // ....................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v19, (x19) // ....................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v10, x27 // .....................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v26, (x24) // .....................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v27, v25, x31 // ......................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v23, (x8) // ......................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v26, x31 // .......................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v16, (x28) // .......................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v17, x31 // ........................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v17, (x20) // ........................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v26, x27 // .........................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v18, (x1) // .........................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v27, x5 // ..........................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ..........................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...........................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ...........................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ............................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ............................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // .............................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // .............................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // .................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // .................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v24, v16, v0 // ..................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v17, v2 // ..................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v18, v4 // ...................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v19, v6 // ...................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v20, v8 // ....................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v21, v10 // ....................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v22, v12 // .....................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v23, v14 // .....................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ......................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ......................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // .......................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // .......................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v8 // ........................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v10 // ........................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v12 // .........................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v23, v23, v14 // .........................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((0 * 2) + 1 * 2)+0)*4(x11) // ..........................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x6, (((0 * 2) + 1 * 2)+1)*4(x11) // ..........................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x29, (((0 * 2) + 1 * 2)+2)*4(x11) // ...........................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (((0 * 2) + 1 * 2)+3)*4(x11) // ...........................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v20, x7 // ............................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v21, x7 // ............................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x7 // .............................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x7 // .............................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x29 // ..............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x29 // ..............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x29 // ...............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x29 // ...............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v20, x6 // ................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v21, x6 // ................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x6 // .................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x6 // .................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x28 // ..................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x28 // ..................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x28 // ...................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x28 // ...................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ....................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ....................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .....................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .....................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ......................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ......................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // .......................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // .......................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ........................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ........................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .........................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .........................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ..........................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ..........................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ...........................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ...........................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v20, v16, v0 // ............................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v17, v2 // ............................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v18, v4 // .............................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v19, v6 // .............................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v24, v8 // ..............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v25, v10 // ..............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v26, v12 // ...............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v27, v14 // ...............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // .................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // .................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ..................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ..................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v12 // ...................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v27, v27, v14 // ...................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, ((((0 * 2) + 1 * 2) + 2 * 2)+0)*4(x11) // ....................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x6, ((((0 * 2) + 1 * 2) + 2 * 2)+1)*4(x11) // ....................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x29, ((((0 * 2) + 1 * 2) + 2 * 2)+2)*4(x11) // .....................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x28, ((((0 * 2) + 1 * 2) + 2 * 2)+3)*4(x11) // .....................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x31, ((((0 * 2) + 1 * 2) + 2 * 2)+4)*4(x11) // ......................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x30, ((((0 * 2) + 1 * 2) + 2 * 2)+5)*4(x11) // ......................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x16, ((((0 * 2) + 1 * 2) + 2 * 2)+6)*4(x11) // .......................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x15, ((((0 * 2) + 1 * 2) + 2 * 2)+7)*4(x11) // .......................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v18, x7 // ........................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // ........................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // .........................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // .........................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // ..........................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // ..........................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // ...........................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // ...........................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // ............................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // ............................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // .............................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // .............................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // ..............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x30 // ..............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // ...............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // ...............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ..................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ..................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ...................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ...................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ....................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ....................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .....................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .....................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ......................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ......................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // .......................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // .......................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // ........................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // ........................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // .........................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // .........................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // ..........................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // ..........................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ...........................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ...........................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ............................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ............................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .............................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // .............................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ..............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ..............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // ...............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // ...............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+0)*4(x11) // ................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+1)*4(x11) // ................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+2)*4(x11) // .................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+3)*4(x11) // .................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+4)*4(x11) // ..................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+5)*4(x11) // ..................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+6)*4(x11) // ...................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+7)*4(x11) // ...................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v17, x7 // ....................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // ....................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v21, x31 // .....................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x16 // .....................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x6 // ......................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x28 // ......................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v21, x30 // .......................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x15 // .......................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ........................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ........................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .........................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .........................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..........................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..........................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...........................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...........................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ............................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ............................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .............................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // .............................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ..............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ..............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ...............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ...............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+0)*4(x11) // ................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+1)*4(x11) // ................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+2)*4(x11) // .................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+3)*4(x11) // .................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+4)*4(x11) // ..................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+5)*4(x11) // ..................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+6)*4(x11) // ...................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+7)*4(x11) // ...................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x12, x10, (4*0)*4 // ....................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x10, (4*0+16)*4 // ....................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vse32.v v16, (x12) // .....................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v17, (x13) // .....................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ......................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ......................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vse32.v v18, (x12) // .......................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v19, (x13) // .......................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ........................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v1, v29, x31 // ........................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x1, x13, 32*4 // .........................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v3, v29, x30 // .........................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x22, x12, 32*4 // ..........................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v2, v31, x16 // ..........................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x27, x22, 32*4 // ...........................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v7, v27, x29 // ...........................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x13, x10, (4*1+16)*4 // ............................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v10, v1, x5 // ............................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x8, x1, 32*4 // .............................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v5, v31, x15 // .............................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x25, x27, 32*4 // ..............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v1, v2, x5 // ..............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x24, x25, 32*4 // ...............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v9, v27, x28 // ...............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x30, x8, 32*4 // ................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v4, v25, x6 // ................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x6, ((0 * 2)+1)*4(x11) // .................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v2, v25, x7 // .................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x7, ((0 * 2)+0)*4(x11) // ..................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vsub.vv v27, v5, v1 // ..................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x4, x30, 32*4 // ...................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v25, v3, v10 // ...................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x26, x4, 32*4 // ....................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v1, v7, x5 // ....................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v2, x5 // .....................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v30, v27 // .....................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v22, (x22) // ......................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x22, x26, 32*4 // ......................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vsub.vv v1, v9, v1 // .......................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v20, (x12) // .......................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x10, (4*1)*4 // ........................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vadd.vv v22, v30, v27 // ........................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v2, (x22) // .........................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x22, x24, 32*4 // .........................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v27, v4, v5 // ..........................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v21, (x1) // ..........................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v2, v28, v25 // ...........................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v23, (x8) // ...........................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v26, v1 // ............................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v17, (x13) // ............................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v26, v1 // .............................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v22, (x22) // .............................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v1, v24, v27 // ..............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v16, (x12) // ..............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v28, v25 // ...............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v2, (x24) // ...............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v24, v27 // ................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v5, (x4) // ................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v20, (x25) // .................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v1, (x27) // .................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v22, (x26) // ..................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v2, (x30) // ..................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v18, (x12) // ....................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v19, (x13) // ....................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x13, 32*4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v20, (x12) // ......................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v21, (x13) // ......................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .......................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .......................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v22, (x12) // ........................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v23, (x13) // ........................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .........................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .........................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v24, (x12) // ..........................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v25, (x13) // ..........................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...........................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...........................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v26, (x12) // ............................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v27, (x13) // ............................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .............................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .............................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v28, (x12) // ..............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v29, (x13) // ..............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v30, (x12) // ................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v31, (x13) // ................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v24, x7 // .................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v25, x7 // .................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v26, x7 // ..................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v27, x7 // ..................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x7 // ...................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x7 // ...................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x7 // ....................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x7 // ....................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v24, x6 // .....................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v25, x6 // .....................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v26, x6 // ......................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v27, x6 // ......................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x6 // .......................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x6 // .......................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x6 // ........................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x6 // ........................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .........................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .........................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..........................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ..........................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ...........................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ...........................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ............................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ............................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .............................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .............................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ...............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ...............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v24, v16, v0 // .................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v17, v2 // .................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v18, v4 // ..................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v19, v6 // ..................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v20, v8 // ...................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v21, v10 // ...................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v22, v12 // ....................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v23, v14 // ....................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // .....................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // .....................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // ......................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // ......................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v8 // .......................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v10 // .......................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v12 // ........................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v23, v23, v14 // ........................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((0 * 2) + 1 * 2)+0)*4(x11) // .........................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (((0 * 2) + 1 * 2)+1)*4(x11) // .........................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (((0 * 2) + 1 * 2)+2)*4(x11) // ..........................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x28, (((0 * 2) + 1 * 2)+3)*4(x11) // ..........................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v0, v20, x7 // ...........................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v21, x7 // ...........................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x7 // ............................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x7 // ............................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x29 // .............................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x29 // .............................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x29 // ..............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x29 // ..............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v20, x6 // ...............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v21, x6 // ...............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x28 // .................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x28 // .................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x28 // ..................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x28 // ..................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ...................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ....................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // .....................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // .....................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ......................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ......................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // .........................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // .........................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ..........................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ..........................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v20, v16, v0 // ...........................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v17, v2 // ...........................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v18, v4 // ............................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v19, v6 // ............................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v24, v8 // .............................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v25, v10 // .............................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v26, v12 // ..............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v27, v14 // ..............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ...............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // ................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // ................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // .................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // .................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v12 // ..................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v27, v27, v14 // ..................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x7, ((((0 * 2) + 1 * 2) + 2 * 2)+0)*4(x11) // ...................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, ((((0 * 2) + 1 * 2) + 2 * 2)+1)*4(x11) // ...................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, ((((0 * 2) + 1 * 2) + 2 * 2)+2)*4(x11) // ....................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x28, ((((0 * 2) + 1 * 2) + 2 * 2)+3)*4(x11) // ....................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x31, ((((0 * 2) + 1 * 2) + 2 * 2)+4)*4(x11) // .....................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x30, ((((0 * 2) + 1 * 2) + 2 * 2)+5)*4(x11) // .....................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x16, ((((0 * 2) + 1 * 2) + 2 * 2)+6)*4(x11) // ......................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x15, ((((0 * 2) + 1 * 2) + 2 * 2)+7)*4(x11) // ......................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v0, v18, x7 // .......................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // .......................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // ........................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // ........................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // .........................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // .........................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // ..........................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // ..........................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // ...........................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // ...........................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // ............................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // ............................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // .............................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x30 // .............................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // ..............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // ..............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // .................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // .................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ..................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ..................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ...................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ...................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ....................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ....................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // .....................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // .....................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ......................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ......................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // .......................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // .......................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // ........................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // ........................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // .........................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // .........................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ..........................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ..........................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ...........................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // ............................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // .............................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // .............................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // ..............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // ..............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+0)*4(x11) // ...............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+1)*4(x11) // ...............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+2)*4(x11) // ................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x4, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+3)*4(x11) // ................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v14, v17, x6 // .................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x25, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+6)*4(x11) // .................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v2, v17, x7 // ..................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x22, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+7)*4(x11) // ..................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v10, v19, x29 // ...................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x24, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+4)*4(x11) // ...................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v3, v19, x4 // ....................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v17, v23, x25 // ....................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x4, x10, (4*1)*4 // .....................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v5, v2, x5 // .....................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x27, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+5)*4(x11) // ......................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x8, x10, (4*1+16)*4 // ......................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v9, v21, x24 // .......................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v23, x22 // .......................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x26, x8, 32*4 // ........................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v1, v17, x5 // ........................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+6)*4(x11) // .........................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v4, v14, v5 // .........................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+5)*4(x11) // ..........................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v5, v21, x27 // ..........................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+4)*4(x11) // ...........................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x27, x4, 32*4 // ...........................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v23, v9, x5 // ............................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x25, x27, 32*4 // ............................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v9, v2, v1 // .............................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x24, x26, 32*4 // .............................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v1, v10, x5 // ..............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v2, v16, v4 // ..............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+0)*4(x11) // ...............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+2)*4(x11) // ...............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v7, v5, v23 // ................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v22, v9 // ................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+3)*4(x11) // .................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vsub.vv v10, v16, v4 // .................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x22, x25, 32*4 // ..................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x12, x22, 32*4 // ..................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vsub.vv v1, v3, v1 // ...................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v4, v20, v7 // ...................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x13, x24, 32*4 // ....................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+7)*4(x11) // ....................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vse32.v v5, (x13) // .....................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v9, v22, v9 // .....................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v10, (x8) // ......................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+1)*4(x11) // ......................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vsub.vv v5, v20, v7 // .......................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v2, (x4) // .......................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v18, v1 // ........................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v4, (x25) // ........................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v2, v18, v1 // .........................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v9, (x22) // .........................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v5, (x24) // ..........................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v22, (x26) // ..........................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v2, (x27) // ...........................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v25, x7 // ............................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v27, x29 // ............................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v29, x31 // .............................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x16 // .............................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v25, x6 // ..............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v27, x28 // ..............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x30 // ...............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x15 // ...............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ....................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // .....................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ......................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // .......................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v24, (x12) // ........................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v25, (x13) // ........................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v26, (x12) // ..........................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v27, (x13) // ..........................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v28, (x12) // ............................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v29, (x13) // ............................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .............................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v30, (x12) // ..............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v31, (x13) // ..............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, ((0 * 2)+0)*4(x11) // ...............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, ((0 * 2)+1)*4(x11) // ...............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x12, x10, (4*2)*4 // ................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x10, (4*2+16)*4 // ................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v16, (x12) // .................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v17, (x13) // .................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ..................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ..................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v18, (x12) // ...................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v19, (x13) // ...................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ....................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x13, 32*4 // ....................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v20, (x12) // .....................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v21, (x13) // .....................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ......................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v22, (x12) // .......................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v23, (x13) // .......................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ........................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v24, (x12) // .........................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v25, (x13) // .........................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ..........................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v26, (x12) // ...........................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v27, (x13) // ...........................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ............................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ............................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v28, (x12) // .............................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v29, (x13) // .............................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ..............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ..............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v30, (x12) // ...............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v31, (x13) // ...............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v24, x7 // ................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v25, x7 // ................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v26, x7 // .................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v27, x7 // .................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x7 // ..................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x7 // ..................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x7 // ...................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x7 // ...................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v24, x6 // ....................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v25, x6 // ....................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v26, x6 // .....................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v27, x6 // .....................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x6 // ......................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x6 // ......................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x6 // .......................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x6 // .......................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ........................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ........................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .........................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .........................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ..........................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ..........................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ...........................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ...........................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ............................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .............................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .............................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ..............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ..............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ...............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ...............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v24, v16, v0 // ................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v17, v2 // ................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v18, v4 // .................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v19, v6 // .................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v20, v8 // ..................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v21, v10 // ..................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v22, v12 // ...................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v23, v14 // ...................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ....................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // .....................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // .....................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v8 // ......................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v10 // ......................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v12 // .......................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v23, v23, v14 // .......................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((0 * 2) + 1 * 2)+0)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (((0 * 2) + 1 * 2)+1)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (((0 * 2) + 1 * 2)+2)*4(x11) // .........................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (((0 * 2) + 1 * 2)+3)*4(x11) // .........................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v20, x7 // ..........................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v21, x7 // ..........................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x7 // ...........................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x7 // ...........................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x29 // ............................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x29 // ............................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x29 // .............................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x29 // .............................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v20, x6 // ..............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v21, x6 // ..............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x6 // ...............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x6 // ...............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x28 // ................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x28 // ................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x28 // .................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x28 // .................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ....................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ....................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // .....................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // .....................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ......................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ......................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .......................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .......................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ........................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ........................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // .........................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // .........................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v20, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v17, v2 // ..........................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v18, v4 // ...........................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v19, v6 // ...........................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v24, v8 // ............................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v25, v10 // ............................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v26, v12 // .............................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v27, v14 // .............................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ..............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // ...............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // ...............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v12 // .................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v27, v27, v14 // .................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x7, ((((0 * 2) + 1 * 2) + 2 * 2)+0)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x6, ((((0 * 2) + 1 * 2) + 2 * 2)+1)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x29, ((((0 * 2) + 1 * 2) + 2 * 2)+2)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, ((((0 * 2) + 1 * 2) + 2 * 2)+3)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, ((((0 * 2) + 1 * 2) + 2 * 2)+4)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x30, ((((0 * 2) + 1 * 2) + 2 * 2)+5)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x16, ((((0 * 2) + 1 * 2) + 2 * 2)+6)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x15, ((((0 * 2) + 1 * 2) + 2 * 2)+7)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v0, v18, x7 // ......................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // ......................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // .......................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // .......................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // ........................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // ........................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v30, x16 // .........................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x25, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+4)*4(x11) // .........................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v1, v0, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x22, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+2)*4(x11) // ..........................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v7, v18, x6 // ...........................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x24, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+0)*4(x11) // ...........................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v18, v30, x15 // ............................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v14, x5 // ............................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v23, x28 // .............................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v6, x5 // .............................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v19, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v5, v18, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v7, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v3, v11, v3 // ................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v5 // .................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v5 // .................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v22, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+3)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v1, v31, x16 // ....................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+6)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v7, v10, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v27, v27, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v2, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v1, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v9, v5 // .......................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v31, x15 // ........................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+7)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v22, v20, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v5 // ..........................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v5 // ..........................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v8, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v26, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+5)*4(x11) // ............................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v9, v10, v11 // ............................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v17, x24 // .............................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x22 // .............................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v5, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v3 // ..............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v27, v7 // ...............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v3 // ...............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v9 // .................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v5 // .................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v5 // ..................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v9 // ..................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v21, x25 // ...................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x28 // ....................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v21, x30 // .....................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x15 // .....................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // .............................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+0)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+2)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+3)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+4)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+5)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+6)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+7)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x12, x10, (4*2)*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x10, (4*2+16)*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vse32.v v16, (x12) // ...................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v17, (x13) // ...................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x13, 32*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vse32.v v18, (x12) // .....................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v19, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vse32.v v20, (x12) // .......................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v21, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v22, (x12) // .........................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v23, (x13) // .........................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v0, v25, x7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v27, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v29, x31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x16 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v25, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v27, x28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x30 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x15 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v24, (x12) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v25, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v26, (x12) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v27, (x13) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vse32.v v28, (x12) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v29, (x13) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v30, (x12) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v31, (x13) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, ((0 * 2)+0)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, ((0 * 2)+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x12, x10, (4*3)*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x10, (4*3+16)*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v16, (x12) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v17, (x13) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x13, 32*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v18, (x12) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v19, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v20, (x12) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v21, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x13, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vle32.v v22, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v23, (x13) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v24, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v25, (x13) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v26, (x12) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v27, (x13) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v28, (x12) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v29, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v30, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v31, (x13) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v24, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v25, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v26, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v27, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v24, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v25, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v26, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v27, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v24, v16, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v17, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v18, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v19, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v20, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v21, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v22, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v19, v19, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v8 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v23, v23, v14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((0 * 2) + 1 * 2)+0)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (((0 * 2) + 1 * 2)+1)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (((0 * 2) + 1 * 2)+2)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (((0 * 2) + 1 * 2)+3)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v20, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v21, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v28, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v29, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v20, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v21, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v28, x28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v29, x28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v22, v0, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x22, ((((0 * 2) + 1 * 2) + 2 * 2)+0)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x24, ((((0 * 2) + 1 * 2) + 2 * 2)+1)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v20, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x25, ((((0 * 2) + 1 * 2) + 2 * 2)+2)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v4, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x27, ((((0 * 2) + 1 * 2) + 2 * 2)+3)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v8, v8, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x26, ((((0 * 2) + 1 * 2) + 2 * 2)+4)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v10, v10, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x4, ((((0 * 2) + 1 * 2) + 2 * 2)+5)*4(x11) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v29, v12, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x30, ((((0 * 2) + 1 * 2) + 2 * 2)+6)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v28, v14, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x15, ((((0 * 2) + 1 * 2) + 2 * 2)+7)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v22, v1, v22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v5, v20 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v7, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v9, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v9, v11, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v13, v29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v7, v15, v28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v20, v16, v22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v26, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v26, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v10, v19, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v19, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v5, v18, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v11, v18, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v27, v7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v27, v27, v7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v17, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v28, v24, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v25, v9 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v9 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v5, x22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v10, x22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v5, x24 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v10, x24 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v11, x25 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v8, x25 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v11, x27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v8, x27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v22, x26 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x26 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v22, x4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+0)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+1)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+2)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+3)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+4)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+5)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+6)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+7)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v0, v17, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v21, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x16 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v21, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+0)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+1)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+2)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+3)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+4)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+5)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+6)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+7)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x12, x10, (4*3)*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x10, (4*3+16)*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vse32.v v16, (x12) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v17, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v18, (x12) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v19, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + addi x13, x13, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vse32.v v20, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v21, (x13) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v22, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v23, (x13) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v25, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v27, x29 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v29, x31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x16 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v25, x6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v27, x28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x30 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x15 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v24, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v25, (x13) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v26, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v27, (x13) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v28, (x12) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v29, (x13) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vse32.v v30, (x12) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vse32.v v31, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x14, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2)*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x12, x10, (64*0)*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x14, x14, x11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x13, x10, (64*0+4*8)*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x7, 0*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x6, 1*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, 2*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x28, 3*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x31, 4*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x30, 5*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + lw x16, 6*4(x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x15, 7*4(x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vl8re32.v v16, (x12) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + li x14, ((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2)*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vl8re32.v v24, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:sew=32 + add x14, x14, x11 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v0, v18, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v0, v17, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x22, 2*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vadd.vv v17, v25, v10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x24, 3*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vadd.vv v5, v21, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x25, 1*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v13, v19, x22 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x22, (8+3)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v1, v19, x24 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x15, (8+7)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v10, v0, x25 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x24, 4*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x25, 5*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v3, v27, x22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x27, 6*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v25, v13, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v5, x24 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x30, (8+5)*4(x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v7, v5, x25 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x25, (8+4)*4(x14) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v13, v23, x27 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x24, 7*4(x14) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vsub.vv v9, v1, v25 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x4, 0*4(x14) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x31, (8+6)*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v11, v23, x24 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x22, (8+1)*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v25, v0, x4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x26, (8+0)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x8, (8+2)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v19, v18, v9 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x31 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v13, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v4, v20, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v7, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v25, v25, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v11, v5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v17, x26 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v4, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v4, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v27, x8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v13, v10, v25 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v13 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v13 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v29, x25 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, (((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + li x30, (((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4)*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + li x31, ((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4)*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x29, x29, x11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x30, x30, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x31, x31, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v0, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v2, (x31) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + li x29, (((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2)*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vrgather.vv v8, v17, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vrgather.vv v8, v25, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:sew=32 + addi x29, x29, 8*4*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vv v0, v17, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vmul.vv v0, v25, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, ((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + li x30, (((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4) + 4)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x29, x29, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + add x30, x30, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v0, (x29) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, ((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2)*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vrgather.vv v8, v17, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vrgather.vv v8, v25, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:sew=32 + addi x29, x29, 8*4*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vv v0, v17, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vs8r.v v16, (x12) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vmul.vv v0, v25, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + li x21, (((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v23, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + add x17, x21, x11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v13, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v4, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x12, x10, (64*1)*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v0, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x15, 1*4(x17) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vsub.vv v23, v1, v23 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x22, 5*4(x17) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vsub.vv v31, v7, v13 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x21, ((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v6, v5, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x14, x21, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v0, v3, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x21, 2*4(x17) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x24, 3*4(x17) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + vsub.vv v9, v24, v23 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x16, 4*4(x17) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v15, v30, v31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x25, 6*4(x17) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v13, v28, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x27, 7*4(x17) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vadd.vv v8, v24, v23 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x26, 0*4(x17) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vl8re32.v v16, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vsub.vv v11, v26, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v14, v30, v31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v10, v26, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v12, v28, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v0, v22, x21 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x21 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x24 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v23, v19, x26 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x15 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x24 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vs8r.v v8, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:sew=32 + vmulh.vx v4, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + addi x13, x10, (64*1+4*8)*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vl8re32.v v24, (x13) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:sew=32 + vmul.vx v19, v18, x26 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x22 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x16 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x16 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x25 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x25 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v19, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v23, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x7, 0*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x6, 1*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, 2*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, 3*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, 4*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x30, 5*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x16, 6*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x15, 7*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v17, x7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v21, x31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x28 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v21, x30 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (8+0)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + lw x6, (8+1)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x29, (8+2)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x28, (8+3)*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x31, (8+4)*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x30, (8+5)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x16, (8+6)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + lw x15, (8+7)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v25, x7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v27, x29 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v29, x31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v25, x6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v27, x28 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x30 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + li x29, (((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + li x30, (((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4)*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + li x31, ((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4)*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + add x29, x29, x11 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + add x30, x30, x11 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + add x31, x31, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v0, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v2, (x31) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, (((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2)*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + vrgather.vv v8, v17, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + vrgather.vv v8, v25, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:sew=32 + addi x29, x29, 8*4*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + vmul.vv v0, v17, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vmul.vv v0, v25, v8 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, ((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4)*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + add x30, x29, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + vle32.v v0, (x30) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + li x31, (((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4) + 4)*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + add x21, x31, x11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + vle32.v v7, (x21) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x26, ((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + add x7, x26, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + addi x29, x7, 8*4*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + vl8re32.v v8, (x7) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vrgather.vv v1, v24, v7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v20, v7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v4, v21, v6, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v21, v7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v6, v20, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v3, v16, v7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v21, v17, v7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v6, v17, v3, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v3, v19, v7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v17, v6, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v21, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v8, v6, v9 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v18, v7 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v19, v6, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v22, v7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v3, v18, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v9, v23, v6, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v19, v26, v7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v17, v17, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v27, v7 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v21, v11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v11, v21, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v19, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v19, v4, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v21, v29, v7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v4, v13 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v12, v9, v14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v6, v26, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v31, v7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v30, v7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v19, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v11, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v6, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v19, v28, v7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v25, v7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v1, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v6, v23, v7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v19, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v13, v30, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v6, v22, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v9, v15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v14, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v12, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v21, v28, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v8, v17 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:sew=32 + vs8r.v v16, (x12) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + vmul.vv v0, v25, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vs8r.v v24, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + li x14, (((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + addi x12, x10, (64*2)*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + add x14, x14, x11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + addi x13, x10, (64*2+4*8)*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + lw x7, 0*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + lw x6, 1*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + lw x29, 2*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + lw x28, 3*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + lw x31, 4*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + lw x30, 5*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + lw x16, 6*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + lw x15, 7*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + vl8re32.v v16, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + li x14, ((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2)*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + vl8re32.v v24, (x13) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:sew=32 + add x14, x14, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + vmul.vx v0, v18, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, 0*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + lw x6, 1*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + lw x29, 2*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + lw x28, 3*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + lw x31, 4*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + lw x30, 5*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + lw x16, 6*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + lw x15, 7*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + vmul.vx v0, v17, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v21, x31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x16 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v17, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v21, x30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x7, (8+0)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + lw x6, (8+1)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + lw x29, (8+2)*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + lw x28, (8+3)*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + lw x31, (8+4)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + lw x30, (8+5)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + lw x16, (8+6)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + lw x15, (8+7)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + vmul.vx v0, v25, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v27, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v29, x31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v31, x16 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v25, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v27, x28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v29, x30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v31, x15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, (((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + li x30, (((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4)*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + li x31, ((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4)*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + add x29, x29, x11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + add x30, x30, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + add x31, x31, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + vle32.v v0, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v2, (x31) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, (((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + vrgather.vv v8, v17, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v5, v23, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + add x22, x29, x11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + addi x1, x22, 8*4*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + vmerge.vvm v19, v19, v11, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v6, v14, v22, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v12, v20, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v7, v21, v13, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x22) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:sew=32 + vrgather.vv v3, v24, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v20, v7, v12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v21, v19, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v30, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v5, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v10, v7, v13 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v7, v31, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v20, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v5, v15 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v7, v30, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v20, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v25, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v23, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v10, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v26, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v21, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v5, v20 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v12, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v8, v19, v11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v7, v29, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v22, v10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v22, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v19, v27, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v17, v23, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v13, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v8, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v19, v26, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v6, v5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v14, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v6, v5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x1) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:sew=32 + vsub.vv v1, v1, v17 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v5, v28, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v5, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v3, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v7, v28, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v0, v25, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + li x29, ((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + li x30, (((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4) + 4)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + add x29, x29, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + add x30, x30, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + vle32.v v0, (x29) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, ((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2)*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + vrgather.vv v8, v17, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + vrgather.vv v8, v25, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:sew=32 + addi x29, x29, 8*4*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + vmul.vv v0, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:sew=32 + vs8r.v v16, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:sew=32 + vmul.vv v0, v25, v8 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vs8r.v v24, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:sew=32 + li x14, (((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + addi x12, x10, (64*3)*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + add x14, x14, x11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + addi x13, x10, (64*3+4*8)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + lw x7, 0*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + lw x6, 1*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + lw x29, 2*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + lw x28, 3*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + lw x31, 4*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + lw x30, 5*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + lw x16, 6*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + lw x15, 7*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + vl8re32.v v16, (x12) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... // @slothy:sew=32 + li x14, ((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + vl8re32.v v24, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:sew=32 + add x14, x14, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + vmul.vx v0, v18, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v4, v22, x29 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v6, v23, x29 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v8, v26, x31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v10, v27, x31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v30, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v14, v31, x16 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v18, x6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v3, v19, x6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v22, x28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v23, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v26, x30 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v27, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v13, v30, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v15, v31, x15 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v8, v8, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v10, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v12, v12, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v14, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v8, v9, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v11, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v12, v13, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v14, v15, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v18, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v17, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v22, v20, v4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v21, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v26, v24, v8 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v25, v10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v30, v28, v12 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v29, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v17, v17, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v21, v21, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v25, v25, v10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v29, v29, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x7, 0*4(x14) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + lw x6, 1*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + lw x29, 2*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + lw x28, 3*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + lw x31, 4*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + lw x30, 5*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + lw x16, 6*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + lw x15, 7*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + vmul.vx v0, v17, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v19, x29 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v12, v21, x31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + lw x1, (8+0)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + lw x18, (8+7)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + vmulh.vx v15, v23, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x27, (8+3)*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + vmul.vx v7, v23, x16 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v1, v25, x1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x26, (8+4)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + vmulh.vx v8, v21, x30 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + lw x22, (8+6)*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + lw x24, (8+1)*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + vmulh.vx v3, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x25, (8+2)*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + vmul.vx v2, v29, x26 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + lw x4, (8+5)*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + vmulh.vx v1, v1, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v25, x24 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v14, v31, x18 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v9, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v10, v29, x4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v5, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v19, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v2, v31, x22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v11, v7, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vx v1, v27, x25 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v5, v2, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v27, v27, x27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v17, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v1, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v3, v6, v3 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v7, v0, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v10, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v10, v27, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v5, v14, v5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v15, v11 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v1, v12, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v15, v4, v7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v3 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v3 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v1, v8, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v15 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + li x29, (((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + li x30, (((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4)*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + li x31, ((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4)*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + add x30, x30, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + add x31, x31, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + vle32.v v0, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v2, (x31) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, (((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2)*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + vrgather.vv v8, v17, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ + vrgather.vv v8, v25, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... // @slothy:sew=32 + addi x29, x29, 8*4*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + vmul.vv v0, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:sew=32 + vmul.vv v0, v25, v8 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=32 + li x29, ((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4)*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + li x30, (((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4) + 4)*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + add x29, x29, x11 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + add x30, x30, x11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ + vle32.v v0, (x29) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=32 + vle32.v v1, (x30) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=32 + li x29, ((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + vrgather.vv v8, v17, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v16, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v19, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v18, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v21, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v20, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v23, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v22, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v16, v8, v16, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v17, v17, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v18, v10, v18, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v19, v19, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v20, v12, v20, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v21, v21, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v22, v14, v22, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v23, v23, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=32 + add x29, x29, x11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + vrgather.vv v8, v25, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v9, v24, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v10, v27, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v11, v26, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v12, v29, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v13, v28, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v14, v31, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=32 + vrgather.vv v15, v30, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v24, v8, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v25, v25, v9, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v26, v10, v26, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v27, v27, v11, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v28, v12, v28, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v29, v29, v13, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v30, v14, v30, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=32 + vmerge.vvm v31, v31, v15, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:sew=32 + addi x29, x29, 8*4*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + vmul.vv v0, v17, v8 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v19, v10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v21, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v23, v14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v17, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v19, v11 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v21, v13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v23, v15 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v17, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v19, v18, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v21, v20, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v23, v22, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v18, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v20, v20, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v22, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:lmul=1 // @slothy:sew=32 + vl8re32.v v8, (x29) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:sew=32 + vs8r.v v16, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ // @slothy:sew=32 + vmul.vv v0, v25, v8 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v2, v27, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v4, v29, v12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... // @slothy:lmul=1 // @slothy:sew=32 + vmul.vv v6, v31, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v1, v25, v9 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v3, v27, v11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v5, v29, v13 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vv v7, v31, v15 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v0, v0, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v2, v2, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v4, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... // @slothy:lmul=1 // @slothy:sew=32 + vmulh.vx v6, v6, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v2, v3, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v4, v5, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v6, v7, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v25, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v27, v26, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v29, v28, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=32 + vsub.vv v31, v30, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v24, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v26, v26, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v28, v28, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:lmul=1 // @slothy:sew=32 + vadd.vv v30, v30, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:lmul=1 // @slothy:sew=32 + vs8r.v v24, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:sew=32 + + // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500 525 550 575 600 625 650 675 700 725 750 775 800 825 850 875 900 925 950 975 1000 1025 1050 1075 1100 1125 1150 1175 1200 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|-- + // vsetivli x7, 4, e32, m1, tu, mu // *.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // li x5, 8380417 // ...........*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, ((0 * 2)+0)*4(x11) // .*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, ((0 * 2)+1)*4(x11) // ..*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x10, (4*0)*4 // *.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x10, (4*0+16)*4 // ...*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v16, (x12) // .......................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v17, (x13) // ........................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // ....*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v18, (x12) // .........................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v19, (x13) // ....................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ..*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ......*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v20, (x12) // ...............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v21, (x13) // .............*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ...*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ........*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v22, (x12) // .................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v23, (x13) // ......................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ....*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // .........*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v24, (x12) // .....*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v25, (x13) // ..............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .....*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // ..........*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v26, (x12) // .........*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v27, (x13) // ...........*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ......*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ............*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v28, (x12) // .......*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v29, (x13) // ................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // .......*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .............*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v30, (x12) // ..................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v31, (x13) // .....................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v24, x7 // ......................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v2, v25, x7 // .................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v26, x7 // ............*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v27, x7 // ..............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v28, x7 // ..........*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v10, v29, x7 // ........................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x7 // ....................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v14, v31, x7 // .......................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v24, x6 // ........*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v25, x6 // ..................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v5, v26, x6 // ...............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v27, x6 // ...................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v28, x6 // ................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v11, v29, x6 // ...................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x6 // .....................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v15, v31, x6 // .........................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ..........................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ..........................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ...........................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ...........................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ............................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ............................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // .............................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // .............................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ..............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ..............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ...............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v10, v11, v10 // ................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v12, v13, v12 // .................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v15, v14 // .................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v24, v16, v0 // ..................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v25, v17, v2 // ..................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v26, v18, v4 // ...................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v19, v6 // ...................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v20, v8 // ....................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v21, v10 // ....................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v30, v22, v12 // .....................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v23, v14 // .....................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ......................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v17, v17, v2 // ......................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v18, v18, v4 // .......................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v19, v19, v6 // .......................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v8 // ........................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v10 // ........................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v12 // .........................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v23, v23, v14 // .........................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (((0 * 2) + 1 * 2)+0)*4(x11) // ..........................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x6, (((0 * 2) + 1 * 2)+1)*4(x11) // ..........................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x29, (((0 * 2) + 1 * 2)+2)*4(x11) // ...........................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (((0 * 2) + 1 * 2)+3)*4(x11) // ...........................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v20, x7 // ............................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v21, x7 // ............................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v22, x7 // .............................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x7 // .............................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v28, x29 // ..............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v29, x29 // ..............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x29 // ...............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x29 // ...............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v20, x6 // ................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v21, x6 // ................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v22, x6 // .................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x6 // .................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v9, v28, x28 // ..................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v11, v29, x28 // ..................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v13, v30, x28 // ...................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x28 // ...................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ....................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ....................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .....................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .....................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // ......................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v10, v10, x5 // ......................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // .......................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // .......................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ........................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ........................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // .........................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .........................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ..........................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v10, v11, v10 // ..........................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v12, v13, v12 // ...........................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // ...........................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v16, v0 // ............................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v17, v2 // ............................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v18, v4 // .............................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v19, v6 // .............................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v24, v8 // ..............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v25, v10 // ..............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v26, v12 // ...............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v27, v14 // ...............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v17, v17, v2 // ................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v18, v18, v4 // .................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v19, v19, v6 // .................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v8 // ..................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v25, v25, v10 // ..................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v26, v26, v12 // ...................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v27, v27, v14 // ...................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, ((((0 * 2) + 1 * 2) + 2 * 2)+0)*4(x11) // ....................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, ((((0 * 2) + 1 * 2) + 2 * 2)+1)*4(x11) // ....................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x29, ((((0 * 2) + 1 * 2) + 2 * 2)+2)*4(x11) // .....................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, ((((0 * 2) + 1 * 2) + 2 * 2)+3)*4(x11) // .....................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, ((((0 * 2) + 1 * 2) + 2 * 2)+4)*4(x11) // ......................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x30, ((((0 * 2) + 1 * 2) + 2 * 2)+5)*4(x11) // ......................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, ((((0 * 2) + 1 * 2) + 2 * 2)+6)*4(x11) // .......................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, ((((0 * 2) + 1 * 2) + 2 * 2)+7)*4(x11) // .......................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v18, x7 // ........................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v19, x7 // ........................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v22, x29 // .........................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x29 // .........................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v26, x31 // ..........................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v10, v27, x31 // ..........................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v12, v30, x16 // ...........................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x16 // ...........................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v18, x6 // ............................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x6 // ............................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x28 // .............................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x28 // .............................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v26, x30 // ..............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v27, x30 // ..............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x15 // ...............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ...............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // ..................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v10, v10, x5 // ..................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // ...................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ...................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ....................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // ....................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // .....................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // .....................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v8, v9, v8 // ......................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v10, v11, v10 // ......................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v12, v13, v12 // .......................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // .......................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v18, v16, v0 // ........................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v17, v2 // ........................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v20, v4 // .........................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v21, v6 // .........................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v24, v8 // ..........................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v25, v10 // ..........................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v30, v28, v12 // ...........................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v29, v14 // ...........................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ............................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ............................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .............................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v6 // .............................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ..............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // ..............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // ...............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // ...............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+0)*4(x11) // ................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+1)*4(x11) // ................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+2)*4(x11) // .................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+3)*4(x11) // .................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+4)*4(x11) // ..................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+5)*4(x11) // ..................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+6)*4(x11) // ...................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+7)*4(x11) // ...................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v17, x7 // ....................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x29 // ....................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v21, x31 // .....................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v23, x16 // .....................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v17, x6 // ......................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v3, v19, x28 // ......................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v5, v21, x30 // .......................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x15 // .......................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ........................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ........................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // .........................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // .........................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ..........................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ..........................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ...........................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...........................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ............................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v2 // ............................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // .............................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // .............................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ..............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ..............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ...............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ...............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+0)*4(x11) // ................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+1)*4(x11) // ................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+2)*4(x11) // .................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+3)*4(x11) // .................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+4)*4(x11) // ..................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+5)*4(x11) // ..................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+6)*4(x11) // ...................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+7)*4(x11) // ...................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (4*0)*4 // ....................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x10, (4*0+16)*4 // ....................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v16, (x12) // .....................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v17, (x13) // .....................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ......................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ......................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v18, (x12) // .......................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v19, (x13) // .......................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ........................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v20, (x12) // .......................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v21, (x13) // ..........................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ..........................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // .............................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v22, (x12) // ......................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v23, (x13) // ...........................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ...........................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v25, x7 // .................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v27, x29 // ...........................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v29, x31 // ........................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // ..........................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v1, v25, x6 // ................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v27, x28 // ...............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v29, x30 // .........................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v31, x15 // .............................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .....................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ....................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ............................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ..............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ..........................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // .......................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ...................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ..................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v25, v24, v0 // ................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v26, v2 // ............................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // ...............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v6 // .....................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // ..............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v2 // .............................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v4 // ...........................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // ........................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v24, (x12) // .................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v25, (x13) // ..................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ..............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v26, (x12) // .................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v27, (x13) // ................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ...............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ....................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v28, (x12) // ...............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v29, (x13) // ..................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // .........................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ......................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v30, (x12) // .............................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v31, (x13) // .........................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, ((0 * 2)+0)*4(x11) // ..................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x6, ((0 * 2)+1)*4(x11) // .................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x10, (4*1)*4 // ........................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x10, (4*1+16)*4 // ............................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v16, (x12) // ..............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v17, (x13) // ............................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ...................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v18, (x12) // ....................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v19, (x13) // ....................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v20, (x12) // ......................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v21, (x13) // ......................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // .......................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .......................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v22, (x12) // ........................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v23, (x13) // ........................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .........................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v24, (x12) // ..........................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v25, (x13) // ..........................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...........................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v26, (x12) // ............................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v27, (x13) // ............................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .............................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .............................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v28, (x12) // ..............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v29, (x13) // ..............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ...............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v30, (x12) // ................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v31, (x13) // ................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v24, x7 // .................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v25, x7 // .................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v26, x7 // ..................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v6, v27, x7 // ..................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v8, v28, x7 // ...................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v29, x7 // ...................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x7 // ....................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v14, v31, x7 // ....................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v24, x6 // .....................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v25, x6 // .....................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v26, x6 // ......................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v7, v27, x6 // ......................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v28, x6 // .......................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v29, x6 // .......................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x6 // ........................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x6 // ........................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .........................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .........................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ..........................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ..........................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v8, v8, x5 // ...........................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ...........................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ............................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ............................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // .............................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .............................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ..............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ..............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ...............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ...............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v15, v14 // ................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v24, v16, v0 // .................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v25, v17, v2 // .................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v26, v18, v4 // ..................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v19, v6 // ..................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v28, v20, v8 // ...................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v21, v10 // ...................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v22, v12 // ....................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v23, v14 // ....................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // .....................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v17, v17, v2 // .....................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v18, v18, v4 // ......................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v19, v19, v6 // ......................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v20, v20, v8 // .......................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v10 // .......................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v12 // ........................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v23, v23, v14 // ........................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (((0 * 2) + 1 * 2)+0)*4(x11) // .........................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (((0 * 2) + 1 * 2)+1)*4(x11) // .........................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (((0 * 2) + 1 * 2)+2)*4(x11) // ..........................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x28, (((0 * 2) + 1 * 2)+3)*4(x11) // ..........................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v0, v20, x7 // ...........................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v21, x7 // ...........................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v22, x7 // ............................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x7 // ............................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v28, x29 // .............................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v29, x29 // .............................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x29 // ..............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x29 // ..............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v20, x6 // ...............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v21, x6 // ...............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v9, v28, x28 // .................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v11, v29, x28 // .................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v13, v30, x28 // ..................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v15, v31, x28 // ..................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ...................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ....................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // .....................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v10, v10, x5 // .....................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v12, v12, x5 // ......................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v14, v14, x5 // ......................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // .........................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // .........................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ..........................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v14, v15, v14 // ..........................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v20, v16, v0 // ...........................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v17, v2 // ...........................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v18, v4 // ............................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v19, v6 // ............................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v24, v8 // .............................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v25, v10 // .............................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v26, v12 // ..............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v27, v14 // ..............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ...............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ...............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v4 // ................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v19, v19, v6 // ................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v8 // .................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v25, v25, v10 // .................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v12 // ..................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v27, v27, v14 // ..................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, ((((0 * 2) + 1 * 2) + 2 * 2)+0)*4(x11) // ...................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, ((((0 * 2) + 1 * 2) + 2 * 2)+1)*4(x11) // ...................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, ((((0 * 2) + 1 * 2) + 2 * 2)+2)*4(x11) // ....................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, ((((0 * 2) + 1 * 2) + 2 * 2)+3)*4(x11) // ....................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, ((((0 * 2) + 1 * 2) + 2 * 2)+4)*4(x11) // .....................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, ((((0 * 2) + 1 * 2) + 2 * 2)+5)*4(x11) // .....................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, ((((0 * 2) + 1 * 2) + 2 * 2)+6)*4(x11) // ......................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x15, ((((0 * 2) + 1 * 2) + 2 * 2)+7)*4(x11) // ......................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v0, v18, x7 // .......................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v19, x7 // .......................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v22, x29 // ........................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x29 // ........................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v26, x31 // .........................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v27, x31 // .........................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x16 // ..........................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v14, v31, x16 // ..........................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v1, v18, x6 // ...........................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x6 // ...........................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x28 // ............................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x28 // ............................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v26, x30 // .............................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v27, x30 // .............................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x15 // ..............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ..............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // .................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v10, v10, x5 // .................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v12, v12, x5 // ..................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v14, v14, x5 // ..................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // ...................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ....................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ....................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v8, v9, v8 // .....................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v10, v11, v10 // .....................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v12, v13, v12 // ......................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v14, v15, v14 // ......................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v18, v16, v0 // .......................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v17, v2 // .......................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v20, v4 // ........................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v21, v6 // ........................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v24, v8 // .........................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v25, v10 // .........................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v12 // ..........................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v29, v14 // ..........................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ...........................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v6 // ............................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // .............................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // .............................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // ..............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // ..............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+0)*4(x11) // ...............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+1)*4(x11) // ...............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+2)*4(x11) // ................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+3)*4(x11) // ................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+4)*4(x11) // ...................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+5)*4(x11) // ......................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+6)*4(x11) // .................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+7)*4(x11) // ..................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v0, v17, x7 // ..................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v2, v19, x29 // ...................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v21, x31 // .......................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x16 // ....................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v17, x6 // .................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v19, x28 // ....................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v21, x30 // ..........................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v7, v23, x15 // .......................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ............................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ........................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // .............................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // .................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v19, v18, v2 // ........................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ..............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ...................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // .....................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+0)*4(x11) // ...............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+1)*4(x11) // ......................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+2)*4(x11) // ...............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+3)*4(x11) // .................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+4)*4(x11) // ...........................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+5)*4(x11) // ..........................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+6)*4(x11) // .........................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+7)*4(x11) // ....................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x10, (4*1)*4 // .....................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x10, (4*1+16)*4 // ......................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v16, (x12) // .......................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v17, (x13) // ......................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v18, (x12) // ...........................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v19, (x13) // ..........................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ............................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v20, (x12) // ........................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v21, (x13) // ..........................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ..................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ....................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v22, (x12) // .........................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v23, (x13) // .....................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ..................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v25, x7 // ............................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // ............................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v29, x31 // .............................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // .............................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v25, x6 // ..............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v27, x28 // ..............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v29, x30 // ...............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v31, x15 // ...............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // ....................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v28, v4 // .....................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // ......................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v4 // .......................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v24, (x12) // ........................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v25, (x13) // ........................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v26, (x12) // ..........................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v27, (x13) // ..........................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v28, (x12) // ............................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v29, (x13) // ............................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .............................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v30, (x12) // ..............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v31, (x13) // ..............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, ((0 * 2)+0)*4(x11) // ...............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, ((0 * 2)+1)*4(x11) // ...............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (4*2)*4 // ................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x10, (4*2+16)*4 // ................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v16, (x12) // .................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v17, (x13) // .................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ..................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ..................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v18, (x12) // ...................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v19, (x13) // ...................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ....................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // ....................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v20, (x12) // .....................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v21, (x13) // .....................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ......................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v22, (x12) // .......................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v23, (x13) // .......................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ........................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v24, (x12) // .........................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v25, (x13) // .........................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..........................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v26, (x12) // ...........................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v27, (x13) // ...........................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ............................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ............................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v28, (x12) // .............................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v29, (x13) // .............................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ..............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v30, (x12) // ...............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v31, (x13) // ...............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x7 // ................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v25, x7 // ................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v26, x7 // .................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v27, x7 // .................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v8, v28, x7 // ..................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v10, v29, x7 // ..................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v12, v30, x7 // ...................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x7 // ...................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v24, x6 // ....................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v25, x6 // ....................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v26, x6 // .....................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v27, x6 // .....................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v9, v28, x6 // ......................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v11, v29, x6 // ......................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v13, v30, x6 // .......................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x6 // .......................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ........................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ........................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // .........................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // .........................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ..........................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v10, v10, x5 // ..........................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // ...........................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ...........................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ............................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // .............................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .............................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ..............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ..............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ...............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // ...............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v24, v16, v0 // ................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v25, v17, v2 // ................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v26, v18, v4 // .................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v19, v6 // .................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v28, v20, v8 // ..................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v29, v21, v10 // ..................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v30, v22, v12 // ...................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v23, v14 // ...................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v17, v17, v2 // ....................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v18, v18, v4 // .....................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v19, v19, v6 // .....................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v20, v20, v8 // ......................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v21, v21, v10 // ......................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v22, v22, v12 // .......................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v23, v23, v14 // .......................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (((0 * 2) + 1 * 2)+0)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (((0 * 2) + 1 * 2)+1)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (((0 * 2) + 1 * 2)+2)*4(x11) // .........................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (((0 * 2) + 1 * 2)+3)*4(x11) // .........................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v20, x7 // ..........................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v2, v21, x7 // ..........................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v4, v22, x7 // ...........................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x7 // ...........................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v28, x29 // ............................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v29, x29 // ............................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x29 // .............................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x29 // .............................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v20, x6 // ..............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v21, x6 // ..............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x6 // ...............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x6 // ...............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v28, x28 // ................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v11, v29, x28 // ................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v13, v30, x28 // .................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v15, v31, x28 // .................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ....................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v10, v10, x5 // ....................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v12, v12, x5 // .....................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v14, v14, x5 // .....................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ......................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ......................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // .......................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .......................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ........................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ........................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // .........................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // .........................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v21, v17, v2 // ..........................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v22, v18, v4 // ...........................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v19, v6 // ...........................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v24, v8 // ............................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v25, v10 // ............................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v26, v12 // .............................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v27, v14 // .............................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ..............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v4 // ...............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v19, v19, v6 // ...............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v25, v25, v10 // ................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v12 // .................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v27, v27, v14 // .................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x7, ((((0 * 2) + 1 * 2) + 2 * 2)+0)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x6, ((((0 * 2) + 1 * 2) + 2 * 2)+1)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x29, ((((0 * 2) + 1 * 2) + 2 * 2)+2)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, ((((0 * 2) + 1 * 2) + 2 * 2)+3)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, ((((0 * 2) + 1 * 2) + 2 * 2)+4)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, ((((0 * 2) + 1 * 2) + 2 * 2)+5)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, ((((0 * 2) + 1 * 2) + 2 * 2)+6)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, ((((0 * 2) + 1 * 2) + 2 * 2)+7)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v18, x7 // ......................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v2, v19, x7 // ......................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v4, v22, x29 // .......................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x29 // .......................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v26, x31 // ........................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v27, x31 // ........................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x16 // .........................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x16 // ....................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v18, x6 // ...........................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x28 // .............................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v26, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v27, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v13, v30, x15 // ............................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ........................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .............................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v12, v12, x5 // ............................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v8, v9, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ...............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ...............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // ............................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v18, v16, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v19, v17, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v22, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v21, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v24, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v25, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v30, v28, v12 // .................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v29, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v25, v25, v10 // ..................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v12 // .................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v29, v29, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+0)*4(x11) // ...........................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+2)*4(x11) // ..........................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+3)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+4)*4(x11) // .........................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+5)*4(x11) // ............................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+6)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+7)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v17, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v19, x29 // .............................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v21, x31 // ...................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v17, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v19, x28 // ....................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v21, x30 // .....................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x15 // .....................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v19, v18, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v21, v20, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // .............................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+0)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+2)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+3)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+4)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+5)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+6)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+7)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x10, (4*2)*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x10, (4*2+16)*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v16, (x12) // ...................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v17, (x13) // ...................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v18, (x12) // .....................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v19, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v20, (x12) // .......................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v21, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v22, (x12) // .........................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v23, (x13) // .........................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v0, v25, x7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v29, x31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v25, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v27, x28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v29, x30 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v31, x15 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v28, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v30, v30, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v24, (x12) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v25, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v26, (x12) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v27, (x13) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x13, x13, 32*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v28, (x12) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v29, (x13) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v30, (x12) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v31, (x13) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, ((0 * 2)+0)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, ((0 * 2)+1)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (4*3)*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x10, (4*3+16)*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v16, (x12) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v17, (x13) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v18, (x12) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v19, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v20, (x12) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v21, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v22, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v23, (x13) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v24, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v25, (x13) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v26, (x12) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v27, (x13) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v28, (x12) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v29, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v30, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v31, (x13) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v25, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v26, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v27, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v8, v28, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v10, v29, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v12, v30, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v14, v31, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v1, v24, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v25, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v26, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v27, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v9, v28, x6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v11, v29, x6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v13, v30, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v15, v31, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v14, v14, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v24, v16, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v17, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v18, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v19, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v28, v20, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v21, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v30, v22, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v19, v19, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v20, v20, v8 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v21, v21, v10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v22, v22, v12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v23, v23, v14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, (((0 * 2) + 1 * 2)+0)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (((0 * 2) + 1 * 2)+1)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (((0 * 2) + 1 * 2)+2)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (((0 * 2) + 1 * 2)+3)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v20, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v21, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v22, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v6, v23, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v8, v28, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v29, x29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v20, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v21, x6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v28, x28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v29, x28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v15, v31, x28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v10, v10, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v8, v9, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v17, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v22, v18, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v23, v19, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v24, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v25, v10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v30, v26, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v27, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v18, v18, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v19, v19, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v27, v27, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x7, ((((0 * 2) + 1 * 2) + 2 * 2)+0)*4(x11) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, ((((0 * 2) + 1 * 2) + 2 * 2)+1)*4(x11) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x29, ((((0 * 2) + 1 * 2) + 2 * 2)+2)*4(x11) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, ((((0 * 2) + 1 * 2) + 2 * 2)+3)*4(x11) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, ((((0 * 2) + 1 * 2) + 2 * 2)+4)*4(x11) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, ((((0 * 2) + 1 * 2) + 2 * 2)+5)*4(x11) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, ((((0 * 2) + 1 * 2) + 2 * 2)+6)*4(x11) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, ((((0 * 2) + 1 * 2) + 2 * 2)+7)*4(x11) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v18, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v22, x29 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x29 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v26, x31 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v27, x31 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x16 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x16 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v18, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v3, v19, x6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v5, v22, x28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v26, x30 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v11, v27, x30 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v13, v30, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v14, v14, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v8, v9, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v15, v14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v18, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v19, v17, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v22, v20, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v26, v24, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v25, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v29, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v21, v21, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v24, v24, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+0)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+1)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+2)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+3)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+4)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+5)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+6)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+7)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v17, x7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v21, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v6, v23, x16 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v1, v17, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v21, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+0)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+1)*4(x11) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+2)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+3)*4(x11) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+4)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+5)*4(x11) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+6)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2)+8+7)*4(x11) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x10, (4*3)*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x10, (4*3+16)*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v16, (x12) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v17, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v18, (x12) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v19, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x12, x12, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x13, x13, 32*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v20, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v21, (x13) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v22, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v23, (x13) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v25, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v2, v27, x29 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v4, v29, x31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v25, x6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v27, x28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v29, x30 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v31, x15 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v25, v24, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v26, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v29, v28, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v28, v28, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v30, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vse32.v v24, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v25, (x13) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v26, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v27, (x13) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x12, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v28, (x12) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vse32.v v29, (x13) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x12, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x13, 32*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v30, (x12) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vse32.v v31, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x14, (((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2)*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (64*0)*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x14, x14, x11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x10, (64*0+4*8)*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, 0*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, 1*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, 2*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x28, 3*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x31, 4*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x30, 5*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x16, 6*4(x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x15, 7*4(x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vl8re32.v v16, (x12) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x14, ((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2)*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v24, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // add x14, x14, x11 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v18, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v22, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v6, v23, x29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v8, v26, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v27, x31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v12, v30, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x16 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v18, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v7, v23, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v26, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v27, x30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v14, v14, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v8, v9, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v15, v14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v18, v16, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v19, v17, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v22, v20, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v26, v24, v8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v25, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v29, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v29, v29, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x7, 0*4(x14) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x6, 1*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, 2*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x28, 3*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, 4*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, 5*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, 6*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x15, 7*4(x14) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v17, x7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v19, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v21, x31 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v23, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v17, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v21, x30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v7, v23, x15 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v20, v20, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x7, (8+0)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, (8+1)*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (8+2)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (8+3)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (8+4)*4(x14) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, (8+5)*4(x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, (8+6)*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x15, (8+7)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v25, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v29, x31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v25, x6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v3, v27, x28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v29, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v31, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v30, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v24, v24, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x29, (((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x30, (((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4)*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x31, ((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4)*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x30, x30, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x31, x31, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v0, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v1, (x30) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vle32.v v2, (x31) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // li x29, (((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2)*4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v17, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v9, v16, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v10, v19, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v18, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v12, v21, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v13, v20, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v14, v23, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v15, v22, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v16, v8, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v17, v17, v9, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v18, v10, v18, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v19, v11, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v12, v20, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v21, v21, v13, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v14, v22, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v23, v23, v15, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v8, v25, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v9, v24, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v26, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v12, v29, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v13, v28, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v14, v31, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v30, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v8, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v28, v12, v28, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v29, v29, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v30, v14, v30, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v31, v31, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vl8re32.v v8, (x29) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x29, x29, 8*4*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v17, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v19, v10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v4, v21, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v6, v23, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v1, v17, v9 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v3, v19, v11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v5, v21, v13 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v7, v23, v15 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v25, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v2, v27, v10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v4, v29, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v6, v31, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v1, v25, v9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v3, v27, v11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v5, v29, v13 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v7, v31, v15 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v26, v26, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x29, ((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x30, (((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4) + 4)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x30, x30, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v0, (x29) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v1, (x30) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x29, ((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2)*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v17, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v19, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v18, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v12, v21, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v13, v20, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v14, v23, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v15, v22, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v17, v9, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v18, v10, v18, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v19, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v20, v12, v20, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v21, v21, v13, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v22, v14, v22, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v23, v23, v15, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v25, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v24, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v26, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v12, v29, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v13, v28, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v14, v31, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v30, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v8, v24, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v28, v12, v28, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v14, v30, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x29, x29, 8*4*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v0, v17, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v2, v19, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v4, v21, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vv v6, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v1, v17, v9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v3, v19, v11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v5, v21, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v7, v23, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vs8r.v v16, (x12) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v25, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v27, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v4, v29, v12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v6, v31, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v1, v25, v9 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v3, v27, v11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v5, v29, v13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v7, v31, v15 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v26, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v28, v28, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v30, v30, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vs8r.v v24, (x13) // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // li x14, (((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x12, x10, (64*1)*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // add x14, x14, x11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x13, x10, (64*1+4*8)*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x7, 0*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x6, 1*4(x14) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // lw x29, 2*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, 3*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x31, 4*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, 5*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x16, 6*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, 7*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v16, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x14, ((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v24, (x13) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // add x14, x14, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v18, x7 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v2, v19, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v4, v22, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v23, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v8, v26, x31 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v10, v27, x31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v12, v30, x16 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v14, v31, x16 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v18, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v19, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v22, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v26, x30 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v27, x30 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v30, x15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v8, v9, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v10, v11, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v12, v13, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v15, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v18, v16, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v19, v17, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v20, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v21, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v26, v24, v8 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v25, v10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v30, v28, v12 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v29, v14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v17, v17, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, 0*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x6, 1*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, 2*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, 3*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, 4*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, 5*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, 6*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, 7*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v17, x7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v19, x29 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v21, x31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v17, x6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v19, x28 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v21, x30 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v17, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v19, v18, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x7, (8+0)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + // lw x6, (8+1)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x29, (8+2)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x28, (8+3)*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x31, (8+4)*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x30, (8+5)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x16, (8+6)*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + // lw x15, (8+7)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v25, x7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v29, x31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v1, v25, x6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v27, x28 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v29, x30 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v31, x15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v25, v24, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v26, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + // li x29, (((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + // li x30, (((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4)*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x31, ((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4)*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x30, x30, x11 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + // add x31, x31, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v0, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v1, (x30) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v2, (x31) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x29, (((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2)*4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v17, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v19, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v18, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v12, v21, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v13, v20, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v14, v23, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v15, v22, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v17, v9, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v18, v10, v18, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v19, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v20, v12, v20, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v21, v21, v13, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v22, v14, v22, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v23, v23, v15, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v25, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v24, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v26, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v12, v29, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v13, v28, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v14, v31, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v30, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v8, v24, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v28, v12, v28, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v14, v30, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x29, x29, 8*4*4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v0, v17, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v2, v19, v10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v4, v21, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vv v6, v23, v14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v1, v17, v9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v3, v19, v11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v5, v21, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v7, v23, v15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v1, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v25, v8 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v27, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v4, v29, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v6, v31, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v1, v25, v9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v3, v27, v11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v5, v29, v13 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v7, v31, v15 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v4, v4, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v25, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v29, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + // li x29, ((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4)*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + // li x30, (((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4) + 4)*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + // add x29, x29, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + // add x30, x30, x11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + // vle32.v v0, (x29) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + // vle32.v v1, (x30) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + // li x29, ((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v17, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v16, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v19, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v18, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v12, v21, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v13, v20, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v14, v23, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v15, v22, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v16, v8, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v17, v9, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v18, v10, v18, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v19, v19, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v20, v12, v20, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v21, v21, v13, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v14, v22, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v23, v23, v15, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ + // add x29, x29, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v25, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v24, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v26, v1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v12, v29, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v13, v28, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v14, v31, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v30, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v8, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v26, v10, v26, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v28, v12, v28, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v29, v29, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v30, v14, v30, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v31, v31, v15, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... + // addi x29, x29, 8*4*4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v17, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v19, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v4, v21, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + // vmul.vv v6, v23, v14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v1, v17, v9 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v3, v19, v11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v5, v21, v13 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v7, v23, v15 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v17, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v19, v18, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v6 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ + // vl8re32.v v8, (x29) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ + // vs8r.v v16, (x12) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v0, v25, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v2, v27, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v4, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v6, v31, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v1, v25, v9 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v3, v27, v11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v5, v29, v13 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v7, v31, v15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ + // vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... + // vs8r.v v24, (x13) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... + // li x14, (((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + // addi x12, x10, (64*2)*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + // add x14, x14, x11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + // addi x13, x10, (64*2+4*8)*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + // lw x7, 0*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + // lw x6, 1*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + // lw x29, 2*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + // lw x28, 3*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + // lw x31, 4*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + // lw x30, 5*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + // lw x16, 6*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + // lw x15, 7*4(x14) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v16, (x12) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + // li x14, ((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2)*4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + // vl8re32.v v24, (x13) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + // add x14, x14, x11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v18, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vmul.vx v2, v19, x7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vmul.vx v4, v22, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + // vmul.vx v6, v23, x29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + // vmul.vx v8, v26, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmul.vx v10, v27, x31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmul.vx v12, v30, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmul.vx v14, v31, x16 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v18, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vmulh.vx v3, v19, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vmulh.vx v5, v22, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + // vmulh.vx v7, v23, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + // vmulh.vx v9, v26, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmulh.vx v11, v27, x30 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmulh.vx v13, v30, x15 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v31, x15 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + // vmulh.vx v10, v10, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v9, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v11, v10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v13, v12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v15, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... + // vsub.vv v18, v16, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. + // vsub.vv v19, v17, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. + // vsub.vv v22, v20, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. + // vsub.vv v23, v21, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. + // vsub.vv v26, v24, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v25, v10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ + // vsub.vv v30, v28, v12 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v29, v14 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vadd.vv v17, v17, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vadd.vv v20, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. + // vadd.vv v21, v21, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v8 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ + // vadd.vv v25, v25, v10 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + // lw x7, 0*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + // lw x6, 1*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + // lw x29, 2*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + // lw x28, 3*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + // lw x31, 4*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + // lw x30, 5*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + // lw x16, 6*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + // lw x15, 7*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v17, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... + // vmul.vx v2, v19, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... + // vmul.vx v4, v21, x31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... + // vmul.vx v6, v23, x16 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v17, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v19, x28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v21, x30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v23, x15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vsub.vv v19, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vsub.vv v21, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. + // vsub.vv v23, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ + // vadd.vv v18, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ + // vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... + // lw x7, (8+0)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + // lw x6, (8+1)*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + // lw x29, (8+2)*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + // lw x28, (8+3)*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + // lw x31, (8+4)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + // lw x30, (8+5)*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + // lw x16, (8+6)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + // lw x15, (8+7)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + // vmul.vx v0, v25, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmul.vx v2, v27, x29 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmul.vx v4, v29, x31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmul.vx v6, v31, x16 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmulh.vx v1, v25, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vmulh.vx v3, v27, x28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vmulh.vx v5, v29, x30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + // vmulh.vx v7, v31, x15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vsub.vv v27, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vsub.vv v29, v28, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + // vsub.vv v31, v30, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + // vadd.vv v26, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + // li x29, (((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + // li x30, (((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4)*4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + // li x31, ((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4)*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + // add x29, x29, x11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + // add x30, x30, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + // add x31, x31, x11 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + // vle32.v v0, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... + // vle32.v v1, (x30) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... + // vle32.v v2, (x31) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + // li x29, (((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + // vrgather.vv v8, v17, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... + // vrgather.vv v10, v19, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... + // vrgather.vv v11, v18, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... + // vrgather.vv v12, v21, v1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... + // vrgather.vv v13, v20, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... + // vrgather.vv v14, v23, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + // vrgather.vv v15, v22, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + // vmerge.vvm v16, v8, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + // vmerge.vvm v17, v17, v9, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + // vmerge.vvm v18, v10, v18, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + // vmerge.vvm v19, v19, v11, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + // vmerge.vvm v20, v12, v20, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. + // vmerge.vvm v21, v21, v13, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. + // vmerge.vvm v22, v14, v22, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + // vmerge.vvm v23, v23, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + // add x29, x29, x11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + // vrgather.vv v8, v25, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... + // vrgather.vv v9, v24, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ + // vrgather.vv v10, v27, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. + // vrgather.vv v11, v26, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... + // vrgather.vv v12, v29, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vrgather.vv v13, v28, v2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + // vrgather.vv v14, v31, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + // vrgather.vv v15, v30, v2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vmerge.vvm v24, v8, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vmerge.vvm v27, v27, v11, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. + // vmerge.vvm v28, v12, v28, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v13, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vmerge.vvm v30, v14, v30, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... + // vl8re32.v v8, (x29) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ + // addi x29, x29, 8*4*4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + // vmul.vv v0, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... + // vmul.vv v2, v19, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... + // vmul.vv v4, v21, v12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... + // vmul.vv v6, v23, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vmulh.vv v1, v17, v9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + // vmulh.vv v3, v19, v11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... + // vmulh.vv v5, v21, v13 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + // vmulh.vv v7, v23, v15 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + // vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ + // vmulh.vx v6, v6, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... + // vsub.vv v4, v5, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ + // vsub.vv v19, v18, v2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... + // vsub.vv v21, v20, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. + // vsub.vv v23, v22, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... + // vadd.vv v18, v18, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ + // vadd.vv v20, v20, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vadd.vv v22, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. + // vl8re32.v v8, (x29) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ + // vmul.vv v0, v25, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... + // vmul.vv v2, v27, v10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vmul.vv v4, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... + // vmul.vv v6, v31, v14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + // vmulh.vv v1, v25, v9 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + // vmulh.vv v3, v27, v11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + // vmulh.vv v5, v29, v13 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + // vmulh.vv v7, v31, v15 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + // vsub.vv v2, v3, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ + // vsub.vv v6, v7, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ + // vsub.vv v25, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... + // vsub.vv v27, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... + // vsub.vv v29, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vsub.vv v31, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vadd.vv v24, v24, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + // vadd.vv v26, v26, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + // vadd.vv v28, v28, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ + // vadd.vv v30, v30, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ + // li x29, ((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + // li x30, (((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4) + 4)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + // add x29, x29, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + // add x30, x30, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + // vle32.v v0, (x29) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... + // vle32.v v1, (x30) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... + // li x29, ((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2)*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + // vrgather.vv v8, v17, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + // vrgather.vv v9, v16, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + // vrgather.vv v10, v19, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + // vrgather.vv v11, v18, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + // vrgather.vv v12, v21, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + // vrgather.vv v13, v20, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + // vrgather.vv v14, v23, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + // vrgather.vv v15, v22, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vmerge.vvm v17, v17, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... + // vmerge.vvm v18, v10, v18, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... + // vmerge.vvm v19, v19, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmerge.vvm v20, v12, v20, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmerge.vvm v21, v21, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. + // vmerge.vvm v22, v14, v22, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. + // vmerge.vvm v23, v23, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + // add x29, x29, x11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + // vrgather.vv v8, v25, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + // vrgather.vv v9, v24, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vrgather.vv v11, v26, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vrgather.vv v12, v29, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + // vrgather.vv v13, v28, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + // vrgather.vv v14, v31, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ + // vrgather.vv v15, v30, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ + // vmerge.vvm v24, v8, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... + // vmerge.vvm v25, v25, v9, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vmerge.vvm v28, v12, v28, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + // vmerge.vvm v29, v29, v13, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + // vmerge.vvm v30, v14, v30, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ + // vmerge.vvm v31, v31, v15, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ + // vl8re32.v v8, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + // addi x29, x29, 8*4*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + // vmul.vv v0, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + // vmul.vv v2, v19, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + // vmul.vv v4, v21, v12 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + // vmul.vv v6, v23, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + // vmulh.vv v1, v17, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + // vmulh.vv v3, v19, v11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + // vmulh.vv v5, v21, v13 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + // vmulh.vv v7, v23, v15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + // vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + // vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + // vsub.vv v17, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + // vsub.vv v19, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + // vsub.vv v21, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. + // vsub.vv v23, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + // vadd.vv v18, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + // vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + // vadd.vv v22, v22, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + // vl8re32.v v8, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vs8r.v v16, (x12) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vmul.vv v0, v25, v8 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + // vmul.vv v2, v27, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + // vmul.vv v4, v29, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ + // vmul.vv v6, v31, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ + // vmulh.vv v1, v25, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + // vmulh.vv v3, v27, v11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + // vmulh.vv v5, v29, v13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... + // vmulh.vv v7, v31, v15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + // vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + // vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vsub.vv v0, v1, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... + // vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... + // vsub.vv v4, v5, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + // vsub.vv v6, v7, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + // vsub.vv v25, v24, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. + // vsub.vv v27, v26, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. + // vsub.vv v29, v28, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ + // vsub.vv v31, v30, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ + // vadd.vv v24, v24, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... + // vadd.vv v26, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... + // vadd.vv v28, v28, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vadd.vv v30, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vs8r.v v24, (x13) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + // li x14, (((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + // addi x12, x10, (64*3)*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + // add x14, x14, x11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + // addi x13, x10, (64*3+4*8)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + // lw x7, 0*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + // lw x6, 1*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + // lw x29, 2*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + // lw x28, 3*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + // lw x31, 4*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + // lw x30, 5*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + // lw x16, 6*4(x14) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + // lw x15, 7*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + // vl8re32.v v16, (x12) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + // li x14, ((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2)*4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + // vl8re32.v v24, (x13) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + // add x14, x14, x11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + // vmul.vx v0, v18, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + // vmul.vx v2, v19, x7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vmul.vx v4, v22, x29 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vmul.vx v6, v23, x29 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... + // vmul.vx v8, v26, x31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... + // vmul.vx v10, v27, x31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vmul.vx v12, v30, x16 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vmul.vx v14, v31, x16 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. + // vmulh.vx v1, v18, x6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. + // vmulh.vx v3, v19, x6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ + // vmulh.vx v5, v22, x28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ + // vmulh.vx v7, v23, x28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + // vmulh.vx v9, v26, x30 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + // vmulh.vx v11, v27, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vmulh.vx v13, v30, x15 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vmulh.vx v15, v31, x15 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. + // vmulh.vx v2, v2, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + // vmulh.vx v4, v4, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + // vmulh.vx v6, v6, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + // vmulh.vx v8, v8, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + // vmulh.vx v10, v10, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vmulh.vx v12, v12, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vmulh.vx v14, v14, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... + // vsub.vv v0, v1, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... + // vsub.vv v2, v3, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + // vsub.vv v4, v5, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + // vsub.vv v6, v7, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + // vsub.vv v8, v9, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + // vsub.vv v10, v11, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... + // vsub.vv v12, v13, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... + // vsub.vv v14, v15, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + // vsub.vv v18, v16, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + // vsub.vv v19, v17, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vsub.vv v22, v20, v4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vsub.vv v23, v21, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... + // vsub.vv v26, v24, v8 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... + // vsub.vv v27, v25, v10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vsub.vv v30, v28, v12 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vsub.vv v31, v29, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. + // vadd.vv v16, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. + // vadd.vv v17, v17, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ + // vadd.vv v20, v20, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ + // vadd.vv v21, v21, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + // vadd.vv v24, v24, v8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + // vadd.vv v25, v25, v10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vadd.vv v28, v28, v12 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vadd.vv v29, v29, v14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + // lw x7, 0*4(x14) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + // lw x6, 1*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + // lw x29, 2*4(x14) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + // lw x28, 3*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + // lw x31, 4*4(x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + // lw x30, 5*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + // lw x16, 6*4(x14) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + // lw x15, 7*4(x14) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + // vmul.vx v0, v17, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + // vmul.vx v2, v19, x29 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ + // vmul.vx v4, v21, x31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ + // vmul.vx v6, v23, x16 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + // vmulh.vx v1, v17, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... + // vmulh.vx v3, v19, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + // vmulh.vx v5, v21, x30 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vmulh.vx v7, v23, x15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + // vmulh.vx v0, v0, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + // vmulh.vx v4, v4, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... + // vmulh.vx v6, v6, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ + // vsub.vv v0, v1, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vsub.vv v2, v3, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ + // vsub.vv v4, v5, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + // vsub.vv v6, v7, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + // vsub.vv v17, v16, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + // vsub.vv v19, v18, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. + // vsub.vv v21, v20, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vsub.vv v23, v22, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... + // vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... + // vadd.vv v18, v18, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. + // vadd.vv v20, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + // vadd.vv v22, v22, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... + // lw x7, (8+0)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + // lw x6, (8+1)*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + // lw x29, (8+2)*4(x14) // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + // lw x28, (8+3)*4(x14) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + // lw x31, (8+4)*4(x14) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + // lw x30, (8+5)*4(x14) // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + // lw x16, (8+6)*4(x14) // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + // lw x15, (8+7)*4(x14) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + // vmul.vx v0, v25, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + // vmul.vx v2, v27, x29 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... + // vmul.vx v4, v29, x31 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + // vmul.vx v6, v31, x16 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + // vmulh.vx v1, v25, x6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + // vmulh.vx v3, v27, x28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vmulh.vx v5, v29, x30 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vmulh.vx v7, v31, x15 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... + // vmulh.vx v0, v0, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + // vmulh.vx v2, v2, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... + // vmulh.vx v4, v4, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... + // vmulh.vx v6, v6, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vsub.vv v0, v1, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vsub.vv v2, v3, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... + // vsub.vv v4, v5, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... + // vsub.vv v6, v7, v6 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + // vsub.vv v25, v24, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ + // vsub.vv v27, v26, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + // vsub.vv v29, v28, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + // vsub.vv v31, v30, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... + // vadd.vv v24, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... + // vadd.vv v26, v26, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... + // vadd.vv v28, v28, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vadd.vv v30, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. + // li x29, (((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2)*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + // li x30, (((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4)*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + // li x31, ((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4)*4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + // add x29, x29, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + // add x30, x30, x11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + // add x31, x31, x11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vle32.v v0, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vle32.v v1, (x30) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + // vle32.v v2, (x31) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + // li x29, (((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2)*4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + // vrgather.vv v8, v17, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + // vrgather.vv v9, v16, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... + // vrgather.vv v10, v19, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... + // vrgather.vv v11, v18, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + // vrgather.vv v12, v21, v1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + // vrgather.vv v13, v20, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... + // vrgather.vv v14, v23, v1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... + // vrgather.vv v15, v22, v2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vmerge.vvm v17, v17, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + // vmerge.vvm v18, v10, v18, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + // vmerge.vvm v19, v19, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vmerge.vvm v20, v12, v20, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vmerge.vvm v21, v21, v13, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. + // vmerge.vvm v22, v14, v22, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. + // vmerge.vvm v23, v23, v15, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ + // add x29, x29, x11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ + // vrgather.vv v8, v25, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... + // vrgather.vv v9, v24, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... + // vrgather.vv v10, v27, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vrgather.vv v11, v26, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vrgather.vv v12, v29, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + // vrgather.vv v13, v28, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + // vrgather.vv v14, v31, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ + // vrgather.vv v15, v30, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ + // vmerge.vvm v24, v8, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + // vmerge.vvm v25, v25, v9, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + // vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + // vmerge.vvm v27, v27, v11, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + // vmerge.vvm v28, v12, v28, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + // vmerge.vvm v29, v29, v13, v0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + // vmerge.vvm v30, v14, v30, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ + // vmerge.vvm v31, v31, v15, v0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ + // vl8re32.v v8, (x29) // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + // addi x29, x29, 8*4*4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + // vmul.vv v0, v17, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + // vmul.vv v2, v19, v10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + // vmul.vv v4, v21, v12 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + // vmul.vv v6, v23, v14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + // vmulh.vv v1, v17, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + // vmulh.vv v3, v19, v11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + // vmulh.vv v5, v21, v13 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + // vmulh.vv v7, v23, v15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + // vmulh.vx v0, v0, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. + // vmulh.vx v2, v2, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. + // vmulh.vx v4, v4, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. + // vmulh.vx v6, v6, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. + // vsub.vv v0, v1, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + // vsub.vv v2, v3, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + // vsub.vv v4, v5, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + // vsub.vv v6, v7, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + // vsub.vv v17, v16, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vsub.vv v19, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vsub.vv v21, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. + // vsub.vv v23, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. + // vadd.vv v16, v16, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + // vadd.vv v18, v18, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + // vadd.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... + // vadd.vv v22, v22, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... + // vl8re32.v v8, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vmul.vv v0, v25, v8 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vmul.vv v2, v27, v10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + // vmul.vv v4, v29, v12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + // vmul.vv v6, v31, v14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + // vmulh.vv v1, v25, v9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + // vmulh.vv v3, v27, v11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + // vmulh.vv v5, v29, v13 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + // vmulh.vv v7, v31, v15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + // vmulh.vx v0, v0, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + // vmulh.vx v2, v2, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + // vmulh.vx v4, v4, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + // vmulh.vx v6, v6, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vsub.vv v0, v1, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vsub.vv v2, v3, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... + // vsub.vv v4, v5, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... + // vsub.vv v6, v7, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vsub.vv v25, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vsub.vv v27, v26, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + // vsub.vv v29, v28, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + // vsub.vv v31, v30, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ + // vadd.vv v24, v24, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ + // vadd.vv v26, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... + // vadd.vv v28, v28, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... + // vadd.vv v30, v30, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + // li x29, ((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4)*4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + // li x30, (((((((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4) + 4) + 4) + 4)*4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + // add x29, x29, x11 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + // add x30, x30, x11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ + // vle32.v v0, (x29) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ + // vle32.v v1, (x30) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + // li x29, ((((((((((((((((((((0 * 2) + 1 * 2) + 2 * 2) + 4 * 2) + 8 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2) + 32 * 2) + 4 * 2) + 8 * 2) + 16 * 2 * 2)*4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + // vrgather.vv v8, v17, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vrgather.vv v9, v16, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vrgather.vv v10, v19, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... + // vrgather.vv v11, v18, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... + // vrgather.vv v12, v21, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ + // vrgather.vv v13, v20, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ + // vrgather.vv v14, v23, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + // vrgather.vv v15, v22, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + // vmerge.vvm v16, v8, v16, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + // vmerge.vvm v17, v17, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + // vmerge.vvm v18, v10, v18, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + // vmerge.vvm v19, v19, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + // vmerge.vvm v20, v12, v20, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vmerge.vvm v21, v21, v13, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vmerge.vvm v22, v14, v22, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + // vmerge.vvm v23, v23, v15, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + // add x29, x29, x11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vrgather.vv v8, v25, v1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vrgather.vv v9, v24, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. + // vrgather.vv v10, v27, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. + // vrgather.vv v11, v26, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ + // vrgather.vv v12, v29, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ + // vrgather.vv v13, v28, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... + // vrgather.vv v14, v31, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... + // vrgather.vv v15, v30, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vmerge.vvm v24, v8, v24, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vmerge.vvm v25, v25, v9, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmerge.vvm v26, v10, v26, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmerge.vvm v27, v27, v11, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ + // vmerge.vvm v28, v12, v28, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ + // vmerge.vvm v29, v29, v13, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... + // vmerge.vvm v30, v14, v30, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... + // vmerge.vvm v31, v31, v15, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + // vl8re32.v v8, (x29) // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + // addi x29, x29, 8*4*4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + // vmul.vv v0, v17, v8 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + // vmul.vv v2, v19, v10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ + // vmul.vv v4, v21, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ + // vmul.vv v6, v23, v14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... + // vmulh.vv v1, v17, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... + // vmulh.vv v3, v19, v11 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + // vmulh.vv v5, v21, v13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + // vmulh.vv v7, v23, v15 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + // vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + // vmulh.vx v2, v2, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vmulh.vx v4, v4, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vmulh.vx v6, v6, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + // vsub.vv v0, v1, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + // vsub.vv v2, v3, v2 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vsub.vv v4, v5, v4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vsub.vv v6, v7, v6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + // vsub.vv v17, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + // vsub.vv v19, v18, v2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ + // vsub.vv v21, v20, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ + // vsub.vv v23, v22, v6 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + // vadd.vv v16, v16, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + // vadd.vv v18, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vadd.vv v20, v20, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vadd.vv v22, v22, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + // vl8re32.v v8, (x29) // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + // vs8r.v v16, (x12) // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + // vmul.vv v0, v25, v8 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + // vmul.vv v2, v27, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + // vmul.vv v4, v29, v12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + // vmul.vv v6, v31, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vmulh.vv v1, v25, v9 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vmulh.vv v3, v27, v11 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + // vmulh.vv v5, v29, v13 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + // vmulh.vv v7, v31, v15 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ + // vmulh.vx v0, v0, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ + // vmulh.vx v2, v2, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + // vmulh.vx v4, v4, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + // vmulh.vx v6, v6, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... + // vsub.vv v0, v1, v0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... + // vsub.vv v2, v3, v2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... + // vsub.vv v4, v5, v4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... + // vsub.vv v6, v7, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vsub.vv v25, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vsub.vv v27, v26, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... + // vsub.vv v29, v28, v4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... + // vsub.vv v31, v30, v6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vadd.vv v24, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vadd.vv v26, v26, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + // vadd.vv v28, v28, v4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + // vadd.vv v30, v30, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* + // vs8r.v v24, (x13) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* + + end: + + +ret diff --git a/examples/opt/riscv/ntt_dilithium/ntt_rvv_opt_c908.s b/examples/opt/riscv/ntt_dilithium/ntt_rvv_opt_c908.s new file mode 100644 index 000000000..df6196d1b --- /dev/null +++ b/examples/opt/riscv/ntt_dilithium/ntt_rvv_opt_c908.s @@ -0,0 +1,1982 @@ +#define _ZETA_EXP_0TO3_L0 (0 * 2) +#define _ZETA_EXP_0TO3_L1 (_ZETA_EXP_0TO3_L0 + 1 * 2) +#define _ZETA_EXP_0TO3_L2 (_ZETA_EXP_0TO3_L1 + 2 * 2) +#define _ZETA_EXP_0TO3_L3 (_ZETA_EXP_0TO3_L2 + 4 * 2) +#define _ZETA_EXP_4TO7_P0_L4 (_ZETA_EXP_0TO3_L3 + 8 * 2) +#define _ZETA_EXP_4TO7_P0_L5 (_ZETA_EXP_4TO7_P0_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P0_L6 (_ZETA_EXP_4TO7_P0_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P0_L7 (_ZETA_EXP_4TO7_P0_L6 + 16 * 2 * 2) +#define _ZETA_EXP_4TO7_P1_L4 (_ZETA_EXP_4TO7_P0_L7 + 32 * 2) +#define _ZETA_EXP_4TO7_P1_L5 (_ZETA_EXP_4TO7_P1_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P1_L6 (_ZETA_EXP_4TO7_P1_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P1_L7 (_ZETA_EXP_4TO7_P1_L6 + 16 * 2 * 2) +#define _ZETA_EXP_4TO7_P2_L4 (_ZETA_EXP_4TO7_P1_L7 + 32 * 2) +#define _ZETA_EXP_4TO7_P2_L5 (_ZETA_EXP_4TO7_P2_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P2_L6 (_ZETA_EXP_4TO7_P2_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P2_L7 (_ZETA_EXP_4TO7_P2_L6 + 16 * 2 * 2) +#define _ZETA_EXP_4TO7_P3_L4 (_ZETA_EXP_4TO7_P2_L7 + 32 * 2) +#define _ZETA_EXP_4TO7_P3_L5 (_ZETA_EXP_4TO7_P3_L4 + 4 * 2) +#define _ZETA_EXP_4TO7_P3_L6 (_ZETA_EXP_4TO7_P3_L5 + 8 * 2) +#define _ZETA_EXP_4TO7_P3_L7 (_ZETA_EXP_4TO7_P3_L6 + 16 * 2 * 2) +#define _MASK_1100 (_ZETA_EXP_4TO7_P3_L7 + 32 * 2) +#define _MASK_1010 (_MASK_1100 + 4) +#define _MASK_0101 (_MASK_1010 + 4) +#define _MASK_2323 (_MASK_0101 + 4) +#define _MASK_1032 (_MASK_2323 + 4) +#define _ZETA_EXP_INTT_0TO3_P0_L0 (_MASK_1032 + 4) +#define _ZETA_EXP_INTT_0TO3_P0_L1 (_ZETA_EXP_INTT_0TO3_P0_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P0_L2 (_ZETA_EXP_INTT_0TO3_P0_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P0_L3 (_ZETA_EXP_INTT_0TO3_P0_L2 + 8 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L0 (_ZETA_EXP_INTT_0TO3_P0_L3 + 4 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L1 (_ZETA_EXP_INTT_0TO3_P1_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L2 (_ZETA_EXP_INTT_0TO3_P1_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P1_L3 (_ZETA_EXP_INTT_0TO3_P1_L2 + 8 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L0 (_ZETA_EXP_INTT_0TO3_P1_L3 + 4 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L1 (_ZETA_EXP_INTT_0TO3_P2_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L2 (_ZETA_EXP_INTT_0TO3_P2_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P2_L3 (_ZETA_EXP_INTT_0TO3_P2_L2 + 8 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L0 (_ZETA_EXP_INTT_0TO3_P2_L3 + 4 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L1 (_ZETA_EXP_INTT_0TO3_P3_L0 + 32 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L2 (_ZETA_EXP_INTT_0TO3_P3_L1 + 16 * 2 * 2) +#define _ZETA_EXP_INTT_0TO3_P3_L3 (_ZETA_EXP_INTT_0TO3_P3_L2 + 8 * 2) +#define _ZETA_EXP_INTT_4TO7_L4 (_ZETA_EXP_INTT_0TO3_P3_L3 + 4 * 2) +#define _ZETA_EXP_INTT_4TO7_L5 (_ZETA_EXP_INTT_4TO7_L4 + 8 * 2) +#define _ZETA_EXP_INTT_4TO7_L6 (_ZETA_EXP_INTT_4TO7_L5 + 4 * 2) +#define _ZETA_EXP_INTT_4TO7_L7 (_ZETA_EXP_INTT_4TO7_L6 + 2 * 2) + +// [a0,a1,a2,a3]+[a4,a5,a6,a7] -> [a0,a1,a4,a5]+[a2,a3,a6,a7] +// related masks are ready for using +// v0: _MASK_1100, vm0/vm1: _MASK_0101/_MASK_2323 +.macro shuffle2 in0_0, in0_1, tm0_0, tm0_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 // [a4,a5,a4,a5] + vrgather.vv \tm0_1, \in0_0, \vm1 // [a2,a3,a2,a3] + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 +.endm + +.macro shuffle2_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle2_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm1 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +// [a0,a1,a4,a5]+[a2,a3,a6,a7] -> [a0,a2,a4,a6]+[a1,a3,a5,a7] +// related masks are ready for using +// v0: _MASK_1010, vm0: _MASK_1032 +.macro shuffle1 in0_0, in0_1, tm0_0, tm0_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 // [a3,a2,a7,a6] + vrgather.vv \tm0_1, \in0_0, \vm0 // [a1,a0,a5,a4] + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 +.endm + +.macro shuffle1_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle1_x4 in0_0, in0_1, in1_0, in1_1, in2_0, in2_1, in3_0, in3_1, tm0_0, tm0_1, tm1_0, tm1_1, tm2_0, tm2_1, tm3_0, tm3_1, vm0 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm0 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm0 + vrgather.vv \tm2_0, \in2_1, \vm0 + vrgather.vv \tm2_1, \in2_0, \vm0 + vrgather.vv \tm3_0, \in3_1, \vm0 + vrgather.vv \tm3_1, \in3_0, \vm0 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 + vmerge.vvm \in2_0, \tm2_0, \in2_0, v0 + vmerge.vvm \in2_1, \in2_1, \tm2_1, v0 + vmerge.vvm \in3_0, \tm3_0, \in3_0, v0 + vmerge.vvm \in3_1, \in3_1, \tm3_1, v0 +.endm + +.macro tomont va0, xb, xbqinv, xq, vt0 + vmul.vx \vt0, \va0, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \vt0, \vt0, \xq + vsub.vv \va0, \va0, \vt0 +.endm + +.macro tomont_x2 va0, va1, xb, xbqinv, xq, vt0, vt1 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 +.endm + +.macro tomont_x4 va0, va1, va2, va3, xb, xbqinv, xq, vt0, vt1, vt2, vt3 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 +.endm + +.macro tomont_x8 va0, va1, va2, va3, va4, va5, va6, va7, xb, xbqinv, xq, vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vx \vt0, \va0, \xbqinv + vmul.vx \vt1, \va1, \xbqinv + vmul.vx \vt2, \va2, \xbqinv + vmul.vx \vt3, \va3, \xbqinv + vmul.vx \vt4, \va4, \xbqinv + vmul.vx \vt5, \va5, \xbqinv + vmul.vx \vt6, \va6, \xbqinv + vmul.vx \vt7, \va7, \xbqinv + vmulh.vx \va0, \va0, \xb + vmulh.vx \va1, \va1, \xb + vmulh.vx \va2, \va2, \xb + vmulh.vx \va3, \va3, \xb + vmulh.vx \va4, \va4, \xb + vmulh.vx \va5, \va5, \xb + vmulh.vx \va6, \va6, \xb + vmulh.vx \va7, \va7, \xb + vmulh.vx \vt0, \vt0, \xq + vmulh.vx \vt1, \vt1, \xq + vmulh.vx \vt2, \vt2, \xq + vmulh.vx \vt3, \vt3, \xq + vmulh.vx \vt4, \vt4, \xq + vmulh.vx \vt5, \vt5, \xq + vmulh.vx \vt6, \vt6, \xq + vmulh.vx \vt7, \vt7, \xq + vsub.vv \va0, \va0, \vt0 + vsub.vv \va1, \va1, \vt1 + vsub.vv \va2, \va2, \vt2 + vsub.vv \va3, \va3, \vt3 + vsub.vv \va4, \va4, \vt4 + vsub.vv \va5, \va5, \vt5 + vsub.vv \va6, \va6, \vt6 + vsub.vv \va7, \va7, \vt7 +.endm + +.macro montmul_ref vr0, va0, vb0, xq, xqinv, vt0 + vmul.vv \vr0, \va0, \vb0 + vmul.vx \vr0, \vr0, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vv \vt0, \va0, \vb0 + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_ref_x2 vr0, vr1, va0, va1, vb0, vb1, xq, xqinv, vt0, vt1 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 +.endm + +.macro montmul_ref_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro montmul_ref_x8 vr0, vr1, vr2, vr3, vr4, vr5, vr6, vr7, va0, va1, va2, va3, va4, va5, va6, va7, vb0, vb1, vb2, vb3, vb4, vb5, vb6, vb7, xq, xqinv, vt0, vt1, vt2, vt3, vt4, vt5, vt6, vt7 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vv \vr4, \va4, \vb4 + vmul.vv \vr5, \va5, \vb5 + vmul.vv \vr6, \va6, \vb6 + vmul.vv \vr7, \va7, \vb7 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmul.vx \vr4, \vr4, \xqinv + vmul.vx \vr5, \vr5, \xqinv + vmul.vx \vr6, \vr6, \xqinv + vmul.vx \vr7, \vr7, \xqinv + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vmulh.vx \vr4, \vr4, \xq + vmulh.vx \vr5, \vr5, \xq + vmulh.vx \vr6, \vr6, \xq + vmulh.vx \vr7, \vr7, \xq + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vv \vt4, \va4, \vb4 + vmulh.vv \vt5, \va5, \vb5 + vmulh.vv \vt6, \va6, \vb6 + vmulh.vv \vt7, \va7, \vb7 + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 + vsub.vv \vr4, \vt4, \vr4 + vsub.vv \vr5, \vt5, \vr5 + vsub.vv \vr6, \vt6, \vr6 + vsub.vv \vr7, \vt7, \vr7 +.endm + +.macro ct_bfu va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmulh.vv \vt0_1, \va0_1, \vzeta0 + vmulh.vv \vt1_1, \va1_1, \vzeta1 + vmulh.vv \vt2_1, \va2_1, \vzeta2 + vmulh.vv \vt3_1, \va3_1, \vzeta3 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 +.endm + +.macro ct_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmul.vx \vt2_0, \va2_1, \xzetaqinv2 + vmul.vx \vt3_0, \va3_1, \xzetaqinv3 + vmul.vx \vt4_0, \va4_1, \xzetaqinv4 + vmul.vx \vt5_0, \va5_1, \xzetaqinv5 + vmul.vx \vt6_0, \va6_1, \xzetaqinv6 + vmul.vx \vt7_0, \va7_1, \xzetaqinv7 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt2_1, \va2_1, \xzeta2 + vmulh.vx \vt3_1, \va3_1, \xzeta3 + vmulh.vx \vt4_1, \va4_1, \xzeta4 + vmulh.vx \vt5_1, \va5_1, \xzeta5 + vmulh.vx \vt6_1, \va6_1, \xzeta6 + vmulh.vx \vt7_1, \va7_1, \xzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \vt2_0, \vt2_1, \vt2_0 + vsub.vv \vt3_0, \vt3_1, \vt3_0 + vsub.vv \vt4_0, \vt4_1, \vt4_0 + vsub.vv \vt5_0, \vt5_1, \vt5_0 + vsub.vv \vt6_0, \vt6_1, \vt6_0 + vsub.vv \vt7_0, \vt7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 +.endm + +.macro gs_bfu_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_vv_x4 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmulh.vv \vt0_1, \vt0_0, \vzeta0 + vmulh.vv \vt1_1, \vt1_0, \vzeta1 + vmulh.vv \vt2_1, \vt2_0, \vzeta2 + vmulh.vv \vt3_1, \vt3_0, \vzeta3 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 +.endm + +.macro gs_bfu_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq, vt0_0, vt0_1, vt1_0, vt1_1, vt2_0, vt2_1, vt3_0, vt3_1, vt4_0, vt4_1, vt5_0, vt5_1, vt6_0, vt6_1, vt7_0, vt7_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmul.vx \va1_1, \vt1_0, \xzetaqinv1 + vmul.vx \va2_1, \vt2_0, \xzetaqinv2 + vmul.vx \va3_1, \vt3_0, \xzetaqinv3 + vmul.vx \va4_1, \vt4_0, \xzetaqinv4 + vmul.vx \va5_1, \vt5_0, \xzetaqinv5 + vmul.vx \va6_1, \vt6_0, \xzetaqinv6 + vmul.vx \va7_1, \vt7_0, \xzetaqinv7 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \vt1_1, \vt1_0, \xzeta1 + vmulh.vx \vt2_1, \vt2_0, \xzeta2 + vmulh.vx \vt3_1, \vt3_0, \xzeta3 + vmulh.vx \vt4_1, \vt4_0, \xzeta4 + vmulh.vx \vt5_1, \vt5_0, \xzeta5 + vmulh.vx \vt6_1, \vt6_0, \xzeta6 + vmulh.vx \vt7_1, \vt7_0, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 + vsub.vv \va1_1, \vt1_1, \va1_1 + vsub.vv \va2_1, \vt2_1, \va2_1 + vsub.vv \va3_1, \vt3_1, \va3_1 + vsub.vv \va4_1, \vt4_1, \va4_1 + vsub.vv \va5_1, \vt5_1, \va5_1 + vsub.vv \va6_1, \vt6_1, \va6_1 + vsub.vv \va7_1, \vt7_1, \va7_1 +.endm + +.macro ntt_8l_level0to3_rvv off + lw t2, (_ZETA_EXP_0TO3_L0+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L0+1)*4(a1) + addi a0, a0, (4*\off)*4 + vle32.v v16, (a0)// addi a0, a0, 16*4 + vle32.v v17, (a0)// addi a0, a0, 16*4 + vle32.v v18, (a0)// addi a0, a0, 16*4 + vle32.v v19, (a0)// addi a0, a0, 16*4 + vle32.v v20, (a0)// addi a0, a0, 16*4 + vle32.v v21, (a0)// addi a0, a0, 16*4 + vle32.v v22, (a0)// addi a0, a0, 16*4 + vle32.v v23, (a0)// addi a0, a0, 16*4 + vle32.v v24, (a0)// addi a0, a0, 16*4 + vle32.v v25, (a0)// addi a0, a0, 16*4 + vle32.v v26, (a0)// addi a0, a0, 16*4 + vle32.v v27, (a0)// addi a0, a0, 16*4 + vle32.v v28, (a0)// addi a0, a0, 16*4 + vle32.v v29, (a0)// addi a0, a0, 16*4 + vle32.v v30, (a0)// addi a0, a0, 16*4 + vle32.v v31, (a0)// addi a0, a0, -(16*15)*4 + // level0 + ct_bfu_x8 v16,v24,v17,v25,v18,v26,v19,v27, v20,v28,v21,v29,v22,v30,v23,v31, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level1 + lw t2, (_ZETA_EXP_0TO3_L1+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L1+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L1+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L1+3)*4(a1) + ct_bfu_x8 v16,v20,v17,v21,v18,v22,v19,v23, v24,v28,v25,v29,v26,v30,v27,v31, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level2 + lw t2, (_ZETA_EXP_0TO3_L2+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L2+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L2+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L2+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L2+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L2+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L2+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L2+7)*4(a1) + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level3 + lw t2, (_ZETA_EXP_0TO3_L3+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+7)*4(a1) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (_ZETA_EXP_0TO3_L3+8+0)*4(a1) + lw t1, (_ZETA_EXP_0TO3_L3+8+1)*4(a1) + lw t4, (_ZETA_EXP_0TO3_L3+8+2)*4(a1) + lw t3, (_ZETA_EXP_0TO3_L3+8+3)*4(a1) + lw t6, (_ZETA_EXP_0TO3_L3+8+4)*4(a1) + lw t5, (_ZETA_EXP_0TO3_L3+8+5)*4(a1) + lw a6, (_ZETA_EXP_0TO3_L3+8+6)*4(a1) + lw a5, (_ZETA_EXP_0TO3_L3+8+7)*4(a1) + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v16, (a0)// addi a0, a0, 16*4 + vse32.v v17, (a0)// addi a0, a0, 16*4 + vse32.v v18, (a0)// addi a0, a0, 16*4 + vse32.v v19, (a0)// addi a0, a0, 16*4 + vse32.v v20, (a0)// addi a0, a0, 16*4 + vse32.v v21, (a0)// addi a0, a0, 16*4 + vse32.v v22, (a0)// addi a0, a0, 16*4 + vse32.v v23, (a0)// addi a0, a0, 16*4 + vse32.v v24, (a0)// addi a0, a0, 16*4 + vse32.v v25, (a0)// addi a0, a0, 16*4 + vse32.v v26, (a0)// addi a0, a0, 16*4 + vse32.v v27, (a0)// addi a0, a0, 16*4 + vse32.v v28, (a0)// addi a0, a0, 16*4 + vse32.v v29, (a0)// addi a0, a0, 16*4 + vse32.v v30, (a0)// addi a0, a0, 16*4 + vse32.v v31, (a0)// addi a0, a0, -(4*\off+16*15)*4 +.endm + +.macro ntt_8l_level4to7_rvv off, ZETA_EXP_4TO7_L4, ZETA_EXP_4TO7_L5, ZETA_EXP_4TO7_L6, ZETA_EXP_4TO7_L7 + li a4, \ZETA_EXP_4TO7_L4*4 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + addi a0, a0, (64*\off)*4 + vle32.v v16, (a0)// addi a0, a0, 4*4 + vle32.v v17, (a0)// addi a0, a0, 4*4 + vle32.v v18, (a0)// addi a0, a0, 4*4 + vle32.v v19, (a0)// addi a0, a0, 4*4 + vle32.v v20, (a0)// addi a0, a0, 4*4 + vle32.v v21, (a0)// addi a0, a0, 4*4 + vle32.v v22, (a0)// addi a0, a0, 4*4 + vle32.v v23, (a0)// addi a0, a0, 4*4 + vle32.v v24, (a0)// addi a0, a0, 4*4 + vle32.v v25, (a0)// addi a0, a0, 4*4 + vle32.v v26, (a0)// addi a0, a0, 4*4 + vle32.v v27, (a0)// addi a0, a0, 4*4 + vle32.v v28, (a0)// addi a0, a0, 4*4 + vle32.v v29, (a0)// addi a0, a0, 4*4 + vle32.v v30, (a0)// addi a0, a0, 4*4 + vle32.v v31, (a0)// addi a0, a0, -(4*15)*4 + // level4 + ct_bfu_x8 v16,v18,v17,v19,v20,v22,v21,v23, v24,v26,v25,v27,v28,v30,v29,v31, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,v11,v12,v13,v14,v15 + // level5 + li a4, \ZETA_EXP_4TO7_L5*4 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + ct_bfu_x4 v16,v17,v18,v19,v20,v21,v22,v23, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + ct_bfu_x4 v24,v25,v26,v27,v28,v29,v30,v31, t1, t2, t3, t4, t5, t6, a5, a6, t0, v0, v1, v2, v3, v4, v5, v6, v7 + // level6 + li t4, _MASK_1100*4 + add t4, t4, a1 + vle32.v v0, (t4) + li t4, _MASK_0101*4 + add t4, t4, a1 + vle32.v v1, (t4) + li t4, _MASK_2323*4 + add t4, t4, a1 + vle32.v v2, (t4) + shuffle2_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, v1, v2 + shuffle2_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, v1, v2 + li t4, \ZETA_EXP_4TO7_L6*4 + add t4, t4, a1 + vle32.v v9, (t4)// addi t4, t4, 4*4 + vle32.v v8, (t4)// addi t4, t4, 4*4 + vle32.v v11, (t4)// addi t4, t4, 4*4 + vle32.v v10, (t4)// addi t4, t4, 4*4 + vle32.v v13, (t4)// addi t4, t4, 4*4 + vle32.v v12, (t4)// addi t4, t4, 4*4 + vle32.v v15, (t4)// addi t4, t4, 4*4 + vle32.v v14, (t4)// addi t4, t4, 4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vle32.v v9, (t4)// addi t4, t4, 4*4 + vle32.v v8, (t4)// addi t4, t4, 4*4 + vle32.v v11, (t4)// addi t4, t4, 4*4 + vle32.v v10, (t4)// addi t4, t4, 4*4 + vle32.v v13, (t4)// addi t4, t4, 4*4 + vle32.v v12, (t4)// addi t4, t4, 4*4 + vle32.v v15, (t4)// addi t4, t4, 4*4 + vle32.v v14, (t4) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, t0, v0, v1, v2, v3, v4, v5, v6, v7 + // level7 + li t4, _MASK_1010*4 + add t4, t4, a1 + vle32.v v0, (t4) + li t4, _MASK_1032*4 + add t4, t4, a1 + vle32.v v1, (t4) + shuffle1_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, v1 + shuffle1_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, v1 + li t4, \ZETA_EXP_4TO7_L7*4 + add t4, t4, a1 + vle32.v v9, (t4)// addi t4, t4, 4*4 + vle32.v v8, (t4)// addi t4, t4, 4*4 + vle32.v v11, (t4)// addi t4, t4, 4*4 + vle32.v v10, (t4)// addi t4, t4, 4*4 + vle32.v v13, (t4)// addi t4, t4, 4*4 + vle32.v v12, (t4)// addi t4, t4, 4*4 + vle32.v v15, (t4)// addi t4, t4, 4*4 + vle32.v v14, (t4)// addi t4, t4, 4*4 + ct_bfu_vv_x4 v16,v17,v18,v19,v20,v21,v22,v23, v8, v9, v10,v11,v12,v13,v14,v15, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vle32.v v9, (t4)// addi t4, t4, 4*4 + vle32.v v8, (t4)// addi t4, t4, 4*4 + vle32.v v11, (t4)// addi t4, t4, 4*4 + vle32.v v10, (t4)// addi t4, t4, 4*4 + vle32.v v13, (t4)// addi t4, t4, 4*4 + vle32.v v12, (t4)// addi t4, t4, 4*4 + vle32.v v15, (t4)// addi t4, t4, 4*4 + vle32.v v14, (t4) + ct_bfu_vv_x4 v24,v25,v26,v27,v28,v29,v30,v31, v8, v9, v10,v11,v12,v13,v14,v15, t0, v0, v1, v2, v3, v4, v5, v6, v7 + vse32.v v16, (a0)// addi a0, a0, 4*4 + vse32.v v17, (a0)// addi a0, a0, 4*4 + vse32.v v18, (a0)// addi a0, a0, 4*4 + vse32.v v19, (a0)// addi a0, a0, 4*4 + vse32.v v20, (a0)// addi a0, a0, 4*4 + vse32.v v21, (a0)// addi a0, a0, 4*4 + vse32.v v22, (a0)// addi a0, a0, 4*4 + vse32.v v23, (a0)// addi a0, a0, 4*4 + vse32.v v24, (a0)// addi a0, a0, 4*4 + vse32.v v25, (a0)// addi a0, a0, 4*4 + vse32.v v26, (a0)// addi a0, a0, 4*4 + vse32.v v27, (a0)// addi a0, a0, 4*4 + vse32.v v28, (a0)// addi a0, a0, 4*4 + vse32.v v29, (a0)// addi a0, a0, 4*4 + vse32.v v30, (a0)// addi a0, a0, 4*4 + vse32.v v31, (a0)// addi a0, a0, -(64*\off+4*15)*4 +.endm + +.macro intt_8l_level0to3_rvv off, ZETA_INTT_0TO3_L0, ZETA_INTT_0TO3_L1, ZETA_INTT_0TO3_L2, ZETA_INTT_0TO3_L3 + addi a0, a0, (64*\off)*4 + vle32.v v1, (a0)// addi a0, a0, 4*4 + vle32.v v2, (a0)// addi a0, a0, 4*4 + vle32.v v3, (a0)// addi a0, a0, 4*4 + vle32.v v4, (a0)// addi a0, a0, 4*4 + vle32.v v5, (a0)// addi a0, a0, 4*4 + vle32.v v6, (a0)// addi a0, a0, 4*4 + vle32.v v7, (a0)// addi a0, a0, 4*4 + vle32.v v8, (a0)// addi a0, a0, 4*4 + vle32.v v9, (a0)// addi a0, a0, 4*4 + vle32.v v10, (a0)// addi a0, a0, 4*4 + vle32.v v11, (a0)// addi a0, a0, 4*4 + vle32.v v12, (a0)// addi a0, a0, 4*4 + vle32.v v13, (a0)// addi a0, a0, 4*4 + vle32.v v14, (a0)// addi a0, a0, 4*4 + vle32.v v15, (a0)// addi a0, a0, 4*4 + vle32.v v16, (a0)// addi a0, a0, -(4*15)*4 + // level0 + li t4, \ZETA_INTT_0TO3_L0*4 + add t4, t4, a1 + vle32.v v31, (t4)// addi t4, t4, 4*4 + vle32.v v30, (t4)// addi t4, t4, 4*4 + vle32.v v29, (t4)// addi t4, t4, 4*4 + vle32.v v28, (t4)// addi t4, t4, 4*4 + vle32.v v27, (t4)// addi t4, t4, 4*4 + vle32.v v26, (t4)// addi t4, t4, 4*4 + vle32.v v25, (t4)// addi t4, t4, 4*4 + vle32.v v24, (t4)// addi t4, t4, 4*4 + gs_bfu_vv_x4 v1, v2, v3, v4, v5, v6, v7, v8, v30,v31,v28,v29,v26,v27,v24,v25, t0, v17,v18,v19,v20,v21,v22,v23,v0 + vle32.v v31, (t4)// addi t4, t4, 4*4 + vle32.v v30, (t4)// addi t4, t4, 4*4 + vle32.v v29, (t4)// addi t4, t4, 4*4 + vle32.v v28, (t4)// addi t4, t4, 4*4 + vle32.v v27, (t4)// addi t4, t4, 4*4 + vle32.v v26, (t4)// addi t4, t4, 4*4 + vle32.v v25, (t4)// addi t4, t4, 4*4 + vle32.v v24, (t4) + gs_bfu_vv_x4 v9, v10,v11,v12,v13,v14,v15,v16, v30,v31,v28,v29,v26,v27,v24,v25, t0, v17,v18,v19,v20,v21,v22,v23,v0 + // shuffle1 for level1 + li t4, _MASK_1010*4 + add t4, t4, a1 + vle32.v v0, (t4) + li t4, _MASK_1032*4 + add t4, t4, a1 + vle32.v v31, (t4) + shuffle1_x4 v1, v2, v3, v4, v5, v6, v7, v8, v17,v18,v19,v20,v21,v22,v23,v24, v31 + shuffle1_x4 v9, v10,v11,v12,v13,v14,v15,v16, v17,v18,v19,v20,v21,v22,v23,v24, v31 + // level1 + li t4, \ZETA_INTT_0TO3_L1*4 + add t4, t4, a1 + vle32.v v31, (t4)// addi t4, t4, 4*4 + vle32.v v30, (t4)// addi t4, t4, 4*4 + vle32.v v29, (t4)// addi t4, t4, 4*4 + vle32.v v28, (t4)// addi t4, t4, 4*4 + vle32.v v27, (t4)// addi t4, t4, 4*4 + vle32.v v26, (t4)// addi t4, t4, 4*4 + vle32.v v25, (t4)// addi t4, t4, 4*4 + vle32.v v24, (t4)// addi t4, t4, 4*4 + gs_bfu_vv_x4 v1, v2, v3, v4, v5, v6, v7, v8, v30,v31,v28,v29,v26,v27,v24,v25, t0, v17,v18,v19,v20,v21,v22,v23,v0 + vle32.v v31, (t4)// addi t4, t4, 4*4 + vle32.v v30, (t4)// addi t4, t4, 4*4 + vle32.v v29, (t4)// addi t4, t4, 4*4 + vle32.v v28, (t4)// addi t4, t4, 4*4 + vle32.v v27, (t4)// addi t4, t4, 4*4 + vle32.v v26, (t4)// addi t4, t4, 4*4 + vle32.v v25, (t4)// addi t4, t4, 4*4 + vle32.v v24, (t4) + gs_bfu_vv_x4 v9, v10,v11,v12,v13,v14,v15,v16, v30,v31,v28,v29,v26,v27,v24,v25, t0, v17,v18,v19,v20,v21,v22,v23,v0 + // shuffle2 for level2 + li t4, _MASK_1100*4 + add t4, t4, a1 + vle32.v v0, (t4) + li t4, _MASK_0101*4 + add t4, t4, a1 + vle32.v v31, (t4) + li t4, _MASK_2323*4 + add t4, t4, a1 + vle32.v v30, (t4) + shuffle2_x4 v1, v2, v3, v4, v5, v6, v7, v8, v17,v18,v19,v20,v21,v22,v23,v24, v31,v30 + shuffle2_x4 v9, v10,v11,v12,v13,v14,v15,v16, v17,v18,v19,v20,v21,v22,v23,v24, v31,v30 + // level2 + li a4, \ZETA_INTT_0TO3_L2*4 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v1, v2, v3, v4, v5, v6, v7, v8, t1, t2, t3, t4, t5, t6, a5, a6, t0, v17,v18,v19,v20,v21,v22,v23,v24 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + gs_bfu_x4 v9, v10,v11,v12,v13,v14,v15,v16, t1, t2, t3, t4, t5, t6, a5, a6, t0, v17,v18,v19,v20,v21,v22,v23,v24 + // level3 + li a4, \ZETA_INTT_0TO3_L3*4 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x8 v1, v3, v2, v4, v5, v7, v6, v8, v9, v11,v10,v12,v13,v15,v14,v16, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v17,v18,v19,v20,v21,v22,v23,v24, v25,v26,v27,v28,v29,v30,v31,v0 + vse32.v v1, (a0)// addi a0, a0, 4*4 + vse32.v v2, (a0)// addi a0, a0, 4*4 + vse32.v v3, (a0)// addi a0, a0, 4*4 + vse32.v v4, (a0)// addi a0, a0, 4*4 + vse32.v v5, (a0)// addi a0, a0, 4*4 + vse32.v v6, (a0)// addi a0, a0, 4*4 + vse32.v v7, (a0)// addi a0, a0, 4*4 + vse32.v v8, (a0)// addi a0, a0, 4*4 + vse32.v v9, (a0)// addi a0, a0, 4*4 + vse32.v v10, (a0)// addi a0, a0, 4*4 + vse32.v v11, (a0)// addi a0, a0, 4*4 + vse32.v v12, (a0)// addi a0, a0, 4*4 + vse32.v v13, (a0)// addi a0, a0, 4*4 + vse32.v v14, (a0)// addi a0, a0, 4*4 + vse32.v v15, (a0)// addi a0, a0, 4*4 + vse32.v v16, (a0)// addi a0, a0, -(64*\off+4*15)*4 +.endm + +.macro intt_8l_level4to7_rvv off + addi a0, a0, (4*\off)*4 + vle32.v v1, (a0)// addi a0, a0, 16*4 + vle32.v v2, (a0)// addi a0, a0, 16*4 + vle32.v v3, (a0)// addi a0, a0, 16*4 + vle32.v v4, (a0)// addi a0, a0, 16*4 + vle32.v v5, (a0)// addi a0, a0, 16*4 + vle32.v v6, (a0)// addi a0, a0, 16*4 + vle32.v v7, (a0)// addi a0, a0, 16*4 + vle32.v v8, (a0)// addi a0, a0, 16*4 + vle32.v v9, (a0)// addi a0, a0, 16*4 + vle32.v v10, (a0)// addi a0, a0, 16*4 + vle32.v v11, (a0)// addi a0, a0, 16*4 + vle32.v v12, (a0)// addi a0, a0, 16*4 + vle32.v v13, (a0)// addi a0, a0, 16*4 + vle32.v v14, (a0)// addi a0, a0, 16*4 + vle32.v v15, (a0)// addi a0, a0, 16*4 + vle32.v v16, (a0)// addi a0, a0, -(16*15)*4 + // level4 + li a4, _ZETA_EXP_INTT_4TO7_L4*4 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x4 v1, v2, v3, v4, v5, v6, v7, v8, t1, t2, t3, t4, t5, t6, a5, a6, t0, v17,v18,v19,v20,v21,v22,v23,v24 + lw t2, (8+0)*4(a4) + lw t1, (8+1)*4(a4) + lw t4, (8+2)*4(a4) + lw t3, (8+3)*4(a4) + lw t6, (8+4)*4(a4) + lw t5, (8+5)*4(a4) + lw a6, (8+6)*4(a4) + lw a5, (8+7)*4(a4) + gs_bfu_x4 v9, v10,v11,v12,v13,v14,v15,v16, t1, t2, t3, t4, t5, t6, a5, a6, t0, v17,v18,v19,v20,v21,v22,v23,v24 + // level5 + li a4, _ZETA_EXP_INTT_4TO7_L5*4 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + lw t6, 4*4(a4) + lw t5, 5*4(a4) + lw a6, 6*4(a4) + lw a5, 7*4(a4) + gs_bfu_x8 v1, v3, v2, v4, v5, v7, v6, v8, v9, v11,v10,v12,v13,v15,v14,v16, t1, t2, t1, t2, t3, t4, t3, t4, t5, t6, t5, t6, a5, a6, a5, a6, t0, v17,v18,v19,v20,v21,v22,v23,v24, v25,v26,v27,v28,v29,v30,v31,v0 + // level6 + li a4, _ZETA_EXP_INTT_4TO7_L6*4 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + lw t4, 2*4(a4) + lw t3, 3*4(a4) + gs_bfu_x8 v1, v5, v2, v6, v3, v7, v4, v8, v9, v13,v10,v14,v11,v15,v12,v16, t1, t2, t1, t2, t1, t2, t1, t2, t3, t4, t3, t4, t3, t4, t3, t4, t0, v17,v18,v19,v20,v21,v22,v23,v24, v25,v26,v27,v28,v29,v30,v31,v0 + // level7 + li a4, _ZETA_EXP_INTT_4TO7_L7*4 + add a4, a4, a1 + lw t2, 0*4(a4) + lw t1, 1*4(a4) + gs_bfu_x8 v1, v9, v2, v10,v3, v11,v4, v12, v5, v13,v6, v14,v7, v15,v8, v16, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t1, t2, t0, v17,v18,v19,v20,v21,v22,v23,v24, v25,v26,v27,v28,v29,v30,v31,v0 + li t2, inv256 + li t3, inv256qinv + tomont_x8 v1, v2, v3, v4, v5, v6, v7, v8, t2, t3, t0, v17,v18,v19,v20,v21,v22,v23,v24 + vse32.v v1, (a0)// addi a0, a0, 16*4 + vse32.v v2, (a0)// addi a0, a0, 16*4 + vse32.v v3, (a0)// addi a0, a0, 16*4 + vse32.v v4, (a0)// addi a0, a0, 16*4 + vse32.v v5, (a0)// addi a0, a0, 16*4 + vse32.v v6, (a0)// addi a0, a0, 16*4 + vse32.v v7, (a0)// addi a0, a0, 16*4 + vse32.v v8, (a0)// addi a0, a0, 16*4 + vse32.v v9, (a0)// addi a0, a0, 16*4 + vse32.v v10, (a0)// addi a0, a0, 16*4 + vse32.v v11, (a0)// addi a0, a0, 16*4 + vse32.v v12, (a0)// addi a0, a0, 16*4 + vse32.v v13, (a0)// addi a0, a0, 16*4 + vse32.v v14, (a0)// addi a0, a0, 16*4 + vse32.v v15, (a0)// addi a0, a0, 16*4 + vse32.v v16, (a0)// addi a0, a0, -(4*\off+16*15)*4 +.endm + +// q * qinv = 1 mod 2^32, used for Montgomery arithmetic +.equ q, 8380417 +.equ qinv, 58728449 +// inv256 = 2^64 * (1/256) mod q is used for reverting standard domain +.equ inv256, 41978 +// inv256qinv <- low(inv256*qinv) +.equ inv256qinv, 4286571514 + +.globl ntt_8l_rvv_opt_c908 +.align 2 +ntt_8l_rvv_opt_c908: + // vsetivli t2, 4, e32, m1, tu, mu + // Exceptional iterations: 1 + // Preamble + addi x10, x10, (4*0)*4 // *............................................................................................................................................................................................................................................. + lw x23, (_ZETA_EXP_0TO3_L0+0)*4(x11) // *............................................................................................................................................................................................................................................. + vle32.v v8, (x10) // .*............................................................................................................................................................................................................................................ + lw x16, (_ZETA_EXP_0TO3_L0+1)*4(x11) // .*............................................................................................................................................................................................................................................ + li x5, 8380417 // ..*........................................................................................................................................................................................................................................... + lw x29, (_ZETA_EXP_0TO3_L1+2)*4(x11) // ..*........................................................................................................................................................................................................................................... + vmul.vx v21, v8, x23 // ...*.......................................................................................................................................................................................................................................... + vmulh.vx v10, v8, x16 // ...*.......................................................................................................................................................................................................................................... + lw x13, (_ZETA_EXP_0TO3_L1+0)*4(x11) // ....*......................................................................................................................................................................................................................................... + vle32.v v29, (x10) // .....*........................................................................................................................................................................................................................................ + vmulh.vx v6, v21, x5 // .....*........................................................................................................................................................................................................................................ + lw x30, (_ZETA_EXP_0TO3_L1+1)*4(x11) // ......*....................................................................................................................................................................................................................................... + vsub.vv v30, v10, v6 // .......*...................................................................................................................................................................................................................................... + vle32.v v14, (x10) // .......*...................................................................................................................................................................................................................................... + vle32.v v6, (x10) // .........*.................................................................................................................................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L1+3)*4(x11) // ..........*................................................................................................................................................................................................................................... + vadd.vv v31, v6, v30 // ...........*.................................................................................................................................................................................................................................. + vle32.v v21, (x10) // ...........*.................................................................................................................................................................................................................................. + vmul.vx v7, v29, x23 // .............*................................................................................................................................................................................................................................ + vmul.vx v22, v21, x23 // .............*................................................................................................................................................................................................................................ + vle32.v v10, (x10) // ...............*.............................................................................................................................................................................................................................. + vle32.v v5, (x10) // ...............*.............................................................................................................................................................................................................................. + vmulh.vx v3, v21, x16 // .................*............................................................................................................................................................................................................................ + vmulh.vx v21, v10, x16 // .................*............................................................................................................................................................................................................................ + vmulh.vx v11, v7, x5 // ...................*.......................................................................................................................................................................................................................... + vle32.v v8, (x10) // ...................*.......................................................................................................................................................................................................................... + vsub.vv v7, v6, v30 // .....................*........................................................................................................................................................................................................................ + vmul.vx v10, v10, x23 // .....................*........................................................................................................................................................................................................................ + vmulh.vx v10, v10, x5 // .......................*...................................................................................................................................................................................................................... + vmulh.vx v25, v29, x16 // .......................*...................................................................................................................................................................................................................... + vsub.vv v15, v21, v10 // .........................*.................................................................................................................................................................................................................... + vle32.v v2, (x10) // .........................*.................................................................................................................................................................................................................... + vsub.vv v10, v25, v11 // ...........................*.................................................................................................................................................................................................................. + vle32.v v4, (x10) // ...........................*.................................................................................................................................................................................................................. + vsub.vv v17, v2, v10 // .............................*................................................................................................................................................................................................................ + vle32.v v1, (x10) // .............................*................................................................................................................................................................................................................ + vadd.vv v20, v2, v10 // ...............................*.............................................................................................................................................................................................................. + vmul.vx v10, v17, x29 // ...............................*.............................................................................................................................................................................................................. + vmul.vx v21, v1, x23 // .................................*............................................................................................................................................................................................................ + vmulh.vx v29, v22, x5 // .................................*............................................................................................................................................................................................................ + lw x7, (_ZETA_EXP_0TO3_L2+0)*4(x11) // ..................................*........................................................................................................................................................................................................... + vmulh.vx v21, v21, x5 // ...................................*.......................................................................................................................................................................................................... + vmulh.vx v19, v1, x16 // ...................................*.......................................................................................................................................................................................................... + lw x31, (_ZETA_EXP_0TO3_L2+4)*4(x11) // ....................................*......................................................................................................................................................................................................... + vsub.vv v21, v19, v21 // .....................................*........................................................................................................................................................................................................ + vsub.vv v12, v3, v29 // .....................................*........................................................................................................................................................................................................ + lw x15, (_ZETA_EXP_0TO3_L2+7)*4(x11) // ......................................*....................................................................................................................................................................................................... + vadd.vv v27, v4, v21 // .......................................*...................................................................................................................................................................................................... + vsub.vv v23, v4, v21 // .......................................*...................................................................................................................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L2+1)*4(x11) // ........................................*..................................................................................................................................................................................................... + vadd.vv v16, v14, v12 // .........................................*.................................................................................................................................................................................................... + vmul.vx v22, v27, x13 // .........................................*.................................................................................................................................................................................................... + vmulh.vx v9, v17, x28 // ...........................................*.................................................................................................................................................................................................. + lw x21, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ...........................................*.................................................................................................................................................................................................. + vle32.v v21, (x10) // .............................................*................................................................................................................................................................................................ + vmul.vx v18, v23, x29 // .............................................*................................................................................................................................................................................................ + lw x25, (_ZETA_EXP_0TO3_L2+6)*4(x11) // ..............................................*............................................................................................................................................................................................... + vsub.vv v17, v21, v15 // ...............................................*.............................................................................................................................................................................................. + vadd.vv v6, v21, v15 // ...............................................*.............................................................................................................................................................................................. + vmulh.vx v21, v23, x28 // .................................................*............................................................................................................................................................................................ + vle32.v v2, (x10) // .................................................*............................................................................................................................................................................................ + vmulh.vx v1, v27, x30 // ...................................................*.......................................................................................................................................................................................... + vmul.vx v11, v2, x23 // ...................................................*.......................................................................................................................................................................................... + vmulh.vx v11, v11, x5 // .....................................................*........................................................................................................................................................................................ + vmulh.vx v26, v18, x5 // .......................................................*...................................................................................................................................................................................... + vmul.vx v18, v20, x13 // .......................................................*...................................................................................................................................................................................... + vsub.vv v30, v21, v26 // .........................................................*.................................................................................................................................................................................... + vle32.v v21, (x10) // .........................................................*.................................................................................................................................................................................... + vadd.vv v25, v17, v30 // ...........................................................*.................................................................................................................................................................................. + vsub.vv v29, v17, v30 // ...........................................................*.................................................................................................................................................................................. + vsub.vv v13, v14, v12 // .............................................................*................................................................................................................................................................................ + vmul.vx v17, v7, x29 // .............................................................*................................................................................................................................................................................ + vmulh.vx v15, v7, x28 // ...............................................................*.............................................................................................................................................................................. + vmulh.vx v30, v17, x5 // ...............................................................*.............................................................................................................................................................................. + vsub.vv v12, v15, v30 // .................................................................*............................................................................................................................................................................ + vmul.vx v28, v21, x23 // .................................................................*............................................................................................................................................................................ + vmulh.vx v19, v28, x5 // ...................................................................*.......................................................................................................................................................................... + vmulh.vx v17, v22, x5 // ...................................................................*.......................................................................................................................................................................... + vmulh.vx v15, v8, x16 // .....................................................................*........................................................................................................................................................................ + lw x9, (_ZETA_EXP_0TO3_L2+5)*4(x11) // ......................................................................*....................................................................................................................................................................... + vmul.vx v14, v31, x13 // ......................................................................*....................................................................................................................................................................... + vmulh.vx v26, v2, x16 // ........................................................................*..................................................................................................................................................................... + vmulh.vx v2, v14, x5 // ........................................................................*..................................................................................................................................................................... + vmulh.vx v24, v10, x5 // ..........................................................................*................................................................................................................................................................... + vle32.v v27, (x10) // ..........................................................................*................................................................................................................................................................... + vmulh.vx v20, v20, x30 // ............................................................................*................................................................................................................................................................. + vsub.vv v10, v26, v11 // ............................................................................*................................................................................................................................................................. + vadd.vv v23, v27, v10 // ..............................................................................*............................................................................................................................................................... + vsub.vv v10, v27, v10 // ..............................................................................*............................................................................................................................................................... + vmul.vx v30, v10, x29 // ................................................................................*............................................................................................................................................................. + vmulh.vx v10, v10, x28 // ................................................................................*............................................................................................................................................................. + vsub.vv v22, v1, v17 // ..................................................................................*........................................................................................................................................................... + lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // ...................................................................................*.......................................................................................................................................................... + vmulh.vx v4, v21, x16 // ....................................................................................*......................................................................................................................................................... + vadd.vv v17, v6, v22 // ....................................................................................*......................................................................................................................................................... + vsub.vv v21, v6, v22 // ......................................................................................*....................................................................................................................................................... + vmulh.vx v3, v30, x5 // ......................................................................................*....................................................................................................................................................... + vsub.vv v14, v10, v3 // ........................................................................................*..................................................................................................................................................... + vmulh.vx v10, v18, x5 // ........................................................................................*..................................................................................................................................................... + vmul.vx v27, v8, x23 // ..........................................................................................*................................................................................................................................................... + vsub.vv v28, v20, v10 // ..........................................................................................*................................................................................................................................................... + lw x23, (_ZETA_EXP_0TO3_L2+2)*4(x11) // ...........................................................................................*.................................................................................................................................................. + vmulh.vx v10, v31, x30 // ............................................................................................*................................................................................................................................................. + vmulh.vx v11, v27, x5 // ............................................................................................*................................................................................................................................................. + vsub.vv v22, v15, v11 // ..............................................................................................*............................................................................................................................................... + vsub.vv v10, v10, v2 // ..............................................................................................*............................................................................................................................................... + vsub.vv v20, v16, v28 // ................................................................................................*............................................................................................................................................. + vadd.vv v16, v16, v28 // ................................................................................................*............................................................................................................................................. + vsub.vv v18, v4, v19 // ..................................................................................................*........................................................................................................................................... + vle32.v v27, (x10) // ..................................................................................................*........................................................................................................................................... + vmul.vx v3, v23, x13 // ....................................................................................................*......................................................................................................................................... + vadd.vv v15, v27, v22 // ....................................................................................................*......................................................................................................................................... + vmulh.vx v7, v23, x30 // ......................................................................................................*....................................................................................................................................... + vmulh.vx v8, v3, x5 // ......................................................................................................*....................................................................................................................................... + vsub.vv v19, v7, v8 // ........................................................................................................*..................................................................................................................................... + vsub.vv v30, v9, v24 // .........................................................................................................*.................................................................................................................................... + vadd.vv v6, v5, v18 // ..........................................................................................................*................................................................................................................................... + lw x12, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ...........................................................................................................*.................................................................................................................................. + vsub.vv v4, v5, v18 // ............................................................................................................*................................................................................................................................. + vsub.vv v11, v6, v10 // ............................................................................................................*................................................................................................................................. + lw x30, (_ZETA_EXP_0TO3_L3+3)*4(x11) // .............................................................................................................*................................................................................................................................ + vadd.vv v8, v6, v10 // ..............................................................................................................*............................................................................................................................... + vmul.vx v6, v11, x23 // ..............................................................................................................*............................................................................................................................... + vmulh.vx v10, v6, x5 // ................................................................................................................*............................................................................................................................. + vmulh.vx v6, v11, x21 // ................................................................................................................*............................................................................................................................. + vsub.vv v7, v6, v10 // ..................................................................................................................*........................................................................................................................... + vsub.vv v10, v27, v22 // ..................................................................................................................*........................................................................................................................... + vadd.vv v18, v10, v14 // ....................................................................................................................*......................................................................................................................... + // Kernel + start: + // Instructions: 256 + // Expected cycles: 233 + // Expected IPC: 1.10 + + // ----------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------- + vsub.vv v10, v10, v14 // *........................................................................................................................................................................................................................................ + vadd.vv v22, v15, v19 // *........................................................................................................................................................................................................................................ + lw x22, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // .*....................................................................................................................................................................................................................................... + vsub.vv v11, v4, v12 // ..*...................................................................................................................................................................................................................................... + vmulh.vx v27, v10, x15 // ..*...................................................................................................................................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // ...*..................................................................................................................................................................................................................................... + vmulh.vx v24, v11, x15 // ....*.................................................................................................................................................................................................................................... + vmul.vx v6, v8, x7 // ....*.................................................................................................................................................................................................................................... + lw x20, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // .....*................................................................................................................................................................................................................................... + vmul.vx v31, v22, x7 // ......*.................................................................................................................................................................................................................................. + vadd.vv v1, v4, v12 // ......*.................................................................................................................................................................................................................................. + lw x13, (_ZETA_EXP_0TO3_L3+0)*4(x11) // .......*................................................................................................................................................................................................................................. + vsub.vv v14, v15, v19 // ........*................................................................................................................................................................................................................................ + vmul.vx v10, v10, x25 // ........*................................................................................................................................................................................................................................ + vmul.vx v19, v18, x31 // ..........*.............................................................................................................................................................................................................................. + lw x16, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // ..........*.............................................................................................................................................................................................................................. + vmul.vx v4, v1, x31 // ...........*............................................................................................................................................................................................................................. + vmulh.vx v2, v10, x5 // ............*............................................................................................................................................................................................................................ + lw x8, (_ZETA_EXP_0TO3_L3+6)*4(x11) // .............*........................................................................................................................................................................................................................... + vsub.vv v15, v27, v2 // ..............*.......................................................................................................................................................................................................................... + vmulh.vx v0, v18, x9 // ..............*.......................................................................................................................................................................................................................... + lw x15, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // ...............*......................................................................................................................................................................................................................... + vadd.vv v2, v29, v15 // ................*........................................................................................................................................................................................................................ + vsub.vv v12, v29, v15 // ................*........................................................................................................................................................................................................................ + lw x24, (_ZETA_EXP_0TO3_L3+4)*4(x11) // .................*....................................................................................................................................................................................................................... + vmul.vx v27, v11, x25 // ..................*...................................................................................................................................................................................................................... + vmulh.vx v15, v6, x5 // ...................*..................................................................................................................................................................................................................... + vmul.vx v26, v14, x23 // ....................*.................................................................................................................................................................................................................... + lw x23, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // ....................*.................................................................................................................................................................................................................... + vmulh.vx v10, v22, x6 // .....................*................................................................................................................................................................................................................... + vmulh.vx v31, v31, x5 // ......................*.................................................................................................................................................................................................................. + lw x18, (_ZETA_EXP_0TO3_L3+7)*4(x11) // ......................*.................................................................................................................................................................................................................. + vsub.vv v5, v10, v31 // ........................*................................................................................................................................................................................................................ + vmulh.vx v11, v2, x15 // ........................*................................................................................................................................................................................................................ + lw x4, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // .........................*............................................................................................................................................................................................................... + vadd.vv v9, v17, v5 // ..........................*.............................................................................................................................................................................................................. + vsub.vv v5, v17, v5 // ...........................*............................................................................................................................................................................................................. + vmulh.vx v23, v14, x21 // ............................*............................................................................................................................................................................................................ + vmul.vx v18, v2, x16 // .............................*........................................................................................................................................................................................................... + vmulh.vx v14, v26, x5 // ..............................*.......................................................................................................................................................................................................... + lw x27, (_ZETA_EXP_0TO3_L3+1)*4(x11) // ...............................*......................................................................................................................................................................................................... + vmul.vx v28, v12, x4 // ................................*........................................................................................................................................................................................................ + vsub.vv v29, v23, v14 // ................................*........................................................................................................................................................................................................ + vadd.vv v23, v21, v29 // ..................................*...................................................................................................................................................................................................... + vsub.vv v29, v21, v29 // ...................................*..................................................................................................................................................................................................... + vmulh.vx v17, v23, x12 // ....................................*.................................................................................................................................................................................................... + vmulh.vx v14, v12, x23 // .....................................*................................................................................................................................................................................................... + lw x23, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // ......................................*.................................................................................................................................................................................................. + vmul.vx v12, v9, x13 // ......................................*.................................................................................................................................................................................................. + vmulh.vx v22, v9, x27 // ........................................*................................................................................................................................................................................................ + vmulh.vx v26, v27, x5 // ........................................*................................................................................................................................................................................................ + vmulh.vx v6, v4, x5 // ..........................................*.............................................................................................................................................................................................. + vmulh.vx v4, v8, x6 // ..........................................*.............................................................................................................................................................................................. + lw x16, (_ZETA_EXP_0TO3_L0+1)*4(x11) // ............................................*............................................................................................................................................................................................ + vsub.vv v8, v4, v15 // ............................................*............................................................................................................................................................................................ + vmul.vx v2, v23, x24 // .............................................*........................................................................................................................................................................................... + lw x13, (_ZETA_EXP_0TO3_L1+0)*4(x11) // ..............................................*.......................................................................................................................................................................................... + vmulh.vx v1, v1, x9 // ..............................................*.......................................................................................................................................................................................... + vse32.v v31, (x10) // ................................................*........................................................................................................................................................................................ + vadd.vv v31, v16, v8 // ................................................*........................................................................................................................................................................................ + vse32.v v27, (x10) // ..................................................*...................................................................................................................................................................................... + vsub.vv v27, v16, v8 // ..................................................*...................................................................................................................................................................................... + vsub.vv v16, v1, v6 // ....................................................*.................................................................................................................................................................................... + vse32.v v23, (x10) // ....................................................*.................................................................................................................................................................................... + vsub.vv v21, v24, v26 // ......................................................*.................................................................................................................................................................................. + vmulh.vx v10, v18, x5 // ......................................................*.................................................................................................................................................................................. + vsub.vv v26, v11, v10 // ........................................................*................................................................................................................................................................................ + vsub.vv v11, v13, v30 // ........................................................*................................................................................................................................................................................ + vadd.vv v3, v13, v30 // ..........................................................*.............................................................................................................................................................................. + vmul.vx v30, v29, x8 // ..........................................................*.............................................................................................................................................................................. + vmulh.vx v8, v5, x30 // ............................................................*............................................................................................................................................................................ + vadd.vv v15, v11, v21 // ............................................................*............................................................................................................................................................................ + lw x30, (_ZETA_EXP_0TO3_L1+1)*4(x11) // ..............................................................*.......................................................................................................................................................................... + vsub.vv v24, v15, v26 // ..............................................................*.......................................................................................................................................................................... + vmul.vx v10, v5, x29 // ...............................................................*......................................................................................................................................................................... + lw x29, (_ZETA_EXP_0TO3_L1+2)*4(x11) // ................................................................*........................................................................................................................................................................ + vse32.v v9, (x10) // ................................................................*........................................................................................................................................................................ + vadd.vv v5, v3, v16 // ..................................................................*...................................................................................................................................................................... + vsub.vv v3, v3, v16 // ..................................................................*...................................................................................................................................................................... + vmulh.vx v18, v10, x5 // ....................................................................*.................................................................................................................................................................... + vmulh.vx v10, v12, x5 // ....................................................................*.................................................................................................................................................................... + vsub.vv v23, v22, v10 // ......................................................................*.................................................................................................................................................................. + vmulh.vx v9, v29, x18 // ........................................................................*................................................................................................................................................................ + vadd.vv v10, v15, v26 // ........................................................................*................................................................................................................................................................ + vmulh.vx v10, v28, x5 // ..........................................................................*.............................................................................................................................................................. + vmulh.vx v24, v30, x5 // ..........................................................................*.............................................................................................................................................................. + vsub.vv v13, v14, v10 // ............................................................................*............................................................................................................................................................ + vmulh.vx v10, v19, x5 // ............................................................................*............................................................................................................................................................ + vadd.vv v6, v20, v7 // ..............................................................................*.......................................................................................................................................................... + vsub.vv v12, v0, v10 // ..............................................................................*.......................................................................................................................................................... + vsub.vv v24, v9, v24 // ................................................................................*........................................................................................................................................................ + vsub.vv v10, v25, v12 // ................................................................................*........................................................................................................................................................ + lw x31, (_ZETA_EXP_0TO3_L2+4)*4(x11) // .................................................................................*....................................................................................................................................................... + vmulh.vx v1, v10, x28 // ..................................................................................*...................................................................................................................................................... + vadd.vv v16, v25, v12 // ..................................................................................*...................................................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L1+3)*4(x11) // ...................................................................................*..................................................................................................................................................... + vsub.vv v21, v11, v21 // ....................................................................................*.................................................................................................................................................... + vadd.vv v14, v31, v23 // ....................................................................................*.................................................................................................................................................... + lw x7, (_ZETA_EXP_0TO3_L2+0)*4(x11) // .....................................................................................*................................................................................................................................................... + vsub.vv v29, v21, v13 // ......................................................................................*.................................................................................................................................................. + vadd.vv v21, v21, v13 // ......................................................................................*.................................................................................................................................................. + lw x15, (_ZETA_EXP_0TO3_L2+7)*4(x11) // .......................................................................................*................................................................................................................................................. + vmul.vx v10, v10, x20 // ........................................................................................*................................................................................................................................................ + vse32.v v4, (x10) // ........................................................................................*................................................................................................................................................ + lw x25, (_ZETA_EXP_0TO3_L2+6)*4(x11) // .........................................................................................*............................................................................................................................................... + vmulh.vx v4, v10, x5 // ..........................................................................................*.............................................................................................................................................. + vsub.vv v10, v8, v18 // ..........................................................................................*.............................................................................................................................................. + lw x21, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ...........................................................................................*............................................................................................................................................. + vsub.vv v9, v1, v4 // ............................................................................................*............................................................................................................................................ + vadd.vv v26, v27, v10 // ............................................................................................*............................................................................................................................................ + lw x6, (_ZETA_EXP_0TO3_L2+1)*4(x11) // .............................................................................................*........................................................................................................................................... + vsub.vv v21, v3, v9 // ..............................................................................................*.......................................................................................................................................... + vadd.vv v13, v3, v9 // ..............................................................................................*.......................................................................................................................................... + vsub.vv v11, v27, v10 // ................................................................................................*........................................................................................................................................ + vse32.v v10, (x10) // ................................................................................................*........................................................................................................................................ + vsub.vv v10, v20, v7 // ..................................................................................................*...................................................................................................................................... + vmulh.vx v15, v16, x23 // ..................................................................................................*...................................................................................................................................... + vadd.vv v21, v10, v24 // ....................................................................................................*.................................................................................................................................... + vsub.vv v9, v10, v24 // ....................................................................................................*.................................................................................................................................... + vmul.vx v10, v16, x22 // ......................................................................................................*.................................................................................................................................. + vse32.v v8, (x10) // ......................................................................................................*.................................................................................................................................. + vmulh.vx v28, v10, x5 // ........................................................................................................*................................................................................................................................ + vse32.v v10, (x10) // ........................................................................................................*................................................................................................................................ + vsub.vv v10, v31, v23 // ..........................................................................................................*.............................................................................................................................. + vse32.v v10, (x10) // ..........................................................................................................*.............................................................................................................................. + lw x23, (_ZETA_EXP_0TO3_L0+0)*4(x11) // ...........................................................................................................*............................................................................................................................. + vsub.vv v21, v15, v28 // ............................................................................................................*............................................................................................................................ + vse32.v v10, (x10) // ............................................................................................................*............................................................................................................................ + vse32.v v8, (x10) // ..............................................................................................................*.......................................................................................................................... + vmulh.vx v16, v2, x5 // ..............................................................................................................*.......................................................................................................................... + lw x9, (_ZETA_EXP_0TO3_L2+5)*4(x11) // ...............................................................................................................*......................................................................................................................... + li x5, 8380417 // ...............................................................................................................*......................................................................................................................... + vse32.v v24, (x10) // ................................................................................................................*........................................................................................................................ + vsub.vv v8, v17, v16 // ................................................................................................................*........................................................................................................................ + vsub.vv v24, v6, v8 // ..................................................................................................................*...................................................................................................................... + vse32.v v17, (x10) // ...................................................................................................................*..................................................................................................................... + vse32.v v17, (x10) // ....................................................................................................................*.................................................................................................................... + vadd.vv v2, v5, v21 // .....................................................................................................................*................................................................................................................... + vse32.v v10, (x10) // ......................................................................................................................*.................................................................................................................. + vse32.v v10, (x10) // .......................................................................................................................*................................................................................................................. + addi x10, x10, (4*0)*4 // .......................................................................................................................*................................................................................................................. + vle32.v v10, (x10) // ........................................................................................................................*................................................................................................................ + vle32.v v31, (x10) // ..........................................................................................................................*.............................................................................................................. + vmul.vx v9, v10, x23 // ..........................................................................................................................*.............................................................................................................. + vmulh.vx v19, v10, x16 // ............................................................................................................................*............................................................................................................ + vmul.vx v10, v31, x23 // ............................................................................................................................*............................................................................................................ + vmulh.vx v11, v31, x16 // ..............................................................................................................................*.......................................................................................................... + vmulh.vx v30, v10, x5 // ..............................................................................................................................*.......................................................................................................... + vle32.v v10, (x10) // ................................................................................................................................*........................................................................................................ + vsub.vv v26, v11, v30 // ................................................................................................................................*........................................................................................................ + vmul.vx v2, v10, x23 // ..................................................................................................................................*...................................................................................................... + vmulh.vx v24, v10, x16 // ..................................................................................................................................*...................................................................................................... + vle32.v v10, (x10) // ....................................................................................................................................*.................................................................................................... + vadd.vv v6, v6, v8 // ....................................................................................................................................*.................................................................................................... + vle32.v v1, (x10) // ......................................................................................................................................*.................................................................................................. + vle32.v v8, (x10) // ......................................................................................................................................*.................................................................................................. + vmulh.vx v29, v2, x5 // ........................................................................................................................................*................................................................................................ + vmul.vx v28, v8, x23 // ........................................................................................................................................*................................................................................................ + vmulh.vx v18, v8, x16 // ..........................................................................................................................................*.............................................................................................. + vsub.vv v29, v24, v29 // ..........................................................................................................................................*.............................................................................................. + vmul.vx v16, v10, x23 // ............................................................................................................................................*............................................................................................ + vadd.vv v7, v1, v29 // ............................................................................................................................................*............................................................................................ + vmulh.vx v22, v16, x5 // ..............................................................................................................................................*.......................................................................................... + vmulh.vx v15, v7, x30 // ..............................................................................................................................................*.......................................................................................... + vle32.v v30, (x10) // ................................................................................................................................................*........................................................................................ + vle32.v v3, (x10) // ................................................................................................................................................*........................................................................................ + vmul.vx v0, v7, x13 // ..................................................................................................................................................*...................................................................................... + vle32.v v7, (x10) // ..................................................................................................................................................*...................................................................................... + lw x12, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ...................................................................................................................................................*..................................................................................... + vle32.v v24, (x10) // ....................................................................................................................................................*.................................................................................... + vmulh.vx v23, v0, x5 // ....................................................................................................................................................*.................................................................................... + vsub.vv v23, v15, v23 // ......................................................................................................................................................*.................................................................................. + vle32.v v17, (x10) // ......................................................................................................................................................*.................................................................................. + vmulh.vx v27, v28, x5 // ........................................................................................................................................................*................................................................................ + vmulh.vx v16, v17, x16 // ........................................................................................................................................................*................................................................................ + vsub.vv v4, v18, v27 // ..........................................................................................................................................................*.............................................................................. + vadd.vv v31, v24, v26 // ..........................................................................................................................................................*.............................................................................. + vmul.vx v12, v31, x13 // ............................................................................................................................................................*............................................................................ + vsub.vv v13, v7, v4 // ............................................................................................................................................................*............................................................................ + vmulh.vx v27, v10, x16 // ..............................................................................................................................................................*.......................................................................... + vmulh.vx v15, v9, x5 // ..............................................................................................................................................................*.......................................................................... + vsub.vv v6, v19, v15 // ................................................................................................................................................................*........................................................................ + vsub.vv v15, v5, v21 // ..................................................................................................................................................................*...................................................................... + vmul.vx v15, v17, x23 // ..................................................................................................................................................................*...................................................................... + vmulh.vx v8, v30, x16 // ....................................................................................................................................................................*.................................................................... + vmulh.vx v17, v15, x5 // ....................................................................................................................................................................*.................................................................... + vsub.vv v15, v24, v26 // ......................................................................................................................................................................*.................................................................. + vsub.vv v5, v16, v17 // ......................................................................................................................................................................*.................................................................. + vadd.vv v16, v7, v4 // ........................................................................................................................................................................*................................................................ + vsub.vv v21, v1, v29 // ........................................................................................................................................................................*................................................................ + vmul.vx v0, v21, x29 // ..........................................................................................................................................................................*.............................................................. + vmul.vx v24, v15, x29 // ..........................................................................................................................................................................*.............................................................. + vsub.vv v17, v27, v22 // ............................................................................................................................................................................*............................................................ + vle32.v v1, (x10) // ............................................................................................................................................................................*............................................................ + vmulh.vx v20, v15, x28 // ..............................................................................................................................................................................*.......................................................... + vadd.vv v9, v1, v17 // ..............................................................................................................................................................................*.......................................................... + vle32.v v10, (x10) // ................................................................................................................................................................................*........................................................ + vmul.vx v15, v9, x13 // ................................................................................................................................................................................*........................................................ + vmul.vx v22, v30, x23 // ..................................................................................................................................................................................*...................................................... + vsub.vv v25, v3, v6 // ..................................................................................................................................................................................*...................................................... + vadd.vv v6, v3, v6 // ....................................................................................................................................................................................*.................................................... + vmulh.vx v26, v22, x5 // ....................................................................................................................................................................................*.................................................... + vsub.vv v30, v8, v26 // ......................................................................................................................................................................................*.................................................. + vmulh.vx v2, v31, x30 // ........................................................................................................................................................................................*................................................ + vmulh.vx v22, v0, x5 // ........................................................................................................................................................................................*................................................ + vmulh.vx v18, v12, x5 // ..........................................................................................................................................................................................*.............................................. + vsub.vv v11, v10, v30 // ..........................................................................................................................................................................................*.............................................. + vsub.vv v3, v1, v17 // ............................................................................................................................................................................................*............................................ + vmul.vx v28, v11, x29 // ............................................................................................................................................................................................*............................................ + vmulh.vx v31, v11, x28 // ..............................................................................................................................................................................................*.......................................... + vmulh.vx v1, v28, x5 // ..............................................................................................................................................................................................*.......................................... + vmul.vx v0, v3, x29 // ................................................................................................................................................................................................*........................................ + vsub.vv v11, v31, v1 // ................................................................................................................................................................................................*........................................ + vsub.vv v29, v25, v11 // ..................................................................................................................................................................................................*...................................... + vadd.vv v25, v25, v11 // ..................................................................................................................................................................................................*...................................... + vmulh.vx v17, v3, x28 // ....................................................................................................................................................................................................*.................................... + vmulh.vx v3, v24, x5 // ....................................................................................................................................................................................................*.................................... + vsub.vv v12, v20, v3 // ......................................................................................................................................................................................................*.................................. + vmulh.vx v0, v0, x5 // ......................................................................................................................................................................................................*.................................. + vsub.vv v14, v17, v0 // ........................................................................................................................................................................................................*................................ + vmulh.vx v24, v21, x28 // ........................................................................................................................................................................................................*................................ + vle32.v v17, (x10) // ..........................................................................................................................................................................................................*.............................. + vadd.vv v26, v10, v30 // ..........................................................................................................................................................................................................*.............................. + vadd.vv v8, v17, v5 // ............................................................................................................................................................................................................*............................ + vsub.vv v4, v17, v5 // ............................................................................................................................................................................................................*............................ + vsub.vv v30, v24, v22 // ..............................................................................................................................................................................................................*.......................... + vmul.vx v28, v26, x13 // ..............................................................................................................................................................................................................*.......................... + vmulh.vx v21, v26, x30 // ................................................................................................................................................................................................................*........................ + vmulh.vx v26, v28, x5 // ................................................................................................................................................................................................................*........................ + vmulh.vx v0, v15, x5 // ..................................................................................................................................................................................................................*...................... + vsub.vv v19, v21, v26 // ..................................................................................................................................................................................................................*...................... + vle32.v v27, (x10) // ....................................................................................................................................................................................................................*.................... + vsub.vv v21, v6, v19 // ....................................................................................................................................................................................................................*.................... + vadd.vv v17, v6, v19 // ......................................................................................................................................................................................................................*.................. + vle32.v v19, (x10) // ......................................................................................................................................................................................................................*.................. + vmul.vx v11, v19, x23 // ........................................................................................................................................................................................................................*................ + vsub.vv v20, v16, v23 // ........................................................................................................................................................................................................................*................ + lw x23, (_ZETA_EXP_0TO3_L2+2)*4(x11) // .........................................................................................................................................................................................................................*............... + vmulh.vx v24, v11, x5 // ..........................................................................................................................................................................................................................*.............. + vmulh.vx v11, v19, x16 // ..........................................................................................................................................................................................................................*.............. + vsub.vv v24, v11, v24 // ............................................................................................................................................................................................................................*............ + vadd.vv v16, v16, v23 // ............................................................................................................................................................................................................................*............ + vsub.vv v1, v2, v18 // ..............................................................................................................................................................................................................................*.......... + vadd.vv v15, v27, v24 // ..............................................................................................................................................................................................................................*.......... + vsub.vv v11, v8, v1 // ................................................................................................................................................................................................................................*........ + vadd.vv v8, v8, v1 // ................................................................................................................................................................................................................................*........ + vmulh.vx v31, v9, x30 // ..................................................................................................................................................................................................................................*...... + vmulh.vx v26, v11, x21 // ..................................................................................................................................................................................................................................*...... + lw x30, (_ZETA_EXP_0TO3_L3+3)*4(x11) // ...................................................................................................................................................................................................................................*..... + vsub.vv v19, v31, v0 // ....................................................................................................................................................................................................................................*.... + vmul.vx v2, v11, x23 // ....................................................................................................................................................................................................................................*.... + vsub.vv v10, v27, v24 // ......................................................................................................................................................................................................................................*.. + vmulh.vx v2, v2, x5 // ......................................................................................................................................................................................................................................*.. + lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // .......................................................................................................................................................................................................................................*. + vsub.vv v7, v26, v2 // ........................................................................................................................................................................................................................................* + vadd.vv v18, v10, v14 // ........................................................................................................................................................................................................................................* + + // ----------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------- + // vsub.vv v10, v10, v14 // *........................................................................................................................................................................................................................................ + // vsub.vv v3, v15, v19 // ........*................................................................................................................................................................................................................................ + // lw x28, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // ...*..................................................................................................................................................................................................................................... + // vmul.vx v26, v3, x23 // ....................*.................................................................................................................................................................................................................... + // vmul.vx v9, v10, x25 // ........*................................................................................................................................................................................................................................ + // lw x8, (_ZETA_EXP_0TO3_L3+1)*4(x11) // ...............................*......................................................................................................................................................................................................... + // vmulh.vx v10, v10, x15 // ..*...................................................................................................................................................................................................................................... + // vmulh.vx v6, v9, x5 // ............*............................................................................................................................................................................................................................ + // lw x27, (_ZETA_EXP_0TO3_L3+7)*4(x11) // ......................*.................................................................................................................................................................................................................. + // vsub.vv v14, v10, v6 // ..............*.......................................................................................................................................................................................................................... + // vadd.vv v10, v15, v19 // *........................................................................................................................................................................................................................................ + // lw x13, (_ZETA_EXP_0TO3_L3+0)*4(x11) // .......*................................................................................................................................................................................................................................. + // vmul.vx v1, v10, x7 // ......*.................................................................................................................................................................................................................................. + // vsub.vv v9, v4, v12 // ..*...................................................................................................................................................................................................................................... + // vmulh.vx v27, v10, x6 // .....................*................................................................................................................................................................................................................... + // lw x26, (_ZETA_EXP_0TO3_L3+6)*4(x11) // .............*........................................................................................................................................................................................................................... + // vmulh.vx v15, v9, x15 // ....*.................................................................................................................................................................................................................................... + // vmulh.vx v10, v1, x5 // ......................*.................................................................................................................................................................................................................. + // lw x22, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // .*....................................................................................................................................................................................................................................... + // vsub.vv v23, v27, v10 // ........................*................................................................................................................................................................................................................ + // vmulh.vx v10, v3, x21 // ............................*............................................................................................................................................................................................................ + // lw x15, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // .....*................................................................................................................................................................................................................................... + // vmul.vx v27, v18, x31 // ..........*.............................................................................................................................................................................................................................. + // vsub.vv v28, v17, v23 // ...........................*............................................................................................................................................................................................................. + // lw x18, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // ......................................*.................................................................................................................................................................................................. + // vmulh.vx v24, v26, x5 // ..............................*.......................................................................................................................................................................................................... + // vmulh.vx v6, v8, x6 // ..........................................*.............................................................................................................................................................................................. + // vmul.vx v0, v9, x25 // ..................*...................................................................................................................................................................................................................... + // lw x6, (_ZETA_EXP_0TO3_L3+4)*4(x11) // .................*....................................................................................................................................................................................................................... + // vmulh.vx v26, v0, x5 // ........................................*................................................................................................................................................................................................ + // lw x23, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // .........................*............................................................................................................................................................................................................... + // vsub.vv v10, v10, v24 // ................................*........................................................................................................................................................................................................ + // vsub.vv v2, v15, v26 // ......................................................*.................................................................................................................................................................................. + // vmulh.vx v0, v18, x9 // ..............*.......................................................................................................................................................................................................................... + // vadd.vv v15, v21, v10 // ..................................*...................................................................................................................................................................................................... + // vadd.vv v9, v17, v23 // ..........................*.............................................................................................................................................................................................................. + // vsub.vv v19, v21, v10 // ...................................*..................................................................................................................................................................................................... + // vmulh.vx v10, v27, x5 // ............................................................................*............................................................................................................................................................ + // vmul.vx v21, v8, x7 // ....*.................................................................................................................................................................................................................................... + // vadd.vv v8, v29, v14 // ................*........................................................................................................................................................................................................................ + // lw x19, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // ..........*.............................................................................................................................................................................................................................. + // vadd.vv v1, v4, v12 // ......*.................................................................................................................................................................................................................................. + // vmulh.vx v21, v21, x5 // ...................*..................................................................................................................................................................................................................... + // lw x14, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // ...............*......................................................................................................................................................................................................................... + // vsub.vv v22, v6, v21 // ............................................*............................................................................................................................................................................................ + // vsub.vv v6, v29, v14 // ................*........................................................................................................................................................................................................................ + // vmul.vx v4, v1, x31 // ...........*............................................................................................................................................................................................................................. + // vmulh.vx v3, v28, x30 // ............................................................*............................................................................................................................................................................ + // lw x30, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // ....................*.................................................................................................................................................................................................................... + // vmul.vx v14, v28, x29 // ...............................................................*......................................................................................................................................................................... + // vmulh.vx v27, v19, x27 // ........................................................................*................................................................................................................................................................ + // vmul.vx v11, v19, x26 // ..........................................................*.............................................................................................................................................................................. + // vmul.vx v18, v9, x13 // ......................................*.................................................................................................................................................................................................. + // vmulh.vx v26, v11, x5 // ..........................................................................*.............................................................................................................................................................. + // vmulh.vx v23, v6, x30 // .....................................*................................................................................................................................................................................................... + // vsub.vv v12, v27, v26 // ................................................................................*........................................................................................................................................................ + // vmul.vx v21, v6, x23 // ................................*........................................................................................................................................................................................................ + // vsub.vv v5, v13, v30 // ........................................................*................................................................................................................................................................................ + // vadd.vv v29, v13, v30 // ..........................................................*.............................................................................................................................................................................. + // vsub.vv v30, v5, v2 // ....................................................................................*.................................................................................................................................................... + // vadd.vv v28, v5, v2 // ............................................................*............................................................................................................................................................................ + // vsub.vv v5, v0, v10 // ..............................................................................*.......................................................................................................................................................... + // vadd.vv v10, v20, v7 // ..............................................................................*.......................................................................................................................................................... + // vsub.vv v0, v20, v7 // ..................................................................................................*...................................................................................................................................... + // vsub.vv v6, v0, v12 // ....................................................................................................*.................................................................................................................................... + // vadd.vv v6, v0, v12 // ....................................................................................................*.................................................................................................................................... + // vadd.vv v13, v25, v5 // ..................................................................................*...................................................................................................................................................... + // vsub.vv v20, v25, v5 // ................................................................................*........................................................................................................................................................ + // vadd.vv v19, v16, v22 // ................................................*........................................................................................................................................................................................ + // vmulh.vx v12, v21, x5 // ..........................................................................*.............................................................................................................................................................. + // vmulh.vx v21, v14, x5 // ....................................................................*.................................................................................................................................................................... + // vsub.vv v7, v23, v12 // ............................................................................*............................................................................................................................................................ + // vsub.vv v12, v30, v7 // ......................................................................................*.................................................................................................................................................. + // vadd.vv v6, v30, v7 // ......................................................................................*.................................................................................................................................................. + // vsub.vv v7, v16, v22 // ..................................................*...................................................................................................................................................................................... + // vmulh.vx v14, v4, x5 // ..........................................*.............................................................................................................................................................................................. + // vsub.vv v2, v3, v21 // ..........................................................................................*.............................................................................................................................................. + // vmul.vx v4, v15, x6 // .............................................*........................................................................................................................................................................................... + // vmul.vx v6, v13, x22 // ......................................................................................................*.................................................................................................................................. + // vmulh.vx v24, v15, x12 // ....................................*.................................................................................................................................................................................................... + // vmulh.vx v3, v4, x5 // ..............................................................................................................*.......................................................................................................................... + // vsub.vv v16, v24, v3 // ................................................................................................................*........................................................................................................................ + // vmul.vx v21, v8, x19 // .............................*........................................................................................................................................................................................................... + // vsub.vv v0, v10, v16 // ..................................................................................................................*...................................................................................................................... + // vadd.vv v11, v10, v16 // ....................................................................................................................................*.................................................................................................... + // vmulh.vx v8, v8, x14 // ........................*................................................................................................................................................................................................................ + // vmulh.vx v10, v21, x5 // ......................................................*.................................................................................................................................................................................. + // vsub.vv v21, v8, v10 // ........................................................*................................................................................................................................................................................ + // vmul.vx v10, v20, x15 // ........................................................................................*................................................................................................................................................ + // vadd.vv v8, v28, v21 // ........................................................................*................................................................................................................................................................ + // vsub.vv v21, v28, v21 // ..............................................................*.......................................................................................................................................................................... + // vmulh.vx v12, v20, x28 // ..................................................................................*...................................................................................................................................................... + // vmulh.vx v23, v1, x9 // ..............................................*.......................................................................................................................................................................................... + // vmulh.vx v11, v10, x5 // ..........................................................................................*.............................................................................................................................................. + // vmulh.vx v10, v18, x5 // ....................................................................*.................................................................................................................................................................... + // vse32.v v17, (x10) // ..................................................*...................................................................................................................................................................................... + // vmulh.vx v8, v9, x8 // ........................................*................................................................................................................................................................................................ + // vsub.vv v3, v8, v10 // ......................................................................*.................................................................................................................................................................. + // vmulh.vx v10, v13, x18 // ..................................................................................................*...................................................................................................................................... + // vsub.vv v28, v23, v14 // ....................................................*.................................................................................................................................................................................... + // vsub.vv v4, v19, v3 // ..........................................................................................................*.............................................................................................................................. + // vadd.vv v22, v19, v3 // ....................................................................................*.................................................................................................................................................... + // vadd.vv v27, v29, v28 // ..................................................................*...................................................................................................................................................................... + // vsub.vv v30, v29, v28 // ..................................................................*...................................................................................................................................................................... + // vmulh.vx v23, v6, x5 // ........................................................................................................*................................................................................................................................ + // vsub.vv v21, v12, v11 // ............................................................................................*............................................................................................................................................ + // vsub.vv v15, v10, v23 // ............................................................................................................*............................................................................................................................ + // vse32.v v10, (x10) // ..........................................................................................................*.............................................................................................................................. + // vsub.vv v10, v7, v2 // ................................................................................................*........................................................................................................................................ + // vadd.vv v10, v7, v2 // ............................................................................................*............................................................................................................................................ + // vsub.vv v10, v27, v15 // ..................................................................................................................................................................*...................................................................... + // vse32.v v10, (x10) // ....................................................................................................................*.................................................................................................................... + // vse32.v v10, (x10) // ............................................................................................................*............................................................................................................................ + // vadd.vv v10, v27, v15 // .....................................................................................................................*................................................................................................................... + // vse32.v v10, (x10) // ....................................................*.................................................................................................................................................................................... + // vse32.v v10, (x10) // ................................................................*........................................................................................................................................................................ + // vse32.v v10, (x10) // ................................................*........................................................................................................................................................................................ + // vse32.v v10, (x10) // ......................................................................................................*.................................................................................................................................. + // vse32.v v10, (x10) // ................................................................................................*........................................................................................................................................ + // vse32.v v10, (x10) // ..............................................................................................................*.......................................................................................................................... + // vse32.v v10, (x10) // ...................................................................................................................*..................................................................................................................... + // vse32.v v10, (x10) // ................................................................................................................*........................................................................................................................ + // vadd.vv v10, v30, v21 // ..............................................................................................*.......................................................................................................................................... + // vse32.v v10, (x10) // .......................................................................................................................*................................................................................................................. + // vsub.vv v10, v30, v21 // ..............................................................................................*.......................................................................................................................................... + // vse32.v v10, (x10) // ......................................................................................................................*.................................................................................................................. + // vse32.v v10, (x10) // ........................................................................................................*................................................................................................................................ + // vse32.v v10, (x10) // ........................................................................................*................................................................................................................................................ + // addi x10, x10, (4*0)*4 // .......................................................................................................................*................................................................................................................. + // lw x23, (_ZETA_EXP_0TO3_L0+0)*4(x11) // ...........................................................................................................*............................................................................................................................. + // vle32.v v8, (x10) // ..........................................................................................................................*.............................................................................................................. + // lw x16, (_ZETA_EXP_0TO3_L0+1)*4(x11) // ............................................*............................................................................................................................................................................................ + // li x5, 8380417 // ...............................................................................................................*......................................................................................................................... + // lw x29, (_ZETA_EXP_0TO3_L1+2)*4(x11) // ................................................................*........................................................................................................................................................................ + // vmul.vx v21, v8, x23 // ............................................................................................................................*............................................................................................................ + // vmulh.vx v10, v8, x16 // ..............................................................................................................................*.......................................................................................................... + // lw x13, (_ZETA_EXP_0TO3_L1+0)*4(x11) // ..............................................*.......................................................................................................................................................................................... + // vle32.v v29, (x10) // ................................................................................................................................*........................................................................................................ + // vmulh.vx v6, v21, x5 // ..............................................................................................................................*.......................................................................................................... + // lw x30, (_ZETA_EXP_0TO3_L1+1)*4(x11) // ..............................................................*.......................................................................................................................................................................... + // vsub.vv v30, v10, v6 // ................................................................................................................................*........................................................................................................ + // vle32.v v14, (x10) // ..................................................................................................................................................*...................................................................................... + // vle32.v v6, (x10) // ....................................................................................................................................................*.................................................................................... + // lw x28, (_ZETA_EXP_0TO3_L1+3)*4(x11) // ...................................................................................*..................................................................................................................................................... + // vadd.vv v31, v6, v30 // ..........................................................................................................................................................*.............................................................................. + // vle32.v v21, (x10) // ......................................................................................................................................*.................................................................................................. + // vmul.vx v7, v29, x23 // ..................................................................................................................................*...................................................................................................... + // vmul.vx v22, v21, x23 // ........................................................................................................................................*................................................................................................ + // vle32.v v10, (x10) // ........................................................................................................................*................................................................................................................ + // vle32.v v5, (x10) // ..........................................................................................................................................................................................................*.............................. + // vmulh.vx v3, v21, x16 // ..........................................................................................................................................*.............................................................................................. + // vmulh.vx v21, v10, x16 // ............................................................................................................................*............................................................................................................ + // vmulh.vx v11, v7, x5 // ........................................................................................................................................*................................................................................................ + // vle32.v v8, (x10) // ......................................................................................................................................................................................................................*.................. + // vsub.vv v7, v6, v30 // ......................................................................................................................................................................*.................................................................. + // vmul.vx v10, v10, x23 // ..........................................................................................................................*.............................................................................................................. + // vmulh.vx v10, v10, x5 // ..............................................................................................................................................................*.......................................................................... + // vmulh.vx v25, v29, x16 // ..................................................................................................................................*...................................................................................................... + // vsub.vv v15, v21, v10 // ................................................................................................................................................................*........................................................................ + // vle32.v v2, (x10) // ......................................................................................................................................*.................................................................................................. + // vsub.vv v10, v25, v11 // ..........................................................................................................................................*.............................................................................................. + // vle32.v v4, (x10) // ................................................................................................................................................................................*........................................................ + // vsub.vv v17, v2, v10 // ........................................................................................................................................................................*................................................................ + // vle32.v v1, (x10) // ................................................................................................................................................*........................................................................................ + // vadd.vv v20, v2, v10 // ............................................................................................................................................*............................................................................................ + // vmul.vx v10, v17, x29 // ..........................................................................................................................................................................*.............................................................. + // vmul.vx v21, v1, x23 // ..................................................................................................................................................................................*...................................................... + // vmulh.vx v29, v22, x5 // ........................................................................................................................................................*................................................................................ + // lw x7, (_ZETA_EXP_0TO3_L2+0)*4(x11) // .....................................................................................*................................................................................................................................................... + // vmulh.vx v21, v21, x5 // ....................................................................................................................................................................................*.................................................... + // vmulh.vx v19, v1, x16 // ....................................................................................................................................................................*.................................................................... + // lw x31, (_ZETA_EXP_0TO3_L2+4)*4(x11) // .................................................................................*....................................................................................................................................................... + // vsub.vv v21, v19, v21 // ......................................................................................................................................................................................*.................................................. + // vsub.vv v12, v3, v29 // ..........................................................................................................................................................*.............................................................................. + // lw x15, (_ZETA_EXP_0TO3_L2+7)*4(x11) // .......................................................................................*................................................................................................................................................. + // vadd.vv v27, v4, v21 // ..........................................................................................................................................................................................................*.............................. + // vsub.vv v23, v4, v21 // ..........................................................................................................................................................................................*.............................................. + // lw x6, (_ZETA_EXP_0TO3_L2+1)*4(x11) // .............................................................................................*........................................................................................................................................... + // vadd.vv v16, v14, v12 // ........................................................................................................................................................................*................................................................ + // vmul.vx v22, v27, x13 // ..............................................................................................................................................................................................................*.......................... + // vmulh.vx v9, v17, x28 // ........................................................................................................................................................................................................*................................ + // lw x21, (_ZETA_EXP_0TO3_L2+3)*4(x11) // ...........................................................................................*............................................................................................................................................. + // vle32.v v21, (x10) // ................................................................................................................................................*........................................................................................ + // vmul.vx v18, v23, x29 // ............................................................................................................................................................................................*............................................ + // lw x25, (_ZETA_EXP_0TO3_L2+6)*4(x11) // .........................................................................................*............................................................................................................................................... + // vsub.vv v17, v21, v15 // ..................................................................................................................................................................................*...................................................... + // vadd.vv v6, v21, v15 // ....................................................................................................................................................................................*.................................................... + // vmulh.vx v21, v23, x28 // ..............................................................................................................................................................................................*.......................................... + // vle32.v v2, (x10) // ....................................................................................................................................*.................................................................................................... + // vmulh.vx v1, v27, x30 // ................................................................................................................................................................................................................*........................ + // vmul.vx v11, v2, x23 // ............................................................................................................................................*............................................................................................ + // vmulh.vx v11, v11, x5 // ..............................................................................................................................................*.......................................................................................... + // vmulh.vx v26, v18, x5 // ..............................................................................................................................................................................................*.......................................... + // vmul.vx v18, v20, x13 // ..................................................................................................................................................*...................................................................................... + // vsub.vv v30, v21, v26 // ................................................................................................................................................................................................*........................................ + // vle32.v v21, (x10) // ......................................................................................................................................................*.................................................................................. + // vadd.vv v25, v17, v30 // ..................................................................................................................................................................................................*...................................... + // vsub.vv v29, v17, v30 // ..................................................................................................................................................................................................*...................................... + // vsub.vv v13, v14, v12 // ............................................................................................................................................................*............................................................................ + // vmul.vx v17, v7, x29 // ..........................................................................................................................................................................*.............................................................. + // vmulh.vx v15, v7, x28 // ..............................................................................................................................................................................*.......................................................... + // vmulh.vx v30, v17, x5 // ....................................................................................................................................................................................................*.................................... + // vsub.vv v12, v15, v30 // ......................................................................................................................................................................................................*.................................. + // vmul.vx v28, v21, x23 // ..................................................................................................................................................................*...................................................................... + // vmulh.vx v19, v28, x5 // ....................................................................................................................................................................*.................................................................... + // vmulh.vx v17, v22, x5 // ................................................................................................................................................................................................................*........................ + // vmulh.vx v15, v8, x16 // ..........................................................................................................................................................................................................................*.............. + // lw x9, (_ZETA_EXP_0TO3_L2+5)*4(x11) // ...............................................................................................................*......................................................................................................................... + // vmul.vx v14, v31, x13 // ............................................................................................................................................................*............................................................................ + // vmulh.vx v26, v2, x16 // ..............................................................................................................................................................*.......................................................................... + // vmulh.vx v2, v14, x5 // ..........................................................................................................................................................................................*.............................................. + // vmulh.vx v24, v10, x5 // ........................................................................................................................................................................................*................................................ + // vle32.v v27, (x10) // ............................................................................................................................................................................*............................................................ + // vmulh.vx v20, v20, x30 // ..............................................................................................................................................*.......................................................................................... + // vsub.vv v10, v26, v11 // ............................................................................................................................................................................*............................................................ + // vadd.vv v23, v27, v10 // ..............................................................................................................................................................................*.......................................................... + // vsub.vv v10, v27, v10 // ............................................................................................................................................................................................*............................................ + // vmul.vx v30, v10, x29 // ................................................................................................................................................................................................*........................................ + // vmulh.vx v10, v10, x28 // ....................................................................................................................................................................................................*.................................... + // vsub.vv v22, v1, v17 // ..................................................................................................................................................................................................................*...................... + // lw x29, (_ZETA_EXP_0TO3_L3+2)*4(x11) // .......................................................................................................................................................................................................................................*. + // vmulh.vx v4, v21, x16 // ........................................................................................................................................................*................................................................................ + // vadd.vv v17, v6, v22 // ......................................................................................................................................................................................................................*.................. + // vsub.vv v21, v6, v22 // ....................................................................................................................................................................................................................*.................... + // vmulh.vx v3, v30, x5 // ......................................................................................................................................................................................................*.................................. + // vsub.vv v14, v10, v3 // ........................................................................................................................................................................................................*................................ + // vmulh.vx v10, v18, x5 // ....................................................................................................................................................*.................................................................................... + // vmul.vx v27, v8, x23 // ........................................................................................................................................................................................................................*................ + // vsub.vv v28, v20, v10 // ......................................................................................................................................................*.................................................................................. + // lw x23, (_ZETA_EXP_0TO3_L2+2)*4(x11) // .........................................................................................................................................................................................................................*............... + // vmulh.vx v10, v31, x30 // ........................................................................................................................................................................................*................................................ + // vmulh.vx v11, v27, x5 // ..........................................................................................................................................................................................................................*.............. + // vsub.vv v22, v15, v11 // ............................................................................................................................................................................................................................*............ + // vsub.vv v10, v10, v2 // ..............................................................................................................................................................................................................................*.......... + // vsub.vv v20, v16, v28 // ........................................................................................................................................................................................................................*................ + // vadd.vv v16, v16, v28 // ............................................................................................................................................................................................................................*............ + // vsub.vv v18, v4, v19 // ......................................................................................................................................................................*.................................................................. + // vle32.v v27, (x10) // ....................................................................................................................................................................................................................*.................... + // vmul.vx v3, v23, x13 // ................................................................................................................................................................................*........................................................ + // vadd.vv v15, v27, v22 // ..............................................................................................................................................................................................................................*.......... + // vmulh.vx v7, v23, x30 // ..................................................................................................................................................................................................................................*...... + // vmulh.vx v8, v3, x5 // ..................................................................................................................................................................................................................*...................... + // vsub.vv v19, v7, v8 // ....................................................................................................................................................................................................................................*.... + // vsub.vv v30, v9, v24 // ..............................................................................................................................................................................................................*.......................... + // vadd.vv v6, v5, v18 // ............................................................................................................................................................................................................*............................ + // lw x12, (_ZETA_EXP_0TO3_L3+5)*4(x11) // ...................................................................................................................................................*..................................................................................... + // vsub.vv v4, v5, v18 // ............................................................................................................................................................................................................*............................ + // vsub.vv v11, v6, v10 // ................................................................................................................................................................................................................................*........ + // lw x30, (_ZETA_EXP_0TO3_L3+3)*4(x11) // ...................................................................................................................................................................................................................................*..... + // vadd.vv v8, v6, v10 // ................................................................................................................................................................................................................................*........ + // vmul.vx v6, v11, x23 // ....................................................................................................................................................................................................................................*.... + // vmulh.vx v10, v6, x5 // ......................................................................................................................................................................................................................................*.. + // vmulh.vx v6, v11, x21 // ..................................................................................................................................................................................................................................*...... + // vsub.vv v7, v6, v10 // ........................................................................................................................................................................................................................................* + // vsub.vv v10, v27, v22 // ......................................................................................................................................................................................................................................*.. + // vadd.vv v18, v10, v14 // ........................................................................................................................................................................................................................................* + + end: + // Postamble + vsub.vv v10, v10, v14 // ......................................................................................................................*....................................................................................................................... + vsub.vv v3, v15, v19 // ......................................................................................................................*....................................................................................................................... + lw x28, (_ZETA_EXP_0TO3_L3+8+3)*4(x11) // .......................................................................................................................*...................................................................................................................... + vmul.vx v26, v3, x23 // ........................................................................................................................*..................................................................................................................... + vmul.vx v9, v10, x25 // ........................................................................................................................*..................................................................................................................... + lw x8, (_ZETA_EXP_0TO3_L3+1)*4(x11) // .........................................................................................................................*.................................................................................................................... + vmulh.vx v10, v10, x15 // ..........................................................................................................................*................................................................................................................... + vmulh.vx v6, v9, x5 // ..........................................................................................................................*................................................................................................................... + lw x27, (_ZETA_EXP_0TO3_L3+7)*4(x11) // ...........................................................................................................................*.................................................................................................................. + vsub.vv v14, v10, v6 // ............................................................................................................................*................................................................................................................. + vadd.vv v10, v15, v19 // ............................................................................................................................*................................................................................................................. + lw x13, (_ZETA_EXP_0TO3_L3+0)*4(x11) // ..............................................................................................................................*............................................................................................................... + vmul.vx v1, v10, x7 // ..............................................................................................................................*............................................................................................................... + vsub.vv v9, v4, v12 // ................................................................................................................................*............................................................................................................. + vmulh.vx v27, v10, x6 // ................................................................................................................................*............................................................................................................. + lw x26, (_ZETA_EXP_0TO3_L3+6)*4(x11) // .................................................................................................................................*............................................................................................................ + vmulh.vx v15, v9, x15 // ..................................................................................................................................*........................................................................................................... + vmulh.vx v10, v1, x5 // ..................................................................................................................................*........................................................................................................... + lw x22, (_ZETA_EXP_0TO3_L3+8+0)*4(x11) // ....................................................................................................................................*......................................................................................................... + vsub.vv v23, v27, v10 // ....................................................................................................................................*......................................................................................................... + vmulh.vx v10, v3, x21 // .....................................................................................................................................*........................................................................................................ + lw x15, (_ZETA_EXP_0TO3_L3+8+2)*4(x11) // ......................................................................................................................................*....................................................................................................... + vmul.vx v27, v18, x31 // ......................................................................................................................................*....................................................................................................... + vsub.vv v28, v17, v23 // .......................................................................................................................................*...................................................................................................... + lw x18, (_ZETA_EXP_0TO3_L3+8+1)*4(x11) // ........................................................................................................................................*..................................................................................................... + vmulh.vx v24, v26, x5 // ........................................................................................................................................*..................................................................................................... + vmulh.vx v6, v8, x6 // ..........................................................................................................................................*................................................................................................... + vmul.vx v0, v9, x25 // ..........................................................................................................................................*................................................................................................... + lw x6, (_ZETA_EXP_0TO3_L3+4)*4(x11) // ...........................................................................................................................................*.................................................................................................. + vmulh.vx v26, v0, x5 // ............................................................................................................................................*................................................................................................. + lw x23, (_ZETA_EXP_0TO3_L3+8+6)*4(x11) // ............................................................................................................................................*................................................................................................. + vsub.vv v10, v10, v24 // .............................................................................................................................................*................................................................................................ + vsub.vv v2, v15, v26 // ...............................................................................................................................................*.............................................................................................. + vmulh.vx v0, v18, x9 // ...............................................................................................................................................*.............................................................................................. + vadd.vv v15, v21, v10 // .................................................................................................................................................*............................................................................................ + vadd.vv v9, v17, v23 // .................................................................................................................................................*............................................................................................ + vsub.vv v19, v21, v10 // ...................................................................................................................................................*.......................................................................................... + vmulh.vx v10, v27, x5 // ...................................................................................................................................................*.......................................................................................... + vmul.vx v21, v8, x7 // .....................................................................................................................................................*........................................................................................ + vadd.vv v8, v29, v14 // .....................................................................................................................................................*........................................................................................ + lw x19, (_ZETA_EXP_0TO3_L3+8+4)*4(x11) // ......................................................................................................................................................*....................................................................................... + vadd.vv v1, v4, v12 // .......................................................................................................................................................*...................................................................................... + vmulh.vx v21, v21, x5 // .......................................................................................................................................................*...................................................................................... + lw x14, (_ZETA_EXP_0TO3_L3+8+5)*4(x11) // .........................................................................................................................................................*.................................................................................... + vsub.vv v22, v6, v21 // .........................................................................................................................................................*.................................................................................... + vsub.vv v6, v29, v14 // ..........................................................................................................................................................*................................................................................... + vmul.vx v4, v1, x31 // ...........................................................................................................................................................*.................................................................................. + vmulh.vx v3, v28, x30 // ............................................................................................................................................................*................................................................................. + lw x30, (_ZETA_EXP_0TO3_L3+8+7)*4(x11) // .............................................................................................................................................................*................................................................................ + vmul.vx v14, v28, x29 // .............................................................................................................................................................*................................................................................ + vmulh.vx v27, v19, x27 // ...............................................................................................................................................................*.............................................................................. + vmul.vx v11, v19, x26 // ...............................................................................................................................................................*.............................................................................. + vmul.vx v18, v9, x13 // .................................................................................................................................................................*............................................................................ + vmulh.vx v26, v11, x5 // .................................................................................................................................................................*............................................................................ + vmulh.vx v23, v6, x30 // ...................................................................................................................................................................*.......................................................................... + vsub.vv v12, v27, v26 // ...................................................................................................................................................................*.......................................................................... + vmul.vx v21, v6, x23 // .....................................................................................................................................................................*........................................................................ + vsub.vv v5, v13, v30 // .....................................................................................................................................................................*........................................................................ + vadd.vv v29, v13, v30 // .......................................................................................................................................................................*...................................................................... + vsub.vv v30, v5, v2 // .......................................................................................................................................................................*...................................................................... + vadd.vv v28, v5, v2 // .........................................................................................................................................................................*.................................................................... + vsub.vv v5, v0, v10 // .........................................................................................................................................................................*.................................................................... + vadd.vv v10, v20, v7 // ...........................................................................................................................................................................*.................................................................. + vsub.vv v0, v20, v7 // ...........................................................................................................................................................................*.................................................................. + vsub.vv v6, v0, v12 // .............................................................................................................................................................................*................................................................ + vadd.vv v6, v0, v12 // .............................................................................................................................................................................*................................................................ + vadd.vv v13, v25, v5 // ...............................................................................................................................................................................*.............................................................. + vsub.vv v20, v25, v5 // ...............................................................................................................................................................................*.............................................................. + vadd.vv v19, v16, v22 // .................................................................................................................................................................................*............................................................ + vmulh.vx v12, v21, x5 // .................................................................................................................................................................................*............................................................ + vmulh.vx v21, v14, x5 // ...................................................................................................................................................................................*.......................................................... + vsub.vv v7, v23, v12 // ...................................................................................................................................................................................*.......................................................... + vsub.vv v12, v30, v7 // .....................................................................................................................................................................................*........................................................ + vadd.vv v6, v30, v7 // .......................................................................................................................................................................................*...................................................... + vsub.vv v7, v16, v22 // .......................................................................................................................................................................................*...................................................... + vmulh.vx v14, v4, x5 // .........................................................................................................................................................................................*.................................................... + vsub.vv v2, v3, v21 // .........................................................................................................................................................................................*.................................................... + vmul.vx v4, v15, x6 // ...........................................................................................................................................................................................*.................................................. + vmul.vx v6, v13, x22 // ...........................................................................................................................................................................................*.................................................. + vmulh.vx v24, v15, x12 // .............................................................................................................................................................................................*................................................ + vmulh.vx v3, v4, x5 // .............................................................................................................................................................................................*................................................ + vsub.vv v16, v24, v3 // ...............................................................................................................................................................................................*.............................................. + vmul.vx v21, v8, x19 // ...............................................................................................................................................................................................*.............................................. + vsub.vv v0, v10, v16 // .................................................................................................................................................................................................*............................................ + vadd.vv v11, v10, v16 // .................................................................................................................................................................................................*............................................ + vmulh.vx v8, v8, x14 // ...................................................................................................................................................................................................*.......................................... + vmulh.vx v10, v21, x5 // ...................................................................................................................................................................................................*.......................................... + vsub.vv v21, v8, v10 // .....................................................................................................................................................................................................*........................................ + vmul.vx v10, v20, x15 // .....................................................................................................................................................................................................*........................................ + vadd.vv v8, v28, v21 // .......................................................................................................................................................................................................*...................................... + vsub.vv v21, v28, v21 // .......................................................................................................................................................................................................*...................................... + vmulh.vx v12, v20, x28 // .........................................................................................................................................................................................................*.................................... + vmulh.vx v23, v1, x9 // .........................................................................................................................................................................................................*.................................... + vmulh.vx v11, v10, x5 // ...........................................................................................................................................................................................................*.................................. + vmulh.vx v10, v18, x5 // ...........................................................................................................................................................................................................*.................................. + vse32.v v17, (x10) // .............................................................................................................................................................................................................*................................ + vmulh.vx v8, v9, x8 // .............................................................................................................................................................................................................*................................ + vsub.vv v3, v8, v10 // ...............................................................................................................................................................................................................*.............................. + vmulh.vx v10, v13, x18 // ................................................................................................................................................................................................................*............................. + vsub.vv v28, v23, v14 // .................................................................................................................................................................................................................*............................ + vsub.vv v4, v19, v3 // ...................................................................................................................................................................................................................*.......................... + vadd.vv v22, v19, v3 // ...................................................................................................................................................................................................................*.......................... + vadd.vv v27, v29, v28 // .....................................................................................................................................................................................................................*........................ + vsub.vv v30, v29, v28 // .....................................................................................................................................................................................................................*........................ + vmulh.vx v23, v6, x5 // .......................................................................................................................................................................................................................*...................... + vsub.vv v21, v12, v11 // .......................................................................................................................................................................................................................*...................... + vsub.vv v15, v10, v23 // .........................................................................................................................................................................................................................*.................... + vse32.v v10, (x10) // .........................................................................................................................................................................................................................*.................... + vsub.vv v10, v7, v2 // ...........................................................................................................................................................................................................................*.................. + vadd.vv v10, v7, v2 // ...........................................................................................................................................................................................................................*.................. + vsub.vv v10, v27, v15 // .............................................................................................................................................................................................................................*................ + vse32.v v10, (x10) // .............................................................................................................................................................................................................................*................ + vse32.v v10, (x10) // ...............................................................................................................................................................................................................................*.............. + vadd.vv v10, v27, v15 // ...............................................................................................................................................................................................................................*.............. + vse32.v v10, (x10) // .................................................................................................................................................................................................................................*............ + vse32.v v10, (x10) // .................................................................................................................................................................................................................................*............ + vse32.v v10, (x10) // ...................................................................................................................................................................................................................................*.......... + vse32.v v10, (x10) // ...................................................................................................................................................................................................................................*.......... + vse32.v v10, (x10) // .....................................................................................................................................................................................................................................*........ + vse32.v v10, (x10) // .....................................................................................................................................................................................................................................*........ + vse32.v v10, (x10) // .......................................................................................................................................................................................................................................*...... + vse32.v v10, (x10) // .......................................................................................................................................................................................................................................*...... + vadd.vv v10, v30, v21 // .........................................................................................................................................................................................................................................*.... + vse32.v v10, (x10) // .........................................................................................................................................................................................................................................*.... + vsub.vv v10, v30, v21 // ...........................................................................................................................................................................................................................................*.. + vse32.v v10, (x10) // ...........................................................................................................................................................................................................................................*.. + vse32.v v10, (x10) // .............................................................................................................................................................................................................................................* + vse32.v v10, (x10) // .............................................................................................................................................................................................................................................* + + ntt_8l_level0to3_rvv 1 + + ntt_8l_level0to3_rvv 2 + ntt_8l_level0to3_rvv 3 + ntt_8l_level4to7_rvv 0, _ZETA_EXP_4TO7_P0_L4, _ZETA_EXP_4TO7_P0_L5, _ZETA_EXP_4TO7_P0_L6, _ZETA_EXP_4TO7_P0_L7 + ntt_8l_level4to7_rvv 1, _ZETA_EXP_4TO7_P1_L4, _ZETA_EXP_4TO7_P1_L5, _ZETA_EXP_4TO7_P1_L6, _ZETA_EXP_4TO7_P1_L7 + ntt_8l_level4to7_rvv 2, _ZETA_EXP_4TO7_P2_L4, _ZETA_EXP_4TO7_P2_L5, _ZETA_EXP_4TO7_P2_L6, _ZETA_EXP_4TO7_P2_L7 + ntt_8l_level4to7_rvv 3, _ZETA_EXP_4TO7_P3_L4, _ZETA_EXP_4TO7_P3_L5, _ZETA_EXP_4TO7_P3_L6, _ZETA_EXP_4TO7_P3_L7 + +ret + +.globl intt_8l_rvv +.align 2 +intt_8l_rvv_opt_c908: + vsetivli t2, 4, e32, m1, tu, mu + li t0, q + intt_8l_level0to3_rvv 0, _ZETA_EXP_INTT_0TO3_P0_L0, _ZETA_EXP_INTT_0TO3_P0_L1, _ZETA_EXP_INTT_0TO3_P0_L2, _ZETA_EXP_INTT_0TO3_P0_L3 + intt_8l_level0to3_rvv 1, _ZETA_EXP_INTT_0TO3_P1_L0, _ZETA_EXP_INTT_0TO3_P1_L1, _ZETA_EXP_INTT_0TO3_P1_L2, _ZETA_EXP_INTT_0TO3_P1_L3 + intt_8l_level0to3_rvv 2, _ZETA_EXP_INTT_0TO3_P2_L0, _ZETA_EXP_INTT_0TO3_P2_L1, _ZETA_EXP_INTT_0TO3_P2_L2, _ZETA_EXP_INTT_0TO3_P2_L3 + intt_8l_level0to3_rvv 3, _ZETA_EXP_INTT_0TO3_P3_L0, _ZETA_EXP_INTT_0TO3_P3_L1, _ZETA_EXP_INTT_0TO3_P3_L2, _ZETA_EXP_INTT_0TO3_P3_L3 + intt_8l_level4to7_rvv 0 + intt_8l_level4to7_rvv 1 + intt_8l_level4to7_rvv 2 + intt_8l_level4to7_rvv 3 +ret + +.globl poly_basemul_8l_rvv +.align 2 +poly_basemul_8l_rvv: + li t2, 32 + vsetvli t2, t2, e32, m8, tu, mu + li t0, q + li t1, qinv + li t2, 8 +poly_basemul_8l_rvv_loop: + vle32.v v0, (a1)// addi a1, a1, 4*4*8 + vle32.v v8, (a2)// addi a2, a2, 4*4*8 + montmul_ref v16, v0, v8, t0, t1, v24 + vse32.v v16, (a0)// addi a0, a0, 4*4*8 + addi t2, t2, -1 + bnez t2, poly_basemul_8l_rvv_loop +ret + +.globl poly_basemul_acc_8l_rvv +.align 2 +poly_basemul_acc_8l_rvv: + li t2, 32 + vsetvli t2, t2, e32, m8, tu, mu + li t0, q + li t1, qinv + li t2, 8 +poly_basemul_acc_8l_rvv_loop: + vle32.v v0, (a1)// addi a1, a1, 4*4*8 + vle32.v v8, (a2)// addi a2, a2, 4*4*8 + montmul_ref v16, v0, v8, t0, t1, v24 + vle32.v v24, (a0) + vadd.vv v24, v24, v16 + vse32.v v24, (a0)// addi a0, a0, 4*4*8 + addi t2, t2, -1 + bnez t2, poly_basemul_acc_8l_rvv_loop +ret + +.globl ntt2normal_order_8l_rvv +.align 2 +ntt2normal_order_8l_rvv: + vsetivli t2, 4, e32, m1, tu, mu + // for vgather + li t4, _MASK_0101*4 + add t4, t4, a1 + vle32.v v31, (t4) + li t4, _MASK_2323*4 + add t4, t4, a1 + vle32.v v30, (t4) + li t4, _MASK_1032*4 + add t4, t4, a1 + vle32.v v29, (t4) + // for vmerge + li t4, _MASK_1100*4 + add t4, t4, a1 + vle32.v v28, (t4) + li t4, _MASK_1010*4 + add t4, t4, a1 + vle32.v v27, (t4) + li a2, 4 +ntt2normal_order_8l_rvv_loop: + vle32.v v1, (a0)// addi a0, a0, 4*4 + vle32.v v2, (a0)// addi a0, a0, 4*4 + vle32.v v3, (a0)// addi a0, a0, 4*4 + vle32.v v4, (a0)// addi a0, a0, 4*4 + vle32.v v5, (a0)// addi a0, a0, 4*4 + vle32.v v6, (a0)// addi a0, a0, 4*4 + vle32.v v7, (a0)// addi a0, a0, 4*4 + vle32.v v8, (a0)// addi a0, a0, 4*4 + vle32.v v9, (a0)// addi a0, a0, 4*4 + vle32.v v10, (a0)// addi a0, a0, 4*4 + vle32.v v11, (a0)// addi a0, a0, 4*4 + vle32.v v12, (a0)// addi a0, a0, 4*4 + vle32.v v13, (a0)// addi a0, a0, 4*4 + vle32.v v14, (a0)// addi a0, a0, 4*4 + vle32.v v15, (a0)// addi a0, a0, 4*4 + vle32.v v16, (a0)// addi a0, a0, -(4*15)*4 + vmv.v.v v0, v27 + shuffle1_x4 v1, v2, v3, v4, v5, v6, v7, v8, v17,v18,v19,v20,v21,v22,v23,v24, v29 + shuffle1_x4 v9, v10,v11,v12,v13,v14,v15,v16, v17,v18,v19,v20,v21,v22,v23,v24, v29 + vmv.v.v v0, v28 + shuffle2_x4 v1, v2, v3, v4, v5, v6, v7, v8, v17,v18,v19,v20,v21,v22,v23,v24, v31,v30 + shuffle2_x4 v9, v10,v11,v12,v13,v14,v15,v16, v17,v18,v19,v20,v21,v22,v23,v24, v31,v30 + vse32.v v1, (a0)// addi a0, a0, 4*4 + vse32.v v2, (a0)// addi a0, a0, 4*4 + vse32.v v3, (a0)// addi a0, a0, 4*4 + vse32.v v4, (a0)// addi a0, a0, 4*4 + vse32.v v5, (a0)// addi a0, a0, 4*4 + vse32.v v6, (a0)// addi a0, a0, 4*4 + vse32.v v7, (a0)// addi a0, a0, 4*4 + vse32.v v8, (a0)// addi a0, a0, 4*4 + vse32.v v9, (a0)// addi a0, a0, 4*4 + vse32.v v10, (a0)// addi a0, a0, 4*4 + vse32.v v11, (a0)// addi a0, a0, 4*4 + vse32.v v12, (a0)// addi a0, a0, 4*4 + vse32.v v13, (a0)// addi a0, a0, 4*4 + vse32.v v14, (a0)// addi a0, a0, 4*4 + vse32.v v15, (a0)// addi a0, a0, 4*4 + vse32.v v16, (a0)// addi a0, a0, 4*4 + addi a2, a2, -1 + bnez a2, ntt2normal_order_8l_rvv_loop +ret + +.globl normal2ntt_order_8l_rvv +.align 2 +normal2ntt_order_8l_rvv: + vsetivli t2, 4, e32, m1, tu, mu + // for vgather + li t4, _MASK_0101*4 + add t4, t4, a1 + vle32.v v31, (t4) + li t4, _MASK_2323*4 + add t4, t4, a1 + vle32.v v30, (t4) + li t4, _MASK_1032*4 + add t4, t4, a1 + vle32.v v29, (t4) + // for vmerge + li t4, _MASK_1100*4 + add t4, t4, a1 + vle32.v v28, (t4) + li t4, _MASK_1010*4 + add t4, t4, a1 + vle32.v v27, (t4) + li a2, 4 +normal2ntt_order_8l_rvv_loop: + vle32.v v1, (a0)// addi a0, a0, 4*4 + vle32.v v2, (a0)// addi a0, a0, 4*4 + vle32.v v3, (a0)// addi a0, a0, 4*4 + vle32.v v4, (a0)// addi a0, a0, 4*4 + vle32.v v5, (a0)// addi a0, a0, 4*4 + vle32.v v6, (a0)// addi a0, a0, 4*4 + vle32.v v7, (a0)// addi a0, a0, 4*4 + vle32.v v8, (a0)// addi a0, a0, 4*4 + vle32.v v9, (a0)// addi a0, a0, 4*4 + vle32.v v10, (a0)// addi a0, a0, 4*4 + vle32.v v11, (a0)// addi a0, a0, 4*4 + vle32.v v12, (a0)// addi a0, a0, 4*4 + vle32.v v13, (a0)// addi a0, a0, 4*4 + vle32.v v14, (a0)// addi a0, a0, 4*4 + vle32.v v15, (a0)// addi a0, a0, 4*4 + vle32.v v16, (a0)// addi a0, a0, -(4*15)*4 + vmv.v.v v0, v28 + shuffle2_x4 v1, v2, v3, v4, v5, v6, v7, v8, v17,v18,v19,v20,v21,v22,v23,v24, v31,v30 + shuffle2_x4 v9, v10,v11,v12,v13,v14,v15,v16, v17,v18,v19,v20,v21,v22,v23,v24, v31,v30 + vmv.v.v v0, v27 + shuffle1_x4 v1, v2, v3, v4, v5, v6, v7, v8, v17,v18,v19,v20,v21,v22,v23,v24, v29 + shuffle1_x4 v9, v10,v11,v12,v13,v14,v15,v16, v17,v18,v19,v20,v21,v22,v23,v24, v29 + vse32.v v1, (a0)// addi a0, a0, 4*4 + vse32.v v2, (a0)// addi a0, a0, 4*4 + vse32.v v3, (a0)// addi a0, a0, 4*4 + vse32.v v4, (a0)// addi a0, a0, 4*4 + vse32.v v5, (a0)// addi a0, a0, 4*4 + vse32.v v6, (a0)// addi a0, a0, 4*4 + vse32.v v7, (a0)// addi a0, a0, 4*4 + vse32.v v8, (a0)// addi a0, a0, 4*4 + vse32.v v9, (a0)// addi a0, a0, 4*4 + vse32.v v10, (a0)// addi a0, a0, 4*4 + vse32.v v11, (a0)// addi a0, a0, 4*4 + vse32.v v12, (a0)// addi a0, a0, 4*4 + vse32.v v13, (a0)// addi a0, a0, 4*4 + vse32.v v14, (a0)// addi a0, a0, 4*4 + vse32.v v15, (a0)// addi a0, a0, 4*4 + vse32.v v16, (a0)// addi a0, a0, 4*4 + addi a2, a2, -1 + bnez a2, normal2ntt_order_8l_rvv_loop +ret + +.globl poly_reduce_rvv +.align 2 +poly_reduce_rvv: + li t2, 32 + vsetvli t2, t2, e32, m8, tu, mu + li a1, 4194304 // 1<<22 + li a2, q + li a3, 4 + addi a4, a0, 0 +poly_reduce_rvv_loop: + vle32.v v0, (a0)// addi a0, a0, 4*4*8 + vle32.v v8, (a0)// addi a0, a0, 4*4*8 + vadd.vx v16, v0, a1 + vadd.vx v24, v8, a1 + vsra.vi v16, v16, 23 + vsra.vi v24, v24, 23 + vmul.vx v16, v16, a2 + vmul.vx v24, v24, a2 + vsub.vv v0, v0, v16 + vsub.vv v8, v8, v24 + vse32.v v0, (a4)// addi a4, a4, 4*4*8 + vse32.v v8, (a4)// addi a4, a4, 4*4*8 + addi a3, a3, -1 + bnez a3, poly_reduce_rvv_loop +ret \ No newline at end of file diff --git a/examples/opt/riscv/ntt_kyber/intt_kyber_rvv_vlen128_opt_c908.s b/examples/opt/riscv/ntt_kyber/intt_kyber_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..7a0e20630 --- /dev/null +++ b/examples/opt/riscv/ntt_kyber/intt_kyber_rvv_vlen128_opt_c908.s @@ -0,0 +1,2866 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzeta1, vzeta2, vzeta3, vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 v16, v24, v18, v26, v20, v28, v22, v30, v17, v25, v19, v27, v21, v29, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v3, v2, v3, v2, v3, v2, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v16, v20, v18, v22, v24, v28, v26, v30, v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v17, v21, v19, v23, v25, v29, v27, v31, v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, vidx8_0122, vidx_low, vidx_high, x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro intt_rvv_level0to5 off, ZETA_EXP_INTT_0TO5_L0 + li a7, 8*8 + addi a5, a0, (\off*128)*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a6, a0, (64+\off*128)*2 + vle16.v v0, (a5) + vle16.v v8, (a6) + li t3, -10079 + li t2, 1441 // qinv*(mont^2/128) and mont^2/128 + addi a5, a1, \ZETA_EXP_INTT_0TO5_L0*2 + // Through exhaustive testing, it is found that for any 16-bit signed + // number, after using Montgomery modular multiplication to multiply + // the mont^2/128 constant, the coefficient range is [-1999,1999]. Note + // that 1999/3329 is approximately 0.6005. + montmul_const v16, v0, t2, t3, t0, v24 + montmul_const v24, v8, t2, t3, t0, v0 + vsetivli a7, 8, e16, m1, tu, mu + // level 0 + vl4re16.v v0, (a5) + addi a5, a5, 8*4*2 + gs_bfu_vv_ref_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v0, v1, v2, v3, v0, v1, v2, v3, t0, t1, v8, v9, v10, v11, v12, v13, v14, v15 + // level 1 + vl4re16.v v0, (a5) + addi a5, a5, 8*4*2 + gs_bfu_vv_x8 v16, v20, v24, v28, v17, v21, v25, v29, v18, v22, v26, v30, v19, v23, v27, v31, v1, v0, v3, v2, v1, v0, v3, v2, v1, v0, v3, v2, v1, v0, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // level 2 + vl2re16.v v0, (a5) + addi a5, a5, 8*2*2 + gs_bfu_vv_x8 v16, v24, v17, v25, v18, v26, v19, v27, v20, v28, v21, v29, v22, v30, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v1, v0, v1, v0, v1, v0, v1, v0, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v17, v18, v19, v8, v9, v10, v11, v1, v1 + shuffle_x2 v20, v21, v22, v23, v8, v9, v10, v11, v1, v1 + shuffle_x2 v24, v25, v26, v27, v8, v9, v10, v11, v1, v1 + shuffle_x2 v28, v29, v30, v31, v8, v9, v10, v11, v1, v1 + // level 3 + vl2re16.v v4, (a5) + addi a5, a5, 8*2*2 + gs_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v20, v22, v8, v9, v10, v11, v1, v2 + shuffle_x2 v24, v26, v28, v30, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v19, v21, v23, v8, v9, v10, v11, v1, v2 + barrettRdcX2 v16, v18, v8, v9, a4, t0 + shuffle_x2 v25, v27, v29, v31, v8, v9, v10, v11, v1, v2 + // level 4 + vl2re16.v v4, (a5) + addi a5, a5, 8*2*2 + gs_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + barrettRdc v20, v8, a4, t0 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + lh t3, 0*2(a5) + lh t2, 1*2(a5) + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 5 + // polynomial coefficients will be redirected to v0-v15 + gs_bfu_vx_x8 v0, v8, v1, v9, v2, v10, v3, v11, v4, v12, v5, v13, v6, v14, v7, v15, v16, v20, v24, v28, v17, v21, v25, v29, v18, v22, v26, v30, v19, v23, v27, v31, t2, t3, t2, t3, t2, t3, t2, t3, t2, t3, t2, t3, t2, t3, t2, t3, t0 + barrettRdc v1, v16, a4, t0 + addi a5, a0, (\off*128)*2 + addi a6, a0, (64+\off*128)*2 + vs8r.v v0, (a5) + vs8r.v v8, (a6) +.endm + +.macro intt_rvv_level6 + li a7, 8*8 + addi a6, a1, _ZETA_EXP_INTT_L6*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t2, 0*2(a6) + lh t1, 1*2(a6) + addi a5, a0, 128*2 + // a[0-63] & a[128-191] + vle16.v v16, (a0) + vle16.v v24, (a5) + gs_bfu_vx v16, v24, t1, t2, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + gs_bfu_vx v16, v24, t1, t2, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.globl intt_rvv_vlen128 +.align 2 +intt_rvv_vlen128_opt_c908: + li t0, 3329 + li t1, -3327 + li a4, 20159 + csrwi vxrm, 0 // round-to-nearest-up (add +0.5 LSB) + start: + // Instructions: 944 + // Expected cycles: 472 + // Expected IPC: 2.00 + // + // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|--------------------- + li x1, 8*8 // *....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x25, x11, _ZETA_EXP_INTT_0TO5_P0_L0*2 // *....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vsetvli x21, x1, e16, m8, tu, mu // .*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x9, x10, (64+0*128)*2 // .*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + li x20, -10079 // ..*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + li x8, 1441 // ..*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + addi x15, x25, 8*4*2 // ...*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle16.v v24, (x9) // ...*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + addi x12, x10, (0*128)*2 // ....*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vle16.v v0, (x12) // ....*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v8, v24, x8 // .....*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v24, v24, x20 // .....*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v16, v0, x20 // ......*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v24, v24, x5 // ......*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v16, v16, x5 // .......*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v0, v0, x8 // .......*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v24, v8, v24 // ........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v0, v0, v16 // ........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsetivli x31, 8, e16, m1, tu, mu // .........*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + vsub.vv v8, v0, v2 // .........*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v1, v3 // ..........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v1, v3 // ..........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v29, v31 // ...........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v0, v2 // ...........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v24, v26 // ............*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v5, v7 // ............*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v4, v6 // .............*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v28, v30 // .............*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v5, v7 // ..............*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v24, v26 // ..............*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v28, v30 // ...............*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v0, (x25) // ...............*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:sew=16 + vadd.vv v20, v4, v6 // ................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v25, v27 // ................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v25, v25, v27 // .................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v9, v1 // .................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v29, v29, v31 // ..................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v18, v8, v0 // ..................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v10, v2 // ...................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v11, v3 // ...................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v19, v12, v0 // ....................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v23, v13, v1 // ....................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v14, v2 // .....................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v15, v3 // .....................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v18, v18, x6 // ......................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v22, v22, x6 // ......................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v26, v26, x6 // .......................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v30, v30, x6 // .......................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v7, v19, x6 // ........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v23, v23, x6 // ........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v27, v27, x6 // .........................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v31, v31, x6 // .........................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v8, v0 // ..........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v12, v0 // ..........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v5, v9, v1 // ...........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v1 // ...........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v10, v10, v2 // ............................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v14, v14, v2 // ............................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v11, v3 // .............................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v15, v3 // .............................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v18, x5 // ..............................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v22, v22, x5 // ..............................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v19, v26, x5 // ...............................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v0, (x15) // ...............................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:sew=16 + addi x15, x15, 8*4*2 // ................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v30, v30, x5 // ................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v7, x5 // .................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v23, v23, x5 // .................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v27, x5 // ..................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v31, v31, x5 // ..................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v8, v18 // ...................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v5, v22 // ...................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v10, v19 // ....................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v11, v30 // ....................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v12, v7 // .....................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v13, v23 // .....................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v14, v27 // ......................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v15, v31 // ......................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v16, v20 // .......................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v24, v28 // .......................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v17, v21 // ........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v25, v29 // ........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v18, v22 // .........................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v26, v30 // .........................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v19, v23 // ..........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v27, v31 // ..........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v20 // ...........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v24, v28 // ...........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v21 // ............................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v25, v25, v29 // ............................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v18, v22 // .............................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v26, v26, v30 // .............................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v19, v19, v23 // ..............................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v27, v27, v31 // ..............................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v4, v9, v2 // ...............................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v6, v9, v3 // ...............................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v21, v15, v2 // ................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v8, v0 // ................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v5, v8, v1 // .................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v15, v3 // .................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v16, v24 // ..................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v21, x5 // ..................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v20, v10, v0 // ...................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v13, v2 // ...................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v21, v10, v1 // ....................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v7, v30 // ....................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v13, v3 // .....................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v23, v29, x5 // .....................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v14, v0 // ......................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v12, v0 // ......................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v14, v1 // .......................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v15, v23 // .......................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v12, v1 // ........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v22, x5 // ........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v11, v2 // .........................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v2, v20, x5 // .........................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v18, v26 // ..........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v15, v13 // ..........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v12, x5 // ...........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v21, v2 // ...........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v11, v3 // ............................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v20, v4, x5 // ............................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v23, v29, x5 // .............................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v4, v9, x5 // .............................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v2, v7 // ..............................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v17, v25 // ..............................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v28, v23 // ...............................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v19, v27 // ...............................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v0, (x15) // ................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=16 + addi x15, x15, 8*2*2 // ................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v28, v6, v20 // .................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v20, v5, v4 // .................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v20, v28 // ..................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v21, v29 // ..................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v22, v30 // ...................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v23, v31 // ...................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v24 // ....................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v25 // ....................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v18, v26 // .....................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v19, v19, v27 // .....................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v28 // ......................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v21, v29 // ......................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + li x31, 0x55 // .......................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vv v25, v9, v1 // .......................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v9, v0 // ........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v10, v1 // ........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v10, v0 // .........................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v10, v14, v0 // .........................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v22, v22, v30 // ..........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v27, x5 // ..........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v11, v1 // ...........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v13, v1 // ...........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v6, v14, v1 // ............................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v24, v8, v1 // ............................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v12, v1 // .............................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v5, v15, v1 // .............................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v25, v27 // ..............................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v8, v0 // ..............................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v13, v0 // ...............................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v8, v15, v0 // ...............................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v4, v12, v0 // ................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v27, x5 // ................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v30, x5 // .................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v3, v8, x5 // .................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v4, x5 // ..................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v24, v27 // ..................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v29, x5 // ...................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v7, v30 // ...................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v11, v0 // ....................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v10, x5 // ....................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v28, v27 // .....................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v2, v12 // .....................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v30, x5 // ......................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v23, v23, v31 // ......................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x19, x11, _MASK_10325476*2 // .......................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + vle16.v v1, (x19) // .......................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v5, v3 // ........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v9, v27 // ........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v6, v7 // .........................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x31 // .........................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v17, v1 // ..........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v16, v1 // ..........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v19, v1 // ...........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v18, v1 // ...........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v8, v16, v0 // ............................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v17, v9, v0 // ............................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v10, v18, v0 // .............................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v19, v11, v0 // .............................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v21, v1 // ..............................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v27, v1 // ..............................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v26, v1 // ...............................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v18, v19 // ...............................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v18, v19 // ................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v14, v26, v0 // ................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v20, v1 // .................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v21, v10, v0 // .................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v31, v1 // ..................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v30, v1 // ..................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v2, v0 // ...................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v15, v30, v0 // ...................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v24, v1 // ....................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v30, v31 // ....................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v29, v1 // .....................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v25, v2, v0 // .....................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v25, v1 // ......................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v2, v14, v24, v0 // ......................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v8, v20, v0 // .......................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v27, v4, v0 // .......................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v2, v3 // ........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v28, v1 // ........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v16, v17 // .........................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v23, v1 // .........................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v21, v6 // ..........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v17 // ..........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v10, v22, v0 // ...........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v21, v6 // ...........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v22, v1 // ............................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v26, v27 // ............................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v23, v14, v0 // .............................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v25, v0 // .............................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v2, v3 // ..............................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v7, v28, v0 // ..............................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v22, v11, v6 // ...............................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v4, (x15) // ...............................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ // @slothy:sew=16 + addi x15, x15, 8*2*2 // ................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v11, v11, v6 // ................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v28, v29 // .................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v26, v26, v27 // .................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v28, v29 // ..................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v30, v30, v31 // ..................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v17, v8, v4 // ...................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v19, v9, v4 // ...................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v21, v10, v4 // ....................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v23, v11, v4 // ....................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v25, v12, v4 // .....................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v13, v4 // .....................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + li x16, 0x33 // ......................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + vmul.vv v7, v14, v4 // ......................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v8, v5 // .......................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x20, x11, _MASK_01014545*2 // .......................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vv v2, v9, v5 // ........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x16 // ........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v4, v15, v4 // .........................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v6, v7, x5 // .........................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v15, v5 // ..........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v3, v14, v5 // ..........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v27, x5 // ...........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v29, v10, v5 // ...........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v19, x5 // ............................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v12, v5 // ............................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v21, v21, x5 // .............................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v10, v17, x5 // .............................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v11, v5 // ..............................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v25, x5 // ..............................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v27, v13, v5 // ...............................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x20) // ...............................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x20, x11, _MASK_23236767*2 // ................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v19, v2, v15 // ................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v2, (x20) // .................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v23, x5 // .................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v18, v1 // ..................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v31, v10 // ..................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v11, v4, x5 // ...................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v16, v2 // ...................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v27, v14 // ....................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v12, v25 // ....................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v22, v1 // .....................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v29, v21 // .....................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v9, v11 // ......................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v18, v4, v0 // ......................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v8, v15 // .......................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v7, v16, v0 // .......................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v3, v6 // ........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v20, v2 // ........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v10, v20, v0 // .........................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v22, v11, v0 // .........................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v26, v1 // ..........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v24, v2 // ..........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v30, v1 // ...........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v28, v2 // ...........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v8, v24, v0 // ............................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v26, v9, v0 // ............................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v10, v28, v0 // .............................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v11, v0 // .............................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v20, v22 // ..............................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v23, v1 // ..............................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v16, x14 // ...............................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v28, v30 // ...............................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v19, v1 // ................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v18, x14 // ................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v17, v2 // .................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v19, v6, v0 // .................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v21, v2 // ..................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v13, v21, v0 // ..................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v7, v17, v0 // ...................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vssra.vi v7, v15, 10 // ...................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vssra.vi v8, v12, 10 // ....................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v29, v2 // ....................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v7, v7, x5 // .....................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v31, v1 // .....................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v10, v8, x5 // ......................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v22 // ......................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v27, v1 // .......................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v16, v7 // .......................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v15, v29, v0 // ........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v16, v18, v10 // ........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v12, v0 // .........................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v17, v19 // .........................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v14, v0 // ..........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v24, v26 // ..........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v25, v2 // ...........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v29, v31 // ...........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v7, v16 // ............................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v5, v25, v0 // ............................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v7, v16 // .............................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v27, v13, v0 // .............................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v24, v26 // ..............................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v4, (x15) // ..............................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... // @slothy:sew=16 + addi x15, x15, 8*2*2 // ...............................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + vsub.vv v13, v21, v23 // ...............................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v25, v27 // ................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v28, v30 // ................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v19 // .................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v21, v23 // .................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v25, v25, v27 // ..................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v29, v29, v31 // ..................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v18, v8, v4 // ...................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v9, v4 // ...................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v10, v4 // ....................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v11, v4 // ....................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x4, x11, _MASK_01230123*2 // .....................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + vmul.vv v27, v12, v4 // .....................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + li x31, 0x0f // ......................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + vmulh.vx v23, v20, x14 // ......................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v2, v18, x5 // .......................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v13, v4 // .......................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v27, x5 // ........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v12, v5 // ........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v5 // .........................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vssra.vi v6, v23, 10 // .........................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v8, v5 // ..........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v7, v27 // ..........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v30, x5 // ...........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v3, v11, v5 // ...........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v15, v4 // ............................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v14, v5 // ............................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v26, x5 // .............................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x31 // .............................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v30, x5 // ..............................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v1, v6, x5 // ..............................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v12, v2 // ...............................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v15, v5 // ...............................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v23, v31, x5 // ................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v9, v5 // ................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v11, v14, v4 // .................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v22, x5 // .................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v2, v30 // ..................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v4, v10, v5 // ..................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v11, v11, x5 // ...................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v20, v20, v1 // ...................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x4) // ....................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v4, v27 // ....................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x31, x11, _MASK_45674567*2 // .....................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. + vle16.v v2, (x31) // .....................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v3, v7 // ......................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v13, v23 // ......................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v15, v12 // .......................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v8, v11 // .......................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v20, v1 // ........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v16, v2 // ........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v28, v1 // .........................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v24, v2 // .........................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v8, v16, v0 // ..........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v20, v9, v0 // ..........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v10, v24, v0 // ...........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v28, v11, v0 // ...........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v21, v1 // ............................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v17, v2 // ............................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v8, v17, v0 // .............................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x28, 0*2(x15) // .............................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + vsub.vv v8, v16, v20 // ..............................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x7, 1*2(x15) // ..............................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + vmerge.vvm v15, v21, v9, v0 // ...............................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v24, v28 // ...............................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v29, v1 // ................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v7, v15 // ................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v21, v25, v0 // .................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v25, v2 // .................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v29, v12, v0 // ..................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v22, v1 // ..................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v21, v25 // ...................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v12, v18, v0 // ...................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v3, v21, v25 // ....................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v18, v2 // ....................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v22, v25, v0 // .....................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v30, v1 // .....................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v5, v25 // ......................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v26, v2 // ......................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v4, v5, v25 // .......................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v22, v0 // .......................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v21, v26, v0 // ........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v19, v2 // ........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v26, v30 // .........................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v27, v2 // .........................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v2, v7, v15 // ..........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v23, v1 // ..........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v31, v1 // ...........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v1, v24, v28 // ...........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v25, v0 // ............................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v7, v19, v0 // ............................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v21, v0 // .............................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v15, v27, v0 // .............................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v0, v16, v20 // ..............................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v19, v23 // ..............................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v27, v31 // ...............................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v26, v30 // ...............................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v6, v19, v23 // ................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v7, v27, v31 // ................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v20, v8, x28 // .................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v28, v9, x28 // .................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v21, v10, x28 // ..................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v29, v11, x28 // ..................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v22, v12, x28 // ...................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v30, v13, x28 // ...................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v23, v14, x28 // ....................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x15, x10, (64+0*128)*2 // ....................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + vmulh.vx v24, v1, x14 // .....................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x16, x10, (64+1*128)*2 // .....................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + vmulh.vx v19, v22, x5 // ......................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v25, v15, x28 // ......................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x31, x10, (0*128)*2 // .......................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + vmulh.vx v17, v23, x5 // .......................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vssra.vi v16, v24, 10 // ........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v12, x7 // ........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v24, v28, x5 // .........................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v20, x5 // .........................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v26, v16, x5 // ..........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v15, x7 // ..........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v10, v10, x7 // ...........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v28, v29, x5 // ...........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v25, x5 // ............................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v31, v13, x7 // ............................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v14, x7 // .............................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v16, v30, x5 // .............................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v15, v27 // ..............................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v9, x7 // ..............................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v21, x5 // ...............................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v11, x7 // ...............................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v21, v8, x7 // ................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v12, v19 // ................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v10, v30 // .................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v31, v16 // .................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v21, v18 // ..................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v25, v17 // ..................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v1, v1, v26 // ...................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v27, v24 // ...................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v29, v28 // ....................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vs8r.v v0, (x31) // ....................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:sew=16 + li x31, 8*8 // .....................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + vs8r.v v8, (x15) // .....................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:sew=16 + vsetvli x20, x31, e16, m8, tu, mu // ......................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + addi x31, x10, (1*128)*2 // ......................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + vle16.v v0, (x31) // .......................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v8, (x16) // .......................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + li x28, -10079 // ........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + li x7, 1441 // ........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + addi x15, x11, _ZETA_EXP_INTT_0TO5_P1_L0*2 // .........................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + vmul.vx v16, v0, x28 // .........................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v24, v0, x7 // ..........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v16, v16, x5 // ..........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v16, v24, v16 // ...........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v24, v8, x28 // ...........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v0, v8, x7 // ............................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v24, v24, x5 // ............................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v0, v0, v24 // .............................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsetivli x19, 8, e16, m1, tu, mu // .............................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + vsub.vv v14, v1, v3 // ..............................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v25, v1, v3 // ..............................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v0, v2 // ...............................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v0, v2 // ...............................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v0, (x15) // ................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... // @slothy:sew=16 + addi x15, x15, 8*4*2 // ................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + vsub.vv v15, v5, v7 // .................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v16, v18 // .................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v18 // ..................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v17, v19 // ..................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v15, v3 // ...................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v8, v0 // ...................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v4, v6 // ....................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v12, v0 // ....................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v31, v31, x6 // .....................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v18, v26, x6 // .....................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v19 // ......................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v19, v27, x6 // ......................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v29, v5, v7 // .......................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v11, v3 // .......................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v21, v23 // ........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v10, v2 // ........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v14, v2 // .........................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v30, v9, x6 // .........................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v28, v13, v1 // ..........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v20, v22 // ..........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v21, v23 // ...........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v22 // ...........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v23, v28, x6 // ............................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v9, v1 // ............................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v4, v6 // .............................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v26, v26, x6 // .............................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v27, v27, x6 // ..............................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v22, v22, x6 // ..............................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v8, v0 // ...............................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v9, v1 // ...............................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v10, v10, v2 // ................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v11, v3 // ................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v12, v0 // .................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v1 // .................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v14, v14, v2 // ..................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v15, v3 // ..................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v18, x5 // ...................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v22, x5 // ...................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v2, v26, x5 // ....................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v30, x5 // ....................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v5, v19, x5 // .....................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v23, v23, x5 // .....................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v27, x5 // ......................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v31, v31, x5 // ......................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v8, v18 // .......................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v9, v7 // .......................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v10, v2 // ........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v11, v30 // ........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v12, v5 // .........................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v13, v23 // .........................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v14, v27 // ..........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v15, v31 // ..........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v0, (x15) // ...........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:sew=16 + addi x15, x15, 8*4*2 // ...........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ + vsub.vv v8, v16, v20 // ............................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v20 // ............................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v24, v28 // .............................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v24, v28 // .............................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v17, v21 // ..............................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v21 // ..............................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v25, v29 // ...............................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v25, v25, v29 // ...............................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v22, v7 // ................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v22, v7 // ................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v19, v30 // .................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v26, v19, v30 // .................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v5, v23 // ..................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v19, v5, v23 // ..................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v27, v31 // ...................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v27, v27, v31 // ...................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v20, v8, v0 // ....................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v28, v9, v2 // ....................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v21, v10, v0 // .....................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v11, v2 // .....................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v12, v0 // ......................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v13, v2 // ......................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v23, v14, v0 // .......................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v15, v2 // .......................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v8, v1 // ........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v9, v3 // ........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v10, v10, v1 // .........................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v11, v3 // .........................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v12, v1 // ..........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v3 // ..........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v14, v1 // ...........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v15, v3 // ...........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v2, v20, x5 // ............................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v28, v28, x5 // ............................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v21, v21, x5 // .............................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v5, v29, x5 // .............................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v22, v22, x5 // ..............................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v30, x5 // ..............................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v23, v23, x5 // ...............................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v31, v31, x5 // ...............................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v8, v2 // ................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v9, v28 // ................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v10, v21 // .................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v11, v5 // .................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v6, v12, v22 // ..................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v13, v30 // ..................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v0, (x15) // ...................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:sew=16 + addi x15, x15, 8*2*2 // ...................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + vsub.vv v8, v16, v24 // ....................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v24 // ....................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v17, v25 // .....................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v25 // .....................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v18, v26 // ......................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v18, v26 // ......................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v19, v27 // .......................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v19, v19, v27 // .......................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v7, v23 // ........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v15, v31 // ........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v2, v28 // .........................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v2, v28 // .........................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v21, v5 // ..........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v21, v5 // ..........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v6, v30 // ...........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v22, v6, v30 // ...........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v24, v8, v0 // ............................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v27, v7 // ............................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v23, v27, v7 // .............................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v25, v9, v0 // .............................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v10, v0 // ..............................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v11, v0 // ..............................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v28, v12, v0 // ...............................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v13, v0 // ...............................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v14, v0 // ................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v15, v0 // ................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v8, v1 // .................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v9, v1 // .................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v10, v10, v1 // ..................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v11, v1 // ..................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v6, v13, v1 // ...................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + li x9, 0x55 // ...................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + vmulh.vv v3, v12, v1 // ....................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v15, v1 // ....................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v14, v1 // .....................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x20, x11, _MASK_10325476*2 // .....................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + vle16.v v1, (x20) // ......................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x9 // ......................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v17, v1 // .......................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v27, x5 // .......................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v4, v25, x5 // ........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v16, v1 // ........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v26, x5 // .........................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v29, x5 // .........................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v15, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v30, x5 // ..........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v18, v1 // ...........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v11, v13 // ...........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v10, v7 // ............................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v17, v5, v0 // ............................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v6, v25 // .............................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v30, v19, v1 // .............................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v6, v28, x5 // ..............................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v9, v4 // ..............................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v30, v18, v0 // ...............................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v31, x5 // ...............................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v21, v1 // ................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v11, v24, x5 // ................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v3, v6 // .................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v20, v1 // .................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v12, v14 // ..................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v2, v7 // ..................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v4, v20, v0 // ...................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v8, v11 // ...................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v23, v1 // ....................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v19, v15, v0 // ....................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v22, v1 // .....................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v21, v9, v0 // .....................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v10, v22, v0 // ......................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v11, v0 // ......................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v25, v1 // .......................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v24, v1 // .......................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v27, v1 // ........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v26, v1 // ........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v8, v24, v0 // .........................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v25, v9, v0 // .........................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v10, v26, v0 // ..........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v4, (x15) // ..........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:sew=16 + addi x15, x15, 8*2*2 // ...........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + vsub.vv v3, v18, v19 // ...........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v30, v1 // ............................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v18, v19 // ............................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v20, v21 // .............................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v29, v1 // .............................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v16, v17 // ..............................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v21 // ..............................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v31, v1 // ...............................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v24, v25 // ...............................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v17 // ................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v31, v9, v0 // ................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v3, v5 // .................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v2, v27, v11, v0 // .................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v24, v25 // ..................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v28, v1 // ..................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v25, v12, v4 // ...................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v26, v2 // ...................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v29, v17, v0 // ....................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v10, v19, v5 // ....................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v8, v28, v0 // .....................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v22, v23 // .....................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v1, v14, v30, v0 // ......................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v7, v5 // ......................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v29, v17 // .......................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v29, v17 // .......................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v1, v6 // ........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v13, v4 // ........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v22, v22, v23 // .........................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v23, v11, v4 // .........................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v21, v19, v4 // ..........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v19, v3, v4 // ..........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v14, v4 // ...........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v17, v7, v4 // ...........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v15, v4 // ............................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v30, v1, v6 // ............................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v26, v26, v2 // .............................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v11, v5 // .............................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v12, v5 // ..............................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v5 // ..............................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v14, v14, v5 // ...............................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v15, v5 // ...............................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v17, x5 // ................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v19, v19, x5 // ................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v21, v21, x5 // .................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v23, v23, x5 // .................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v10, v21 // ..................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x19, x11, _MASK_01014545*2 // ..................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + vle16.v v1, (x19) // ...................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v9, v19 // ...................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x31, x11, _MASK_23236767*2 // ....................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + vle16.v v2, (x31) // ....................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v4, v25, x5 // .....................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v30, v1 // .....................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v6, v27, x5 // ......................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v8, v17 // ......................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v20, v2 // .......................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + li x31, 0x33 // .......................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + vmv.s.x v0, x31 // ........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v11, v23 // ........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v16, v2 // .........................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v12, v4 // .........................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v22, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v24, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v26, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v21, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v18, v1 // ............................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v18, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v12, v20, v0 // .............................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v22, v3, v0 // .............................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v7, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v26, v27, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v28, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v5, v28, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v31, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v27, v0 // ................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v29, x5 // .................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v10, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v19, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v15, v7 // ..................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v17, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v14, v27 // ...................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v13, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v23, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v8, v17, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v19, v9, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v10, v21, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v11, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v16, x14 // .......................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v9, v18, x14 // .......................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vssra.vi v8, v8, 10 // ........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vssra.vi v9, v9, 10 // ........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v8, v8, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v4, v9, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v20, v22 // ..........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v31, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v16, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v16, v18, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v29, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v22 // ............................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v17, v19 // .............................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v4, (x15) // .............................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:sew=16 + addi x15, x15, 8*2*2 // ..............................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + vsub.vv v11, v28, v30 // ..............................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v31, v3, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v7, v16 // ...............................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v6, v29, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v21, v23 // ................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v25, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v21, v23 // .................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v6, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v27, v29, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v9, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v27, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v24, v26 // ....................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v23, v13, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v25, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v19 // .....................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v24, v26 // ......................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v19, v12, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v25, v29, v3 // .......................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v10, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v29, v3 // ........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v29, v6, v8 // ........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v18, v5 // .........................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v28, v30 // .........................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v18, v18, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v15, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v7, v16 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v11, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v14, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v9, v5 // ............................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v10, v10, v5 // .............................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v11, v5 // .............................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v12, v5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v14, v14, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v15, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v18, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v22, v22, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v3, v27, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x16, x11, _MASK_01230123*2 // .................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + vle16.v v1, (x16) // ..................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=16 + li x4, 0x0f // ..................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + addi x31, x11, _MASK_45674567*2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + vmulh.vx v4, v20, x14 // ...................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v2, (x31) // ....................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v26, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v28, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v23, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v24, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v23, v31, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v10, v7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vssra.vi v31, v4, 10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v29, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v19, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v19, v31, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v17, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v15, v23 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v13, v27 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v21, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v14, v3 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v20, v19 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v15, v17, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v12, v7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v21, v4, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v9, v22 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v28, v5, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v8, v18 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v6, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v30, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v13, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v16, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v11, v30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v6, v16, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v13, v15, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v25, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v10, v25, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v11, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v22, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v18, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v30, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v8, v18, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v22, v9, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v11, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x7, 1*2(x15) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + vrgather.vv v7, v23, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + lh x15, 0*2(x15) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + vsub.vv v12, v18, v22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v3, v25, v29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v7, v19, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v26, v30 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v19, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v26, v30 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v16, v20 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v31, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v17, v21 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v30, v13, x15 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v23, v10, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v24, v28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v15, v27, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v25, v29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v27, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v1, v24, v28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v10, v19, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v31, v4, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v0, v16, v20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v7, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v4, v18, v22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v9, v29 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v20, v8, x15 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v2, v17, v21 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v21, v19, x15 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v6, v7, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v7, v9, v29 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v28, v26, x15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v29, v11, x15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v31, v15, x15 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v9, v26, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v23, v14, x15 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v8, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v22, v12, x15 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v11, v11, x7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v12, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v13, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v14, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v15, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v20, v20, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v28, v28, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v21, v21, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v29, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v22, v22, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v1, x14 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=16 + addi x31, x10, (1*128)*2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + vsub.vv v16, v8, v20 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v24, v31, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v9, v28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=16 + addi x14, x10, 64*2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + vssra.vi v20, v27, 10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v30, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v10, v21 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v11, v29 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v10, v20, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v20, v12, v22 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v23, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v15, v24 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v1, v1, v10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v13, v27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v14, v30 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=16 + vs8r.v v0, (x31) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:sew=16 + addi x31, x10, (64+1*128)*2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + vs8r.v v16, (x31) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:sew=16 + li x31, 8*8 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + vsetvli x17, x31, e16, m8, tu, mu // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + addi x31, x10, 128*2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + addi x15, x31, 64*2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + vle16.v v24, (x31) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... // @slothy:lmul=8 // @slothy:sew=16 + addi x16, x11, _ZETA_EXP_INTT_L6*2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + lh x7, 0*2(x16) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + lh x6, 1*2(x16) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + vle16.v v0, (x10) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v16, v0, v24 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v8, v16, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v16, v16, x6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v8, v8, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v16, v16, v8 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v8, v0, v24 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v16, (x31) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v16, (x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v8, (x10) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v24, (x15) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v0, v16, v24 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v16, v16, v24 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v24, v0, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v8, v0, x6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v24, v24, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v24, v8, v24 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v16, (x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v24, (x15) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:lmul=8 // @slothy:sew=16 + + // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|--------------------- + // li x17, 8*8 // *....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x15, x10, (0*128)*2 // ....*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsetvli x17, x17, e16, m8, tu, mu // .*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x16, x10, (64+0*128)*2 // .*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v0, (x15) // ....*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v8, (x16) // ...*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x28, -10079 // ..*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // li x7, 1441 // ..*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x15, x11, _ZETA_EXP_INTT_0TO5_P0_L0*2 // *....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v16, v0, x28 // ......*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v24, v0, x7 // .......*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v16, v16, x5 // .......*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v16, v24, v16 // ........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v24, v8, x28 // .....*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v8, x7 // .....*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v24, v24, x5 // ......*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v24, v0, v24 // ........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsetivli x17, 8, e16, m1, tu, mu // .........*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vl4re16.v v0, (x15) // ...............*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x15, x15, 8*4*2 // ...*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v16, v18 // .........*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v9, v20, v22 // .............*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v24, v26 // ............*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v11, v28, v30 // .............*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v17, v19 // ..........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v13, v21, v23 // ..............*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v25, v27 // ................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v15, v29, v31 // ...........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v18 // ...........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v20, v20, v22 // ................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v26 // ..............*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v30 // ...............*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v17, v17, v19 // ..........*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v21, v21, v23 // ............*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v27 // .................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v31 // ..................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v18, v8, v0 // ..................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v22, v9, v1 // .................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v26, v10, v2 // ...................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v30, v11, v3 // ...................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v19, v12, v0 // ....................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v23, v13, v1 // ....................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v27, v14, v2 // .....................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v31, v15, v3 // .....................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v18, v18, x6 // ......................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v22, v22, x6 // ......................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v26, v26, x6 // .......................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v30, v30, x6 // .......................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v19, v19, x6 // ........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v23, v23, x6 // ........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v27, v27, x6 // .........................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v31, v31, x6 // .........................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v8, v8, v0 // ..........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v9, v9, v1 // ...........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v10, v10, v2 // ............................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v11, v11, v3 // .............................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v12, v12, v0 // ..........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v13, v13, v1 // ...........................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v14, v14, v2 // ............................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v15, v15, v3 // .............................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v18, v18, x5 // ..............................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v22, v22, x5 // ..............................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v26, v26, x5 // ...............................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v30, v30, x5 // ................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v19, v19, x5 // .................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v23, v23, x5 // .................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v27, v27, x5 // ..................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v31, v31, x5 // ..................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v18, v8, v18 // ...................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v9, v22 // ...................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v10, v26 // ....................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v11, v30 // ....................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v12, v19 // .....................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v23, v13, v23 // .....................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v14, v27 // ......................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v15, v31 // ......................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vl4re16.v v0, (x15) // ...............................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // addi x15, x15, 8*4*2 // ................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v16, v20 // .......................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v9, v24, v28 // .......................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v10, v17, v21 // ........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v11, v25, v29 // ........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v18, v22 // .........................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v13, v26, v30 // .........................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v19, v23 // ..........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v15, v27, v31 // ..........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v20 // ...........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v24, v24, v28 // ...........................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v17, v17, v21 // ............................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v29 // ............................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v22 // .............................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v30 // .............................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v19, v19, v23 // ..............................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v27, v27, v31 // ..............................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v20, v8, v0 // ................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v28, v9, v2 // ...............................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vv v21, v10, v0 // ...................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v29, v11, v2 // .........................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v22, v12, v0 // ......................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v30, v13, v2 // ...................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v23, v14, v0 // ......................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v31, v15, v2 // ................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v8, v8, v1 // .................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v9, v9, v3 // ...............................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v10, v10, v1 // ....................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v11, v11, v3 // ............................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v12, v12, v1 // ........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v13, v13, v3 // .....................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v14, v14, v1 // .......................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v15, v15, v3 // .................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v20, v20, x5 // .............................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v28, v28, x5 // ............................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v21, v21, x5 // .........................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v29, v29, x5 // ...........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v22, v22, x5 // ........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v30, v30, x5 // .....................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v23, v23, x5 // .............................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v31, v31, x5 // ..................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v8, v20 // .................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v9, v28 // .................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v10, v21 // ...........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v29, v11, v29 // ..............................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v12, v22 // ..........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v30, v13, v30 // .......................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v14, v23 // ...............................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v15, v31 // ....................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vl2re16.v v0, (x15) // ................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x15, x15, 8*2*2 // ................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v16, v24 // ..................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v9, v17, v25 // ..............................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v18, v26 // ..........................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v11, v19, v27 // ...............................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v12, v20, v28 // ..................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v13, v21, v29 // ..................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v22, v30 // ...................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v15, v23, v31 // ...................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v24 // ....................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v25 // ....................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v26 // .....................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v19, v19, v27 // .....................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v20, v20, v28 // ......................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v21, v21, v29 // ......................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v22, v22, v30 // ..........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v23, v23, v31 // ......................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v24, v8, v0 // ..............................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v25, v9, v0 // ........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v26, v10, v0 // .........................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v27, v11, v0 // ....................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v28, v12, v0 // ................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v29, v13, v0 // ...............................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vv v30, v14, v0 // .........................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v31, v15, v0 // ...............................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v8, v8, v1 // ............................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v9, v9, v1 // .......................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v10, v10, v1 // ........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v11, v11, v1 // ...........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v12, v12, v1 // .............................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v13, v13, v1 // ...........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v14, v14, v1 // ............................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v15, v15, v1 // .............................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v24, v24, x5 // ................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v25, v25, x5 // ..........................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v26, v26, x5 // ...................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v27, v27, x5 // ......................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v28, v28, x5 // ..................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v29, v29, x5 // .................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v30, v30, x5 // ....................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v31, v31, x5 // .................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v24, v8, v24 // ..................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v25, v9, v25 // ..............................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v10, v26 // .....................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v11, v27 // ........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v12, v28 // .....................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v29, v13, v29 // ...................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v14, v30 // .........................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v15, v31 // ........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + // addi x7, x11, _MASK_10325476*2 // .......................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + // li x31, 0x55 // .......................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + // vle16.v v1, (x7) // .......................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + // vmv.s.x v0, x31 // .........................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v17, v1 // ..........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v16, v1 // ..........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v19, v1 // ...........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v18, v1 // ...........................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v16, v8, v16, v0 // ............................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v17, v9, v0 // ............................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v18, v10, v18, v0 // .............................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v19, v11, v0 // .............................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v21, v1 // ..............................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v20, v1 // .................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v23, v1 // .........................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v22, v1 // ............................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v8, v20, v0 // .......................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v21, v21, v9, v0 // .................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v10, v22, v0 // ...........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v23, v23, v11, v0 // .............................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v25, v1 // ......................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v24, v1 // ....................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ..............................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v26, v1 // ...............................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v24, v8, v24, v0 // ......................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v25, v25, v9, v0 // .....................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v26, v10, v26, v0 // ................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // .......................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v8, v29, v1 // .....................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v28, v1 // ........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v31, v1 // ..................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v30, v1 // ..................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v28, v8, v28, v0 // ..............................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v9, v0 // .............................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v10, v30, v0 // ...................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ...................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + // vl2re16.v v4, (x15) // ...............................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + // addi x15, x15, 8*2*2 // ................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v16, v17 // .........................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v9, v18, v19 // ...............................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v10, v20, v21 // ...........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v11, v22, v23 // ................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v24, v25 // ........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v13, v26, v27 // ............................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v28, v29 // .................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v15, v30, v31 // ....................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v17 // ..........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v18, v18, v19 // ................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v21 // ..........................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v22, v22, v23 // ...............................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v24, v24, v25 // ..............................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v27 // .................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v29 // ..................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v31 // ..................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v17, v8, v4 // ...................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v19, v9, v4 // ...................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v21, v10, v4 // ....................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v23, v11, v4 // ....................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vv v25, v12, v4 // .....................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v27, v13, v4 // .....................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v29, v14, v4 // ......................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v31, v15, v4 // .........................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v8, v8, v5 // .......................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v9, v9, v5 // ........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v10, v10, v5 // ...........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v11, v11, v5 // ..............................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v12, v12, v5 // ............................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v13, v13, v5 // ...............................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v14, v14, v5 // ..........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v15, v15, v5 // ..........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v17, v17, x5 // .............................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v19, v19, x5 // ............................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v21, v21, x5 // .............................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v23, v23, x5 // .................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v25, v25, x5 // ..............................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v27, v27, x5 // ...........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v29, v29, x5 // .........................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v31, v31, x5 // ...................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v17, v8, v17 // ..................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v9, v19 // ................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v21, v10, v21 // .....................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v23, v11, v23 // .......................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v25, v12, v25 // ....................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v13, v27 // ....................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v29, v14, v29 // ........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v15, v31 // ......................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. + // addi x7, x11, _MASK_01014545*2 // .......................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + // addi x28, x11, _MASK_23236767*2 // ................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... + // li x31, 0x33 // ......................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + // vle16.v v1, (x7) // ...............................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + // vle16.v v2, (x28) // .................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x31 // ........................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v18, v1 // ..................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ...................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v22, v1 // .....................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v20, v2 // ........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // .......................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v18, v18, v9, v0 // ......................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v20, v10, v20, v0 // .........................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v22, v22, v11, v0 // .........................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v26, v1 // ..........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v24, v2 // ..........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v30, v1 // ...........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v28, v2 // ...........................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v24, v8, v24, v0 // ............................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v26, v9, v0 // ............................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v28, v10, v28, v0 // .............................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v30, v11, v0 // .............................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v19, v1 // ................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v17, v2 // .................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v23, v1 // ..............................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v21, v2 // ..................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v8, v17, v0 // ...................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v19, v9, v0 // .................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v21, v10, v21, v0 // ..................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v23, v23, v11, v0 // ..........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v16, x14 // ...............................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v18, x14 // ................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + // vssra.vi v8, v8, 10 // ...................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vssra.vi v9, v9, 10 // ....................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v8, x5 // .....................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v9, v9, x5 // ......................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v16, v16, v8 // .......................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v18, v18, v9 // ........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v27, v1 // .......................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v9, v25, v2 // ...........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v10, v31, v1 // .....................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v29, v2 // ....................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v8, v25, v0 // ............................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v9, v0 // .............................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v10, v29, v0 // ........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // .........................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vl2re16.v v4, (x15) // ..............................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + // addi x15, x15, 8*2*2 // ...............................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + // vsub.vv v8, v16, v18 // ............................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... + // vsub.vv v9, v20, v22 // ..............................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v24, v26 // ..........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. + // vsub.vv v11, v28, v30 // ...............................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v12, v17, v19 // .........................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vsub.vv v13, v21, v23 // ...............................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + // vsub.vv v14, v25, v27 // ................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + // vsub.vv v15, v29, v31 // ...........................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v18 // .............................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v22 // ......................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v26 // ..............................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v30 // ................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v19 // .................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v23 // .................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v27 // ..................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v31 // ..................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + // vmul.vv v18, v8, v4 // ...................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + // vmul.vv v22, v9, v4 // ...................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + // vmul.vv v26, v10, v4 // ....................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + // vmul.vv v30, v11, v4 // ....................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + // vmul.vv v19, v12, v4 // .....................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vmul.vv v23, v13, v4 // .......................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmul.vv v27, v14, v4 // .................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... + // vmul.vv v31, v15, v4 // ............................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... + // vmulh.vv v8, v8, v5 // ..........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + // vmulh.vv v9, v9, v5 // ................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + // vmulh.vv v10, v10, v5 // ..................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + // vmulh.vv v11, v11, v5 // ...........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmulh.vv v12, v12, v5 // ........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmulh.vv v13, v13, v5 // .........................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vmulh.vv v14, v14, v5 // ............................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... + // vmulh.vv v15, v15, v5 // ...............................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + // vmulh.vx v18, v18, x5 // .......................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v22, v22, x5 // .................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... + // vmulh.vx v26, v26, x5 // .............................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vmulh.vx v30, v30, x5 // ...........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmulh.vx v19, v19, x5 // ........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmulh.vx v23, v23, x5 // ................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + // vmulh.vx v27, v27, x5 // ...................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vmulh.vx v31, v31, x5 // ..............................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + // vsub.vv v18, v8, v18 // ...............................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + // vsub.vv v22, v9, v22 // .......................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ + // vsub.vv v26, v10, v26 // ....................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v11, v30 // ......................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. + // vsub.vv v19, v12, v19 // ..........................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + // vsub.vv v23, v13, v23 // ......................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. + // vsub.vv v27, v14, v27 // .......................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v15, v31 // ..................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + // addi x7, x11, _MASK_01230123*2 // .....................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + // addi x28, x11, _MASK_45674567*2 // .....................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. + // li x31, 0x0f // ......................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + // vle16.v v1, (x7) // ....................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... + // vle16.v v2, (x28) // .....................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. + // vmv.s.x v0, x31 // .............................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v20, x14 // ......................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + // vssra.vi v8, v8, 10 // .........................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vmul.vx v8, v8, x5 // ..............................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v20, v8 // ...................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v20, v1 // ........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v28, v1 // .........................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v24, v2 // .........................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vmerge.vvm v16, v8, v16, v0 // ..........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. + // vmerge.vvm v20, v20, v9, v0 // ..........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. + // vmerge.vvm v24, v10, v24, v0 // ...........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ + // vmerge.vvm v28, v28, v11, v0 // ...........................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ + // vrgather.vv v8, v21, v1 // ............................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v17, v2 // ............................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v29, v1 // ................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v25, v2 // .................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v8, v17, v0 // .............................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + // vmerge.vvm v21, v21, v9, v0 // ...............................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + // vmerge.vvm v25, v10, v25, v0 // .................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v11, v0 // ..................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v22, v1 // ..................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v18, v2 // ....................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v30, v1 // .....................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v26, v2 // ......................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + // vmerge.vvm v18, v8, v18, v0 // ...................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v22, v9, v0 // .....................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v30, v11, v0 // .......................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ + // lh x28, 0*2(x15) // .............................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + // lh x7, 1*2(x15) // ..............................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v23, v1 // ..........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v19, v2 // ........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v31, v1 // ...........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v27, v2 // .........................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vmerge.vvm v19, v8, v19, v0 // ............................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... + // vmerge.vvm v23, v23, v9, v0 // ............................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v10, v27, v0 // .............................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // .............................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + // vsub.vv v8, v16, v20 // ..............................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + // vsub.vv v9, v24, v28 // ...............................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + // vsub.vv v10, v17, v21 // ................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + // vsub.vv v11, v25, v29 // ...................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v18, v22 // ......................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + // vsub.vv v13, v26, v30 // .........................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vsub.vv v14, v19, v23 // ..............................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + // vsub.vv v15, v27, v31 // ...............................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + // vadd.vv v0, v16, v20 // ..............................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + // vadd.vv v1, v24, v28 // ...........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ + // vadd.vv v2, v17, v21 // ..........................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. + // vadd.vv v3, v25, v29 // ....................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + // vadd.vv v4, v18, v22 // .......................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ + // vadd.vv v5, v26, v30 // ...............................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + // vadd.vv v6, v19, v23 // ................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + // vadd.vv v7, v27, v31 // ................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + // vmul.vx v20, v8, x28 // .................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmul.vx v28, v9, x28 // .................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmul.vx v21, v10, x28 // ..................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmul.vx v29, v11, x28 // ..................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmul.vx v22, v12, x28 // ...................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vmul.vx v30, v13, x28 // ...................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vmul.vx v23, v14, x28 // ....................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + // vmul.vx v31, v15, x28 // ......................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x7 // ................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... + // vmulh.vx v9, v9, x7 // ..............................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x7 // ...........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + // vmulh.vx v11, v11, x7 // ...............................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x7 // ........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... + // vmulh.vx v13, v13, x7 // ............................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x7 // .............................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + // vmulh.vx v15, v15, x7 // ..........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + // vmulh.vx v20, v20, x5 // .........................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vmulh.vx v28, v28, x5 // .........................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vmulh.vx v21, v21, x5 // ...............................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + // vmulh.vx v29, v29, x5 // ...........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + // vmulh.vx v22, v22, x5 // ......................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. + // vmulh.vx v30, v30, x5 // .............................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + // vmulh.vx v23, v23, x5 // .......................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + // vmulh.vx v31, v31, x5 // ............................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + // vsub.vv v8, v8, v20 // ..................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... + // vsub.vv v9, v9, v28 // ...................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... + // vsub.vv v10, v10, v21 // .................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + // vsub.vv v11, v11, v29 // ....................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... + // vsub.vv v12, v12, v22 // ................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... + // vsub.vv v13, v13, v30 // .................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + // vsub.vv v14, v14, v23 // ..................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... + // vsub.vv v15, v15, v31 // ..............................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + // vmulh.vx v16, v1, x14 // .....................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vssra.vi v16, v16, 10 // ........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... + // vmul.vx v16, v16, x5 // ..........................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + // vsub.vv v1, v1, v16 // ...................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... + // addi x15, x10, (0*128)*2 // .......................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + // addi x16, x10, (64+0*128)*2 // ....................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + // vs8r.v v0, (x15) // ....................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... + // vs8r.v v8, (x16) // .....................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + // li x17, 8*8 // .....................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + // addi x15, x10, (1*128)*2 // ......................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + // vsetvli x17, x17, e16, m8, tu, mu // ......................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + // addi x16, x10, (64+1*128)*2 // .....................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vle16.v v0, (x15) // .......................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + // vle16.v v8, (x16) // .......................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + // li x28, -10079 // ........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + // li x7, 1441 // ........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + // addi x15, x11, _ZETA_EXP_INTT_0TO5_P1_L0*2 // .........................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + // vmul.vx v16, v0, x28 // .........................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + // vmulh.vx v24, v0, x7 // ..........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. + // vmulh.vx v16, v16, x5 // ..........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. + // vsub.vv v16, v24, v16 // ...........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ + // vmul.vx v24, v8, x28 // ...........................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ + // vmulh.vx v0, v8, x7 // ............................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... + // vmulh.vx v24, v24, x5 // ............................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... + // vsub.vv v24, v0, v24 // .............................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vsetivli x17, 8, e16, m1, tu, mu // .............................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vl4re16.v v0, (x15) // ................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + // addi x15, x15, 8*4*2 // ................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + // vsub.vv v8, v16, v18 // .................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... + // vsub.vv v9, v20, v22 // ..........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. + // vsub.vv v10, v24, v26 // ...............................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ + // vsub.vv v11, v28, v30 // ....................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... + // vsub.vv v12, v17, v19 // ..................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... + // vsub.vv v13, v21, v23 // ........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... + // vsub.vv v14, v25, v27 // ..............................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + // vsub.vv v15, v29, v31 // .................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v18 // ..................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v22 // ...........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ + // vadd.vv v24, v24, v26 // ...............................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v30 // .............................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vadd.vv v17, v17, v19 // ......................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. + // vadd.vv v21, v21, v23 // ...........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ + // vadd.vv v25, v25, v27 // ..............................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v31 // .......................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + // vmul.vv v18, v8, v0 // ...................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vmul.vv v22, v9, v1 // ............................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + // vmul.vv v26, v10, v2 // ........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... + // vmul.vv v30, v11, v3 // .......................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + // vmul.vv v19, v12, v0 // ....................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... + // vmul.vv v23, v13, v1 // ..........................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. + // vmul.vv v27, v14, v2 // .........................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vmul.vv v31, v15, v3 // ...................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vmul.vx v18, v18, x6 // .....................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vmul.vx v22, v22, x6 // ..............................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... + // vmul.vx v26, v26, x6 // .............................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vmul.vx v30, v30, x6 // .........................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vmul.vx v19, v19, x6 // ......................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. + // vmul.vx v23, v23, x6 // ............................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + // vmul.vx v27, v27, x6 // ..............................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... + // vmul.vx v31, v31, x6 // .....................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vmulh.vv v8, v8, v0 // ...............................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ + // vmulh.vv v9, v9, v1 // ...............................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ + // vmulh.vv v10, v10, v2 // ................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... + // vmulh.vv v11, v11, v3 // ................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... + // vmulh.vv v12, v12, v0 // .................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... + // vmulh.vv v13, v13, v1 // .................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... + // vmulh.vv v14, v14, v2 // ..................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + // vmulh.vv v15, v15, v3 // ..................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + // vmulh.vx v18, v18, x5 // ...................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + // vmulh.vx v22, v22, x5 // ...................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + // vmulh.vx v26, v26, x5 // ....................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmulh.vx v30, v30, x5 // ....................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmulh.vx v19, v19, x5 // .....................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vmulh.vx v23, v23, x5 // .....................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vmulh.vx v27, v27, x5 // ......................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + // vmulh.vx v31, v31, x5 // ......................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + // vsub.vv v18, v8, v18 // .......................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ + // vsub.vv v22, v9, v22 // .......................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ + // vsub.vv v26, v10, v26 // ........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... + // vsub.vv v30, v11, v30 // ........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... + // vsub.vv v19, v12, v19 // .........................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vsub.vv v23, v13, v23 // .........................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vsub.vv v27, v14, v27 // ..........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + // vsub.vv v31, v15, v31 // ..........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + // vl4re16.v v0, (x15) // ...........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ + // addi x15, x15, 8*4*2 // ...........................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ + // vsub.vv v8, v16, v20 // ............................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + // vsub.vv v9, v24, v28 // .............................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + // vsub.vv v10, v17, v21 // ..............................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... + // vsub.vv v11, v25, v29 // ...............................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + // vsub.vv v12, v18, v22 // ................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + // vsub.vv v13, v26, v30 // .................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + // vsub.vv v14, v19, v23 // ..................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + // vsub.vv v15, v27, v31 // ...................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vadd.vv v16, v16, v20 // ............................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + // vadd.vv v24, v24, v28 // .............................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + // vadd.vv v17, v17, v21 // ..............................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... + // vadd.vv v25, v25, v29 // ...............................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + // vadd.vv v18, v18, v22 // ................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + // vadd.vv v26, v26, v30 // .................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + // vadd.vv v19, v19, v23 // ..................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + // vadd.vv v27, v27, v31 // ...................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vmul.vv v20, v8, v0 // ....................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... + // vmul.vv v28, v9, v2 // ....................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... + // vmul.vv v21, v10, v0 // .....................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmul.vv v29, v11, v2 // .....................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmul.vv v22, v12, v0 // ......................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. + // vmul.vv v30, v13, v2 // ......................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. + // vmul.vv v23, v14, v0 // .......................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + // vmul.vv v31, v15, v2 // .......................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + // vmulh.vv v8, v8, v1 // ........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + // vmulh.vv v9, v9, v3 // ........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + // vmulh.vv v10, v10, v1 // .........................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vmulh.vv v11, v11, v3 // .........................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vmulh.vv v12, v12, v1 // ..........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + // vmulh.vv v13, v13, v3 // ..........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + // vmulh.vv v14, v14, v1 // ...........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ + // vmulh.vv v15, v15, v3 // ...........................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ + // vmulh.vx v20, v20, x5 // ............................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... + // vmulh.vx v28, v28, x5 // ............................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... + // vmulh.vx v21, v21, x5 // .............................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vmulh.vx v29, v29, x5 // .............................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vmulh.vx v22, v22, x5 // ..............................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + // vmulh.vx v30, v30, x5 // ..............................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + // vmulh.vx v23, v23, x5 // ...............................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ + // vmulh.vx v31, v31, x5 // ...............................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ + // vsub.vv v20, v8, v20 // ................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + // vsub.vv v28, v9, v28 // ................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + // vsub.vv v21, v10, v21 // .................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + // vsub.vv v29, v11, v29 // .................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + // vsub.vv v22, v12, v22 // ..................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + // vsub.vv v30, v13, v30 // ..................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + // vsub.vv v23, v14, v23 // ........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + // vsub.vv v31, v15, v31 // ........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + // vl2re16.v v0, (x15) // ...................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + // addi x15, x15, 8*2*2 // ...................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + // vsub.vv v8, v16, v24 // ....................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + // vsub.vv v9, v17, v25 // .....................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + // vsub.vv v10, v18, v26 // ......................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + // vsub.vv v11, v19, v27 // .......................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + // vsub.vv v12, v20, v28 // .........................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + // vsub.vv v13, v21, v29 // ..........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. + // vsub.vv v14, v22, v30 // ...........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + // vsub.vv v15, v23, v31 // ............................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + // vadd.vv v16, v16, v24 // ....................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + // vadd.vv v17, v17, v25 // .....................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + // vadd.vv v18, v18, v26 // ......................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + // vadd.vv v19, v19, v27 // .......................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + // vadd.vv v20, v20, v28 // .........................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + // vadd.vv v21, v21, v29 // ..........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. + // vadd.vv v22, v22, v30 // ...........................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + // vadd.vv v23, v23, v31 // .............................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vmul.vv v24, v8, v0 // ............................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + // vmul.vv v25, v9, v0 // .............................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vmul.vv v26, v10, v0 // ..............................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + // vmul.vv v27, v11, v0 // ..............................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + // vmul.vv v28, v12, v0 // ...............................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ + // vmul.vv v29, v13, v0 // ...............................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ + // vmul.vv v30, v14, v0 // ................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + // vmul.vv v31, v15, v0 // ................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + // vmulh.vv v8, v8, v1 // .................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... + // vmulh.vv v9, v9, v1 // .................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... + // vmulh.vv v10, v10, v1 // ..................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + // vmulh.vv v11, v11, v1 // ..................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + // vmulh.vv v12, v12, v1 // ....................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... + // vmulh.vv v13, v13, v1 // ...................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vmulh.vv v14, v14, v1 // .....................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + // vmulh.vv v15, v15, v1 // ....................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... + // vmulh.vx v24, v24, x5 // ................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + // vmulh.vx v25, v25, x5 // ........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... + // vmulh.vx v26, v26, x5 // .........................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vmulh.vx v27, v27, x5 // .......................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ + // vmulh.vx v28, v28, x5 // ..............................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + // vmulh.vx v29, v29, x5 // .........................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vmulh.vx v30, v30, x5 // ..........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + // vmulh.vx v31, v31, x5 // ...............................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + // vsub.vv v24, v8, v24 // ...................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vsub.vv v25, v9, v25 // ..............................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + // vsub.vv v26, v10, v26 // ............................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + // vsub.vv v27, v11, v27 // ...........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + // vsub.vv v28, v12, v28 // .................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + // vsub.vv v29, v13, v29 // .............................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + // vsub.vv v30, v14, v30 // ..................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + // vsub.vv v31, v15, v31 // ..................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + // addi x7, x11, _MASK_10325476*2 // .....................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + // li x31, 0x55 // ...................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vle16.v v1, (x7) // ......................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. + // vmv.s.x v0, x31 // ......................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. + // vrgather.vv v8, v17, v1 // .......................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ + // vrgather.vv v9, v16, v1 // ........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... + // vrgather.vv v10, v19, v1 // .............................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + // vrgather.vv v11, v18, v1 // ...........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + // vmerge.vvm v16, v8, v16, v0 // ..........................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + // vmerge.vvm v17, v17, v9, v0 // ............................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + // vmerge.vvm v18, v10, v18, v0 // ...............................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + // vmerge.vvm v19, v19, v11, v0 // ....................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... + // vrgather.vv v8, v21, v1 // ................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + // vrgather.vv v9, v20, v1 // .................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + // vrgather.vv v10, v23, v1 // ....................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... + // vrgather.vv v11, v22, v1 // .....................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vmerge.vvm v20, v8, v20, v0 // ...................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vmerge.vvm v21, v21, v9, v0 // .....................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vmerge.vvm v22, v10, v22, v0 // ......................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. + // vmerge.vvm v23, v23, v11, v0 // ......................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. + // vrgather.vv v8, v25, v1 // .......................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ + // vrgather.vv v9, v24, v1 // .......................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ + // vrgather.vv v10, v27, v1 // ........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + // vrgather.vv v11, v26, v1 // ........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + // vmerge.vvm v24, v8, v24, v0 // .........................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vmerge.vvm v25, v25, v9, v0 // .........................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vmerge.vvm v26, v10, v26, v0 // ..........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. + // vmerge.vvm v27, v27, v11, v0 // .................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... + // vrgather.vv v8, v29, v1 // .............................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vrgather.vv v9, v28, v1 // ..................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + // vrgather.vv v10, v31, v1 // ...............................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + // vrgather.vv v11, v30, v1 // ............................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + // vmerge.vvm v28, v8, v28, v0 // .....................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vmerge.vvm v29, v29, v9, v0 // ....................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... + // vmerge.vvm v30, v10, v30, v0 // ......................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. + // vmerge.vvm v31, v31, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + // vl2re16.v v4, (x15) // ..........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. + // addi x15, x15, 8*2*2 // ...........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + // vsub.vv v8, v16, v17 // ..............................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... + // vsub.vv v9, v18, v19 // ...........................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + // vsub.vv v10, v20, v21 // .............................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vsub.vv v11, v22, v23 // .....................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vsub.vv v12, v24, v25 // ...............................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + // vsub.vv v13, v26, v27 // ...................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vsub.vv v14, v28, v29 // .......................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ + // vsub.vv v15, v30, v31 // ........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + // vadd.vv v16, v16, v17 // ................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + // vadd.vv v18, v18, v19 // ............................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + // vadd.vv v20, v20, v21 // ..............................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... + // vadd.vv v22, v22, v23 // .........................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vadd.vv v24, v24, v25 // ..................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + // vadd.vv v26, v26, v27 // .............................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + // vadd.vv v28, v28, v29 // .......................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ + // vadd.vv v30, v30, v31 // ............................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + // vmul.vv v17, v8, v4 // ...........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + // vmul.vv v19, v9, v4 // ..........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + // vmul.vv v21, v10, v4 // ..........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + // vmul.vv v23, v11, v4 // .........................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vmul.vv v25, v12, v4 // ...................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vmul.vv v27, v13, v4 // ........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + // vmul.vv v29, v14, v4 // ...........................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + // vmul.vv v31, v15, v4 // ............................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + // vmulh.vv v8, v8, v5 // ......................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. + // vmulh.vv v9, v9, v5 // .................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... + // vmulh.vv v10, v10, v5 // ....................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... + // vmulh.vv v11, v11, v5 // .............................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + // vmulh.vv v12, v12, v5 // ..............................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + // vmulh.vv v13, v13, v5 // ..............................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + // vmulh.vv v14, v14, v5 // ...............................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ + // vmulh.vv v15, v15, v5 // ...............................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ + // vmulh.vx v17, v17, x5 // ................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + // vmulh.vx v19, v19, x5 // ................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + // vmulh.vx v21, v21, x5 // .................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + // vmulh.vx v23, v23, x5 // .................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + // vmulh.vx v25, v25, x5 // .....................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + // vmulh.vx v27, v27, x5 // ......................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + // vmulh.vx v29, v29, x5 // .................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + // vmulh.vx v31, v31, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... + // vsub.vv v17, v8, v17 // ......................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + // vsub.vv v19, v9, v19 // ...................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vsub.vv v21, v10, v21 // ..................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + // vsub.vv v23, v11, v23 // ........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... + // vsub.vv v25, v12, v25 // .........................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vsub.vv v27, v13, v27 // ....................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... + // vsub.vv v29, v14, v29 // ...................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... + // vsub.vv v31, v15, v31 // ..................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + // addi x7, x11, _MASK_01014545*2 // ..................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + // addi x28, x11, _MASK_23236767*2 // ....................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + // li x31, 0x33 // .......................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + // vle16.v v1, (x7) // ...................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vle16.v v2, (x28) // ....................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + // vmv.s.x v0, x31 // ........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... + // vrgather.vv v8, v18, v1 // ............................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... + // vrgather.vv v9, v16, v2 // .........................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vrgather.vv v10, v22, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + // vrgather.vv v11, v20, v2 // .......................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + // vmerge.vvm v16, v8, v16, v0 // .................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + // vmerge.vvm v18, v18, v9, v0 // ............................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... + // vmerge.vvm v20, v10, v20, v0 // .............................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vmerge.vvm v22, v22, v11, v0 // .............................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vrgather.vv v8, v26, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ + // vrgather.vv v9, v24, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + // vrgather.vv v10, v30, v1 // .....................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + // vrgather.vv v11, v28, v2 // ...............................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ + // vmerge.vvm v24, v8, v24, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... + // vmerge.vvm v26, v26, v9, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... + // vmerge.vvm v28, v10, v28, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ + // vmerge.vvm v30, v30, v11, v0 // ................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... + // vrgather.vv v8, v19, v1 // ..................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + // vrgather.vv v9, v17, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... + // vrgather.vv v10, v23, v1 // ....................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... + // vrgather.vv v11, v21, v2 // ...........................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ + // vmerge.vvm v17, v8, v17, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vmerge.vvm v19, v19, v9, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vmerge.vvm v21, v10, v21, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. + // vmerge.vvm v23, v23, v11, v0 // ......................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. + // vmulh.vx v8, v16, x14 // .......................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + // vmulh.vx v9, v18, x14 // .......................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + // vssra.vi v8, v8, 10 // ........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... + // vssra.vi v9, v9, 10 // ........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... + // vmul.vx v8, v8, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vmul.vx v9, v9, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vsub.vv v16, v16, v8 // ...........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + // vsub.vv v18, v18, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + // vrgather.vv v8, v27, v1 // ...................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vrgather.vv v9, v25, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + // vrgather.vv v10, v31, v1 // ..........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + // vrgather.vv v11, v29, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + // vmerge.vvm v25, v8, v25, v0 // .....................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vmerge.vvm v27, v27, v9, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... + // vmerge.vvm v29, v10, v29, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + // vl2re16.v v4, (x15) // .............................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + // addi x15, x15, 8*2*2 // ..............................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + // vsub.vv v8, v16, v18 // ...............................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + // vsub.vv v9, v20, v22 // ..........................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + // vsub.vv v10, v24, v26 // ....................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + // vsub.vv v11, v28, v30 // ..............................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + // vsub.vv v12, v17, v19 // .............................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vsub.vv v13, v21, v23 // ................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... + // vsub.vv v14, v25, v27 // ........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... + // vsub.vv v15, v29, v31 // ..................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... + // vadd.vv v16, v16, v18 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ + // vadd.vv v20, v20, v22 // ............................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + // vadd.vv v24, v24, v26 // ......................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. + // vadd.vv v28, v28, v30 // .........................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vadd.vv v17, v17, v19 // .....................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vadd.vv v21, v21, v23 // .................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + // vadd.vv v25, v25, v27 // .......................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ + // vadd.vv v29, v29, v31 // ........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... + // vmul.vv v18, v8, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + // vmul.vv v22, v9, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vmul.vv v26, v10, v4 // .......................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ + // vmul.vv v30, v11, v4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ + // vmul.vv v19, v12, v4 // ......................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. + // vmul.vv v23, v13, v4 // ....................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + // vmul.vv v27, v14, v4 // ............................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + // vmul.vv v31, v15, v4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + // vmulh.vv v8, v8, v5 // .........................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vmulh.vv v9, v9, v5 // ............................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + // vmulh.vv v10, v10, v5 // .............................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + // vmulh.vv v11, v11, v5 // .............................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + // vmulh.vv v12, v12, v5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + // vmulh.vv v13, v13, v5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + // vmulh.vv v14, v14, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ + // vmulh.vv v15, v15, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ + // vmulh.vx v18, v18, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + // vmulh.vx v22, v22, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + // vmulh.vx v26, v26, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + // vmulh.vx v30, v30, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + // vmulh.vx v19, v19, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vmulh.vx v23, v23, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. + // vmulh.vx v27, v27, x5 // .................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + // vmulh.vx v31, v31, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + // vsub.vv v18, v8, v18 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + // vsub.vv v22, v9, v22 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + // vsub.vv v26, v10, v26 // .......................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + // vsub.vv v30, v11, v30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + // vsub.vv v19, v12, v19 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vsub.vv v23, v13, v23 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + // vsub.vv v27, v14, v27 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... + // vsub.vv v31, v15, v31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. + // addi x7, x11, _MASK_01230123*2 // .................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + // addi x28, x11, _MASK_45674567*2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + // li x31, 0x0f // ..................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + // vle16.v v1, (x7) // ..................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + // vle16.v v2, (x28) // ....................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + // vmv.s.x v0, x31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. + // vmulh.vx v8, v20, x14 // ...................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + // vssra.vi v8, v8, 10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + // vmul.vx v8, v8, x5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vsub.vv v20, v20, v8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... + // vrgather.vv v8, v20, v1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + // vrgather.vv v9, v16, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + // vrgather.vv v10, v28, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. + // vrgather.vv v11, v24, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. + // vmerge.vvm v16, v8, v16, v0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + // vmerge.vvm v20, v20, v9, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vmerge.vvm v24, v10, v24, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + // vmerge.vvm v28, v28, v11, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + // vrgather.vv v8, v21, v1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + // vrgather.vv v9, v17, v2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. + // vrgather.vv v10, v29, v1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + // vrgather.vv v11, v25, v2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vmerge.vvm v17, v8, v17, v0 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vmerge.vvm v21, v21, v9, v0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + // vmerge.vvm v25, v10, v25, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... + // vmerge.vvm v29, v29, v11, v0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... + // vrgather.vv v8, v22, v1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vrgather.vv v9, v18, v2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vrgather.vv v10, v30, v1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + // vrgather.vv v11, v26, v2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + // vmerge.vvm v18, v8, v18, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ + // vmerge.vvm v22, v22, v9, v0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ + // vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... + // vmerge.vvm v30, v30, v11, v0 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... + // lh x28, 0*2(x15) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + // lh x7, 1*2(x15) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + // vrgather.vv v8, v23, v1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + // vrgather.vv v9, v19, v2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + // vrgather.vv v10, v31, v1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... + // vrgather.vv v11, v27, v2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + // vmerge.vvm v19, v8, v19, v0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ + // vmerge.vvm v23, v23, v9, v0 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ + // vmerge.vvm v27, v10, v27, v0 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + // vmerge.vvm v31, v31, v11, v0 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vsub.vv v8, v16, v20 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vsub.vv v9, v24, v28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + // vsub.vv v10, v17, v21 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... + // vsub.vv v11, v25, v29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + // vsub.vv v12, v18, v22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + // vsub.vv v13, v26, v30 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + // vsub.vv v14, v19, v23 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + // vsub.vv v15, v27, v31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vadd.vv v0, v16, v20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vadd.vv v1, v24, v28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + // vadd.vv v2, v17, v21 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. + // vadd.vv v3, v25, v29 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ + // vadd.vv v4, v18, v22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + // vadd.vv v5, v26, v30 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vadd.vv v6, v19, v23 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ + // vadd.vv v7, v27, v31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ + // vmul.vx v20, v8, x28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vmul.vx v28, v9, x28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... + // vmul.vx v21, v10, x28 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. + // vmul.vx v29, v11, x28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... + // vmul.vx v22, v12, x28 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ + // vmul.vx v30, v13, x28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ + // vmul.vx v23, v14, x28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmul.vx v31, v15, x28 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vmulh.vx v8, v8, x7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmulh.vx v9, v9, x7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vmulh.vx v10, v10, x7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + // vmulh.vx v11, v11, x7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ + // vmulh.vx v12, v12, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... + // vmulh.vx v13, v13, x7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... + // vmulh.vx v14, v14, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + // vmulh.vx v15, v15, x7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + // vmulh.vx v20, v20, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + // vmulh.vx v28, v28, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + // vmulh.vx v21, v21, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ + // vmulh.vx v29, v29, x5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ + // vmulh.vx v22, v22, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... + // vmulh.vx v30, v30, x5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + // vmulh.vx v23, v23, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + // vmulh.vx v31, v31, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + // vsub.vv v8, v8, v20 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + // vsub.vv v9, v9, v28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + // vsub.vv v10, v10, v21 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + // vsub.vv v11, v11, v29 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vsub.vv v12, v12, v22 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + // vsub.vv v13, v13, v30 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + // vsub.vv v14, v14, v23 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + // vsub.vv v15, v15, v31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ + // vmulh.vx v16, v1, x14 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... + // vssra.vi v16, v16, 10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vmul.vx v16, v16, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vsub.vv v1, v1, v16 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ + // addi x15, x10, (1*128)*2 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + // addi x16, x10, (64+1*128)*2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vs8r.v v0, (x15) // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vs8r.v v8, (x16) // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + // li x17, 8*8 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + // addi x16, x11, _ZETA_EXP_INTT_L6*2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vsetvli x17, x17, e16, m8, tu, mu // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + // lh x7, 0*2(x16) // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + // lh x6, 1*2(x16) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + // addi x15, x10, 128*2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + // vle16.v v16, (x10) // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + // vle16.v v24, (x15) // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + // vsub.vv v0, v16, v24 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ + // vadd.vv v16, v16, v24 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... + // vmul.vx v24, v0, x7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ + // vmulh.vx v8, v0, x6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + // vmulh.vx v24, v24, x5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + // vsub.vv v24, v8, v24 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... + // vse16.v v16, (x10) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vse16.v v24, (x15) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... + // addi x14, x10, 64*2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + // addi x15, x15, 64*2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + // vle16.v v16, (x14) // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... + // vle16.v v24, (x15) // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vsub.vv v0, v16, v24 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... + // vadd.vv v16, v16, v24 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... + // vmul.vx v24, v0, x7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vmulh.vx v8, v0, x6 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vmulh.vx v24, v24, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + // vsub.vv v24, v8, v24 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + // vse16.v v16, (x14) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* + // vse16.v v24, (x15) // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* + + end: + +ret \ No newline at end of file diff --git a/examples/opt/riscv/ntt_kyber/kyber_normal2ntt_order_rvv_vlen128_opt_c908.s b/examples/opt/riscv/ntt_kyber/kyber_normal2ntt_order_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..29e9acb0b --- /dev/null +++ b/examples/opt/riscv/ntt_kyber/kyber_normal2ntt_order_rvv_vlen128_opt_c908.s @@ -0,0 +1,424 @@ +/ shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.globl normal2ntt_order_rvv_vlen128 +.align 2 +normal2ntt_order_rvv_vlen128_opt_c908: + li a2, 2 + addi x4, x10, 64*2 // *......................................................................................................................................................................................................................................................................................................................... + vsetivli x17, 8, e16, m1, tu, mu // *......................................................................................................................................................................................................................................................................................................................... + addi x24, x11, _MASK_01230123*2 // .*........................................................................................................................................................................................................................................................................................................................ + addi x29, x11, _MASK_45674567*2 // ..*....................................................................................................................................................................................................................................................................................................................... + li x16, 0x0f // ...*...................................................................................................................................................................................................................................................................................................................... + addi x7, x11, _MASK_01014545*2 // ....*..................................................................................................................................................................................................................................................................................................................... + vl8re16.v v24, (x4) // ....*..................................................................................................................................................................................................................................................................................................................... // @slothy:sew=16 + addi x4, x11, _MASK_23236767*2 // .....*.................................................................................................................................................................................................................................................................................................................... + vmv.s.x v0, x16 // .....*.................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x24) // ......*................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + li x24, 0x33 // ......*................................................................................................................................................................................................................................................................................................................... + vle16.v v2, (x29) // ........*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl8re16.v v16, (x10) // ..........*............................................................................................................................................................................................................................................................................................................... // @slothy:sew=16 + vrgather.vv v10, v24, v1 // ............*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v18, v2 // ................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v25, v1 // ....................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v21, v2 // ........................*................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v29, v1 // ............................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v12, v0 // ................................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v26, v1 // ..................................*....................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v6, v18, v0 // ......................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v28, v1 // ........................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v20, v2 // ............................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v28, v12, v0 // ................................................*......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v19, v2 // ..................................................*....................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v26, v9, v0 // ......................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v27, v1 // ........................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v15, v19, v0 // ............................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v17, v2 // ..............................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v16, v2 // ..................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v30, v1 // ......................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v25, v8, v0 // ..........................................................................*............................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v24, v5, v0 // ............................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v4, v21, v0 // ..............................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v31, v1 // ................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v22, v2 // ....................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v9, v0 // ........................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v23, v2 // ..........................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v11, v23, v0 // ..............................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v9, v0 // ................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v10, v16, v0 // ..................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v7, v22, v0 // ....................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v14, v17, v0 // ......................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v13, v20, v0 // ........................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x15, x10, 4*8*2 // ........................................................................................................*................................................................................................................................................................................................................. + vmerge.vvm v27, v27, v28, v0 // ..........................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x24 // ...........................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + li x24, 0x55 // ...........................................................................................................*.............................................................................................................................................................................................................. + vle16.v v15, (x4) // ............................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x4, x11, _MASK_10325476*2 // ............................................................................................................*............................................................................................................................................................................................................. + vle16.v v4, (x7) // ..............................................................................................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v18, v15 // ................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v9, v7, v0 // ....................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v9, v4 // ......................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v7, v18, v0 // ..........................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v12, v4 // ............................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x4) // ................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v27, v15 // ..................................................................................................................................*....................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v31, v4 // ......................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v8, v15 // ..........................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v25, v15 // ..............................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v19, v15 // ..................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi a2, a2, -1 +normal2ntt_order_rvv_vlen128_loop: + // Instructions: 124 + // Expected cycles: 312 + // Expected IPC: 0.40 + + // -------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) ---------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|----------- + vmerge.vvm v10, v31, v11, v0 // *....................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x5, x10, 8*8*2 // *....................................................................................................................................................................................................................................................................................................................... + addi x18, x15, 8*8*2 // .*...................................................................................................................................................................................................................................................................................................................... + vmerge.vvm v27, v5, v27, v0 // ..*..................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v12, v2, v0 // ....*................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v7, v8, v0 // ......*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v29, v4 // ........*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v23, v4 // ............*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v24, v0 // ................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v9, v25, v0 // ..................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v17, v0 // ....................*................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v8, v19, v0 // ......................*................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v21, v4 // ........................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v9, v14, v0 // ............................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v14, v15 // ..............................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v21, v9, v0 // ..................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v20, v4 // ....................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v30, v4 // ........................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v14, v16, v0 // ............................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v16, v15 // ..............................................*......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v26, v15 // ..................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v11, v26, v0 // ......................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v20, v14, v0 // ........................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v30, v9, v0 // ..........................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x24 // ............................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v29, v1 // .............................................................*.......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x24, x11, _MASK_01230123*2 // .............................................................*.......................................................................................................................................................................................................................................................... + li x16, 0x0f // ..............................................................*......................................................................................................................................................................................................................................................... + addi x29, x11, _MASK_45674567*2 // ...............................................................*........................................................................................................................................................................................................................................................ + addi x7, x11, _MASK_01014545*2 // ................................................................*....................................................................................................................................................................................................................................................... + vmerge.vvm v31, v10, v20, v0 // .................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v10, v1 // ...................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v20, v29, v0 // .......................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v19, v1 // .........................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v20, v8, v0 // .............................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v8, v1 // ...............................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v19, v20, v0 // ...................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v4, v1 // .....................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v15, v1 // .........................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v3, v20, v0 // .............................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v14, v1 // ...............................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v12, v1 // ...................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v27, v1 // .......................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v23, v1 // ...........................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x4, x11, _MASK_23236767*2 // ...........................................................................................................*............................................................................................................................................................................................................ + vmerge.vvm v18, v20, v21, v0 // ...............................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v21, v1 // .................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v23, v20, v0 // .....................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v14, v6, v0 // .......................................................................................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v16, (x5) // .........................................................................................................................*.............................................................................................................................................................................................. // @slothy:sew=16 + vmerge.vvm v28, v10, v25, v0 // ...........................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v25, v1 // .............................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v22, v1 // .................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v17, v15, v0 // .....................................................................................................................................*.................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v22, v29, v0 // .......................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v3, v1 // .........................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v5, v4, v0 // .............................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v24, v12, v0 // ...............................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v8, (x10) // .................................................................................................................................................*...................................................................................................................................................................... // @slothy:sew=16 + addi x10, x5, 8*8*2 // .................................................................................................................................................*...................................................................................................................................................................... + addi x12, x10, 64*2 // ..................................................................................................................................................*..................................................................................................................................................................... + vmerge.vvm v29, v27, v14, v0 // ...................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v7, v1 // .....................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v16, v26, v1 // .........................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v26, v12, v0 // .............................................................................................................................................................*.......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v16, v7, v0 // ...............................................................................................................................................................*........................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v28, (x18) // .................................................................................................................................................................*...................................................................................................................................................... // @slothy:sew=16 + vs4r.v v20, (x15) // ...................................................................................................................................................................*.................................................................................................................................................... // @slothy:sew=16 + vsetivli x30, 8, e16, m1, tu, mu // .....................................................................................................................................................................*.................................................................................................................................................. + addi x15, x10, 4*8*2 // .....................................................................................................................................................................*.................................................................................................................................................. + vle16.v v1, (x24) // .........................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + li x24, 0x33 // .........................................................................................................................................................................*.............................................................................................................................................. + vl8re16.v v16, (x10) // ...........................................................................................................................................................................*............................................................................................................................................ // @slothy:sew=16 + vle16.v v2, (x29) // .............................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v15, (x4) // ...............................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x4, x11, _MASK_10325476*2 // ...............................................................................................................................................................................*........................................................................................................................................ + vmv.s.x v0, x16 // ................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl8re16.v v24, (x12) // .................................................................................................................................................................................*...................................................................................................................................... // @slothy:sew=16 + vrgather.vv v12, v20, v2 // ...................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v28, v1 // .......................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v7, v20, v0 // ...........................................................................................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v21, v2 // .............................................................................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v29, v1 // .................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v14, v21, v0 // .....................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v23, v2 // .......................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v31, v1 // ...........................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v7, v23, v0 // ...............................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v3, v0 // .................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v11, v0 // ...................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v28, v12, v0 // .....................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v30, v1 // .......................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v7, v22, v0 // ...........................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v22, v2 // .............................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v7, v0 // .................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v25, v1 // ...................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v17, v2 // .......................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v16, v2 // ...........................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v24, v1 // ...............................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v27, v1 // ...................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v3, v16, v0 // .......................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v7, v17, v0 // .........................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v24, v8, v0 // ...........................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v25, v4, v0 // .............................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v26, v1 // ...............................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v7, v18, v0 // ...................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v18, v2 // .....................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v26, v4, v0 // .........................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v19, v2 // ...........................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v10, v19, v0 // ...............................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v27, v4, v0 // .................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x24 // ..................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=16 + li x24, 0x55 // ..................................................................................................................................................................................................................................................................................*..................................... + vle16.v v4, (x7) // ...................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x4) // .....................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v9, v4 // .......................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v10, v7, v0 // ...........................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v7, v15 // .............................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v9, v10, v0 // .................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v27, v15 // ...................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v8, v15 // .......................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v31, v4 // ...........................................................................................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v12, v4 // ...............................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v19, v15 // ...................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v25, v15 // .......................................................................................................................................................................................................................................................................................................................* // @slothy:lmul=1 // @slothy:sew=16 + + // -------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) ---------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|----------- + // vrgather.vv v18, v14, v15 // ..............................*......................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // *....................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v5, v27, v0 // ..*..................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v29, v4 // ........*............................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v10, v25, v0 // ..................*..................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v15 // ..............................................*......................................................................................................................................................................................................................................................................... + // vmerge.vvm v9, v20, v9, v0 // ........................................................*............................................................................................................................................................................................................................................................... + // vrgather.vv v10, v20, v4 // ....................................*................................................................................................................................................................................................................................................................................... + // vmerge.vvm v12, v12, v2, v0 // ....*................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v24, v0 // ................*....................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v7, v7, v8, v0 // ......*................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v20, v26, v15 // ..................................................*..................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v30, v20, v0 // ..........................................................*............................................................................................................................................................................................................................................................. + // addi x5, x10, 8*8*2 // *....................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v30, v4 // ........................................*............................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v8, v26, v0 // ......................................................*................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v23, v4 // ............*........................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v21, v4 // ........................*............................................................................................................................................................................................................................................................................................... + // vmerge.vvm v23, v23, v17, v0 // ....................*................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v21, v21, v18, v0 // ..................................*..................................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v8, v19, v0 // ......................*................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v17, v15, v14, v0 // ............................*........................................................................................................................................................................................................................................................................................... + // vmerge.vvm v4, v10, v16, v0 // ............................................*........................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x24 // ............................................................*........................................................................................................................................................................................................................................................... + // vrgather.vv v14, v31, v1 // ...................................................................*.................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v14, v29, v0 // .......................................................................*................................................................................................................................................................................................................................................ + // addi x18, x15, 8*8*2 // .*...................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v14, v29, v1 // .............................................................*.......................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v14, v0 // .................................................................*...................................................................................................................................................................................................................................................... + // vrgather.vv v14, v25, v1 // .............................................................................................................................*.......................................................................................................................................................................................... + // vmerge.vvm v29, v27, v14, v0 // ...................................................................................................................................................*.................................................................................................................................................................... + // vrgather.vv v14, v27, v1 // .......................................................................................................*................................................................................................................................................................................................................ + // vmerge.vvm v28, v14, v25, v0 // ...........................................................................................................................*............................................................................................................................................................................................ + // vrgather.vv v14, v20, v1 // ...............................................................................................*........................................................................................................................................................................................................................ + // vmerge.vvm v14, v14, v12, v0 // ...............................................................................................................................................*........................................................................................................................................................................ + // vrgather.vv v25, v12, v1 // ...................................................................................................*.................................................................................................................................................................................................................... + // vmerge.vvm v15, v20, v25, v0 // .......................................................................................................................*................................................................................................................................................................................................ + // vrgather.vv v13, v22, v1 // .................................................................................................................................*...................................................................................................................................................................................... + // vmerge.vvm v10, v13, v9, v0 // .....................................................................................................................................*.................................................................................................................................................................................. + // vrgather.vv v12, v3, v1 // .........................................................................................................................................*.............................................................................................................................................................................. + // vrgather.vv v25, v9, v1 // .........................................................................................*.............................................................................................................................................................................................................................. + // vmerge.vvm v11, v22, v25, v0 // .......................................................................................................................................*................................................................................................................................................................................ + // vmerge.vvm v8, v12, v4, v0 // .............................................................................................................................................*.......................................................................................................................................................................... + // vrgather.vv v12, v19, v1 // .........................................................................*.............................................................................................................................................................................................................................................. + // vmerge.vvm v16, v12, v17, v0 // .............................................................................*.......................................................................................................................................................................................................................................... + // vrgather.vv v5, v4, v1 // .....................................................................................*.................................................................................................................................................................................................................................. + // vmerge.vvm v9, v3, v5, v0 // .............................................................................................*.......................................................................................................................................................................................................................... + // vrgather.vv v6, v17, v1 // ...............................................................................*........................................................................................................................................................................................................................................ + // vs4r.v v8, (x10) // .................................................................................................................................................*...................................................................................................................................................................... + // addi x10, x5, 8*8*2 // .................................................................................................................................................*...................................................................................................................................................................... + // vmerge.vvm v17, v19, v6, v0 // ...................................................................................*.................................................................................................................................................................................................................................... + // vrgather.vv v12, v23, v1 // ...........................................................................................................*............................................................................................................................................................................................................ + // vmerge.vvm v18, v12, v21, v0 // ...............................................................................................................*........................................................................................................................................................................................................ + // vrgather.vv v10, v21, v1 // .................................................................................................................*...................................................................................................................................................................................................... + // vmerge.vvm v19, v23, v10, v0 // .....................................................................................................................*.................................................................................................................................................................................................. + // vrgather.vv v4, v7, v1 // .....................................................................................................................................................*.................................................................................................................................................................. + // vs4r.v v16, (x5) // .........................................................................................................................*.............................................................................................................................................................................................. + // vrgather.vv v9, v26, v1 // .........................................................................................................................................................*.............................................................................................................................................................. + // vmerge.vvm v13, v26, v4, v0 // .............................................................................................................................................................*.......................................................................................................................................................... + // vmerge.vvm v12, v9, v7, v0 // ...............................................................................................................................................................*........................................................................................................................................................ + // vs4r.v v28, (x18) // .................................................................................................................................................................*...................................................................................................................................................... + // vs4r.v v12, (x15) // ...................................................................................................................................................................*.................................................................................................................................................... + // addi x4, x10, 64*2 // ..................................................................................................................................................*..................................................................................................................................................................... + // vsetivli x17, 8, e16, m1, tu, mu // .....................................................................................................................................................................*.................................................................................................................................................. + // addi x24, x11, _MASK_01230123*2 // .............................................................*.......................................................................................................................................................................................................................................................... + // addi x29, x11, _MASK_45674567*2 // ...............................................................*........................................................................................................................................................................................................................................................ + // li x16, 0x0f // ..............................................................*......................................................................................................................................................................................................................................................... + // addi x7, x11, _MASK_01014545*2 // ................................................................*....................................................................................................................................................................................................................................................... + // vl8re16.v v24, (x4) // .................................................................................................................................................................................*...................................................................................................................................... + // addi x4, x11, _MASK_23236767*2 // ...........................................................................................................*............................................................................................................................................................................................................ + // vmv.s.x v0, x16 // ................................................................................................................................................................................*....................................................................................................................................... + // vle16.v v1, (x24) // .........................................................................................................................................................................*.............................................................................................................................................. + // li x24, 0x33 // .........................................................................................................................................................................*.............................................................................................................................................. + // vle16.v v2, (x29) // .............................................................................................................................................................................*.......................................................................................................................................... + // vl8re16.v v16, (x10) // ...........................................................................................................................................................................*............................................................................................................................................ + // vrgather.vv v10, v24, v1 // ...............................................................................................................................................................................................................................................*........................................................................ + // vrgather.vv v9, v18, v2 // .....................................................................................................................................................................................................................................................................*.................................................. + // vrgather.vv v14, v25, v1 // ...................................................................................................................................................................................................................................*.................................................................................... + // vrgather.vv v12, v21, v2 // .............................................................................................................................................................................................*.......................................................................................................................... + // vrgather.vv v4, v29, v1 // .................................................................................................................................................................................................*...................................................................................................................... + // vmerge.vvm v29, v29, v12, v0 // ...................................................................................................................................................................................................................*.................................................................................................... + // vrgather.vv v6, v26, v1 // ...............................................................................................................................................................................................................................................................*........................................................ + // vmerge.vvm v18, v6, v18, v0 // ...................................................................................................................................................................................................................................................................*.................................................... + // vrgather.vv v13, v28, v1 // .......................................................................................................................................................................................*................................................................................................................................ + // vrgather.vv v12, v20, v2 // ...................................................................................................................................................................................*.................................................................................................................................... + // vmerge.vvm v12, v28, v12, v0 // .....................................................................................................................................................................................................................*.................................................................................................. + // vrgather.vv v28, v19, v2 // ...........................................................................................................................................................................................................................................................................*............................................ + // vmerge.vvm v26, v26, v9, v0 // .........................................................................................................................................................................................................................................................................*.............................................. + // vrgather.vv v15, v27, v1 // ...................................................................................................................................................................................................................................................*.................................................................... + // vmerge.vvm v19, v15, v19, v0 // ...............................................................................................................................................................................................................................................................................*........................................ + // vrgather.vv v8, v17, v2 // .......................................................................................................................................................................................................................................*................................................................................ + // vrgather.vv v5, v16, v2 // ...........................................................................................................................................................................................................................................*............................................................................ + // vrgather.vv v7, v30, v1 // .......................................................................................................................................................................................................................*................................................................................................ + // vmerge.vvm v25, v25, v8, v0 // .............................................................................................................................................................................................................................................................*.......................................................... + // vmerge.vvm v8, v24, v5, v0 // ...........................................................................................................................................................................................................................................................*............................................................ + // vmerge.vvm v21, v4, v21, v0 // .....................................................................................................................................................................................................*.................................................................................................................. + // vrgather.vv v11, v31, v1 // ...........................................................................................................................................................................................................*............................................................................................................ + // vrgather.vv v9, v22, v2 // .............................................................................................................................................................................................................................*.......................................................................................... + // vmerge.vvm v30, v30, v9, v0 // .................................................................................................................................................................................................................................*...................................................................................... + // vrgather.vv v9, v23, v2 // .......................................................................................................................................................................................................*................................................................................................................ + // vmerge.vvm v23, v11, v23, v0 // ...............................................................................................................................................................................................................*........................................................................................................ + // vmerge.vvm v31, v31, v9, v0 // .................................................................................................................................................................................................................*...................................................................................................... + // vmerge.vvm v16, v10, v16, v0 // .......................................................................................................................................................................................................................................................*................................................................ + // vmerge.vvm v9, v7, v22, v0 // ...........................................................................................................................................................................................................................*............................................................................................ + // vmerge.vvm v14, v14, v17, v0 // .........................................................................................................................................................................................................................................................*.............................................................. + // vmerge.vvm v20, v13, v20, v0 // ...........................................................................................................................................................................................*............................................................................................................................ + // addi x15, x10, 4*8*2 // .....................................................................................................................................................................*.................................................................................................................................................. + // vmerge.vvm v27, v27, v28, v0 // .................................................................................................................................................................................................................................................................................*...................................... + // vmv.s.x v0, x24 // ..................................................................................................................................................................................................................................................................................*..................................... + // li x24, 0x55 // ..................................................................................................................................................................................................................................................................................*..................................... + // vle16.v v15, (x4) // ...............................................................................................................................................................................*........................................................................................................................................ + // addi x4, x11, _MASK_10325476*2 // ...............................................................................................................................................................................*........................................................................................................................................ + // vle16.v v4, (x7) // ...................................................................................................................................................................................................................................................................................*.................................... + // vrgather.vv v7, v18, v15 // .............................................................................................................................................................................................................................................................................................*.......................... + // vmerge.vvm v22, v9, v7, v0 // .................................................................................................................................................................................................................................................................................................*...................... + // vrgather.vv v7, v9, v4 // .......................................................................................................................................................................................................................................................................................*................................ + // vmerge.vvm v3, v7, v18, v0 // ...........................................................................................................................................................................................................................................................................................*............................ + // vrgather.vv v7, v12, v4 // ...............................................................................................................................................................................................................................................................................................................*........ + // vle16.v v1, (x4) // .....................................................................................................................................................................................................................................................................................*.................................. + // vrgather.vv v11, v27, v15 // ...................................................................................................................................................................................................................................................................................................*.................... + // vrgather.vv v5, v31, v4 // ...........................................................................................................................................................................................................................................................................................................*............ + // vrgather.vv v2, v8, v15 // .......................................................................................................................................................................................................................................................................................................*................ + // vrgather.vv v24, v25, v15 // .......................................................................................................................................................................................................................................................................................................................* + // vrgather.vv v17, v19, v15 // ...................................................................................................................................................................................................................................................................................................................*.... + + addi a2, a2, -1 + bnez a2, normal2ntt_order_rvv_vlen128_loop + vrgather.vv v18, v14, v15 // ......................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v11, v0 // ..........................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v5, v27, v0 // ............................................................................................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v29, v4 // ..............................................................................................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v10, v25, v0 // ..................................................................................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v16, v15 // ....................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v20, v9, v0 // ........................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v20, v4 // ..........................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v12, v2, v0 // ..............................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v24, v0 // ................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v7, v8, v0 // ..................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v26, v15 // ....................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v30, v20, v0 // ........................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x5, x10, 8*8*2 // ........................................................................................................................................................................................*................................................................................................................................. + vrgather.vv v8, v30, v4 // ..........................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v8, v26, v0 // ..............................................................................................................................................................................................*........................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v23, v4 // ................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v21, v4 // ....................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v17, v0 // ........................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v21, v18, v0 // ..........................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v8, v19, v0 // ............................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v15, v14, v0 // ..............................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v10, v16, v0 // ................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x24 // ..................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v31, v1 // ...................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v14, v29, v0 // .......................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x18, x15, 8*8*2 // .......................................................................................................................................................................................................................*.................................................................................................. + vrgather.vv v14, v29, v1 // .........................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v14, v0 // .............................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v25, v1 // ...............................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v27, v14, v0 // ...................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v27, v1 // .....................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v14, v25, v0 // .........................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v20, v1 // ...........................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v14, v12, v0 // ...............................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v12, v1 // .................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v20, v25, v0 // .....................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v22, v1 // .......................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v13, v9, v0 // ...........................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v3, v1 // .............................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v9, v1 // .................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v22, v25, v0 // .....................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v12, v4, v0 // .......................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v19, v1 // .........................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v12, v17, v0 // .............................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v4, v1 // ...............................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v3, v5, v0 // ...................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v17, v1 // .....................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v8, (x10) // .........................................................................................................................................................................................................................................................................................*................................ // @slothy:sew=16 + addi x10, x5, 8*8*2 // ...........................................................................................................................................................................................................................................................................................*.............................. + vmerge.vvm v17, v19, v6, v0 // ...........................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v23, v1 // .............................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v12, v21, v0 // .................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v21, v1 // ...................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v23, v10, v0 // .......................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v7, v1 // .........................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v16, (x5) // .............................................................................................................................................................................................................................................................................................................*............ // @slothy:sew=16 + vrgather.vv v9, v26, v1 // ...............................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v26, v4, v0 // ...................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v9, v7, v0 // .....................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v28, (x18) // .......................................................................................................................................................................................................................................................................................................................*.. // @slothy:sew=16 + vs4r.v v12, (x15) // .........................................................................................................................................................................................................................................................................................................................* // @slothy:sew=16 +ret \ No newline at end of file diff --git a/examples/opt/riscv/ntt_kyber/kyber_ntt2normal_order_rvv_vlen128_opt_c908.s b/examples/opt/riscv/ntt_kyber/kyber_ntt2normal_order_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..e9df7d473 --- /dev/null +++ b/examples/opt/riscv/ntt_kyber/kyber_ntt2normal_order_rvv_vlen128_opt_c908.s @@ -0,0 +1,424 @@ +/ shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.globl ntt2normal_order_rvv_vlen128 +.align 2 +ntt2normal_order_rvv_vlen128_opt_c908: + li a2, 2 + addi x24, x10, 64*2 // *........................................................................................................................................................................................................................................................................................................................... + vsetivli x17, 8, e16, m1, tu, mu // *........................................................................................................................................................................................................................................................................................................................... + li x31, 0x55 // .*.......................................................................................................................................................................................................................................................................................................................... + addi x21, x11, _MASK_10325476*2 // ..*......................................................................................................................................................................................................................................................................................................................... + addi x7, x11, _MASK_01014545*2 // ...*........................................................................................................................................................................................................................................................................................................................ + vl8re16.v v24, (x24) // ....*....................................................................................................................................................................................................................................................................................................................... // @slothy:sew=16 + addi x28, x11, _MASK_23236767*2 // ....*....................................................................................................................................................................................................................................................................................................................... + vle16.v v1, (x21) // ......*..................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl8re16.v v8, (x10) // ........*................................................................................................................................................................................................................................................................................................................... // @slothy:sew=16 + vrgather.vv v7, v28, v1 // ..........*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x31 // ...........*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + li x31, 0x33 // ...........*................................................................................................................................................................................................................................................................................................................ + vrgather.vv v18, v11, v1 // ..............*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v18, v10, v0 // ...................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v10, v1 // .....................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v11, v3, v0 // .........................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v29, v1 // ...........................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v7, v0 // ...............................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v3, v28, v0 // .................................*.......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v13, v1 // ...................................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v3, v12, v0 // .......................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v12, v1 // .........................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v13, v3, v0 // .............................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v9, v1 // ...............................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v3, v8, v0 // ...................................................*........................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v8, v1 // .....................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v9, v13, v0 // .........................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v15, v1 // ...........................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v13, v14, v0 // ...............................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v23, v14, v1 // .................................................................*.......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v15, v23, v0 // .....................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v24, v1 // .......................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v16, v30, v1 // ...........................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v31, v1 // ...............................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v8, v30, v0 // ...................................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v25, v1 // .....................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v14, v24, v0 // .........................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v2, (x28) // ...........................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x28, x11, _MASK_45674567*2 // ...........................................................................................*................................................................................................................................................................................................................................ + vmerge.vvm v31, v31, v16, v0 // .............................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v25, v6, v0 // ...............................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v27, v1 // .................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v26, v1 // .....................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v27, v6, v0 // .........................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x15, x10, 8*8*2 // .........................................................................................................*.................................................................................................................................................................................................................. + vmerge.vvm v26, v12, v26, v0 // ...........................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x31 // ............................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + li x31, 0x0f // ............................................................................................................*............................................................................................................................................................................................................... + vle16.v v1, (x7) // .............................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x7, x11, _MASK_01230123*2 // .............................................................................................................*.............................................................................................................................................................................................................. + vrgather.vv v16, v18, v1 // ................................................................................................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v3, v2 // ....................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v18, v12, v0 // ........................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v20, v2 // ..........................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v13, v9, v0 // ..............................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v13, v1 // ................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v28, v2 // ....................................................................................................................................*....................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v30, v1 // ........................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v16, v3, v0 // ............................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v4, v28, v0 // ..............................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v24, v2 // ................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v26, v1 // ....................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi a2, a2, 64 +ntt2normal_order_rvv_vlen128_loop: + // Instructions: 124 + // Expected cycles: 311 + // Expected IPC: 0.40 + + // -------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) --------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|---------- + addi x12, x12, -1 // *...................................................................................................................................................................................................................................................................................................................... + vmerge.vvm v26, v26, v12, v0 // *...................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x6, x15, 4*8*2 // .*..................................................................................................................................................................................................................................................................................................................... + vmerge.vvm v30, v30, v6, v0 // ..*.................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v8, v20, v0 // ....*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v15, v24, v0 // ......*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v25, v2 // ........*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v5, v12, v0 // ............*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v5, v1 // ..............*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v12, v25, v0 // ..................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v19, v1 // ....................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v12, v17, v0 // ........................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v17, v2 // ..........................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v19, v12, v0 // ..............................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v23, v1 // ................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v31, v1 // ....................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v24, v29, v0 // ........................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v29, v2 // ..........................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v21, v2 // ..............................................*........................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v10, v0 // ..................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v2, (x28) // ....................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v24, v0 // ......................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v12, v21, v0 // ........................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x31 // .........................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x7) // ..........................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v16, v6, v2 // ............................................................*.......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x21, x11, _MASK_10325476*2 // ............................................................*.......................................................................................................................................................................................................................................................... + li x31, 0x55 // .............................................................*......................................................................................................................................................................................................................................................... + addi x7, x11, _MASK_01014545*2 // .............................................................*......................................................................................................................................................................................................................................................... + vrgather.vv v29, v14, v1 // ................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v23, v1 // ....................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v3, v16, v0 // ........................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x28, x11, _MASK_23236767*2 // ........................................................................*.............................................................................................................................................................................................................................................. + vrgather.vv v12, v3, v1 // ..........................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v29, v15, v0 // ..............................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v15, v2 // ................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v14, v3, v0 // ....................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v12, v6, v0 // ......................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v19, v2 // ........................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v23, v3, v0 // ............................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v13, v2 // ..............................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v20, v3, v0 // ..................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v20, v1 // ....................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v28, v2 // ........................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v21, v4, v0 // ............................................................................................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v3, v13, v0 // ..............................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v8, (x15) // ................................................................................................................*...................................................................................................................................................................................................... // @slothy:sew=16 + vrgather.vv v17, v31, v1 // ..................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v17, v27, v0 // ......................................................................................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v23, v30, v1 // ........................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v23, v26, v0 // ............................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v22, v1 // ..............................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v3, v18, v0 // ..................................................................................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v18, v2 // ....................................................................................................................................*.................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v21, v1 // ........................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v3, v28, v0 // ............................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v27, v2 // ..............................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v26, v2 // ..................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v4, (x10) // ......................................................................................................................................................*................................................................................................................................................................ // @slothy:sew=16 + addi x10, x10, 4*8*2 // ......................................................................................................................................................*................................................................................................................................................................ + addi x24, x10, 64*2 // .......................................................................................................................................................*............................................................................................................................................................... + vmerge.vvm v15, v31, v18, v0 // ........................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v30, v3, v0 // ..........................................................................................................................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v24, v19, v0 // ............................................................................................................................................................*.......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v22, v12, v0 // ..............................................................................................................................................................*........................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v8, (x10) // ................................................................................................................................................................*...................................................................................................................................................... // @slothy:sew=16 + vs4r.v v12, (x6) // ..................................................................................................................................................................*.................................................................................................................................................... // @slothy:sew=16 + vsetivli x30, 8, e16, m1, tu, mu // ....................................................................................................................................................................*.................................................................................................................................................. + vle16.v v2, (x28) // ........................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x28, x11, _MASK_45674567*2 // ........................................................................................................................................................................*.............................................................................................................................................. + vmv.s.x v0, x31 // .........................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + li x31, 0x33 // .........................................................................................................................................................................*............................................................................................................................................. + vle16.v v1, (x21) // ..........................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x15, x10, 8*8*2 // ..........................................................................................................................................................................*............................................................................................................................................ + vl8re16.v v24, (x24) // ............................................................................................................................................................................*.......................................................................................................................................... // @slothy:sew=16 + vl8re16.v v8, (x10) // ..............................................................................................................................................................................*........................................................................................................................................ // @slothy:sew=16 + vrgather.vv v17, v24, v1 // ................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v25, v1 // ....................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v21, v24, v0 // ........................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v25, v17, v0 // ..........................................................................................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v28, v1 // ............................................................................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v29, v1 // ................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v4, v0 // ....................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v18, v28, v0 // ......................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v8, v1 // ........................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v9, v18, v0 // ............................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v19, v9, v1 // ..............................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v12, v1 // ..................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v13, v1 // ......................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v13, v6, v0 // ..........................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v19, v8, v0 // ............................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v30, v1 // ..............................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v31, v1 // ..................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v26, v1 // ......................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v27, v1 // ..........................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v5, v26, v0 // ..............................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v27, v7, v0 // ................................................................................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v11, v1 // ..................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v8, v10, v0 // ......................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v23, v10, v1 // ........................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v18, v0 // ............................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v6, v30, v0 // ..............................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v20, v12, v0 // ................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v11, v23, v0 // ..................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v14, v1 // ....................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v23, v15, v1 // ........................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v23, v14, v0 // ............................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v15, v18, v0 // ..............................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x31 // ...............................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=16 + li x31, 0x0f // ...............................................................................................................................................................................................................................................................................*....................................... + vle16.v v1, (x7) // ................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x7, x11, _MASK_01230123*2 // ................................................................................................................................................................................................................................................................................*...................................... + vrgather.vv v18, v13, v2 // ..................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v7, v1 // ......................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v7, v18, v0 // ..........................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v6, v13, v0 // ............................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v30, v1 // ..............................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v3, v2 // ..................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v28, v3, v0 // ......................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v20, v2 // ........................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v12, v28, v0 // ............................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v12, v1 // ..............................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v24, v2 // ..................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v26, v1 // ......................................................................................................................................................................................................................................................................................................................* // @slothy:lmul=1 // @slothy:sew=16 + + // -------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) --------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|---------- + // vmerge.vvm v26, v26, v12, v0 // *...................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v30, v6, v0 // ..*.................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v8, v20, v0 // ....*.................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v6, v15, v24, v0 // ......*................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v12, v25, v2 // ........*.............................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v27, v5, v12, v0 // ............*.......................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v5, v1 // ..............*........................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v10, v15, v25, v0 // ..................*.................................................................................................................................................................................................................................................................................................... + // vrgather.vv v15, v17, v2 // ..........................*............................................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v19, v1 // ....................*.................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v28, v11, v17, v0 // ........................*.............................................................................................................................................................................................................................................................................................. + // vrgather.vv v17, v23, v1 // ................................*...................................................................................................................................................................................................................................................................................... + // vmerge.vvm v12, v17, v21, v0 // ........................................................*.............................................................................................................................................................................................................................................................. + // vrgather.vv v24, v21, v2 // ..............................................*........................................................................................................................................................................................................................................................................ + // vrgather.vv v8, v31, v1 // ....................................*.................................................................................................................................................................................................................................................................................. + // vrgather.vv v25, v29, v2 // ..........................................*............................................................................................................................................................................................................................................................................ + // vmerge.vvm v31, v31, v25, v0 // ......................................................*................................................................................................................................................................................................................................................................ + // vmerge.vvm v23, v23, v24, v0 // ..................................................*.................................................................................................................................................................................................................................................................... + // vmerge.vvm v8, v8, v29, v0 // ........................................*.............................................................................................................................................................................................................................................................................. + // vmerge.vvm v19, v19, v15, v0 // ..............................*........................................................................................................................................................................................................................................................................................ + // addi x12, x12, -1 // *...................................................................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x31 // .........................................................*............................................................................................................................................................................................................................................................. + // addi x6, x15, 4*8*2 // .*..................................................................................................................................................................................................................................................................................................................... + // vle16.v v2, (x28) // ....................................................*.................................................................................................................................................................................................................................................................. + // vle16.v v1, (x7) // ..........................................................*............................................................................................................................................................................................................................................................ + // vrgather.vv v24, v8, v1 // ................................................................*...................................................................................................................................................................................................................................................... + // vmerge.vvm v11, v24, v10, v0 // ..............................................................................*........................................................................................................................................................................................................................................ + // vrgather.vv v24, v10, v2 // ................................................................................*...................................................................................................................................................................................................................................... + // vmerge.vvm v15, v8, v24, v0 // ....................................................................................*.................................................................................................................................................................................................................................. + // vrgather.vv v24, v12, v1 // ........................................................................................................................................*.............................................................................................................................................................................. + // vmerge.vvm v10, v24, v28, v0 // ............................................................................................................................................*.......................................................................................................................................................................... + // vrgather.vv v8, v22, v1 // ..............................................................................................................................*........................................................................................................................................................................................ + // vrgather.vv v17, v20, v1 // ....................................................................................................*.................................................................................................................................................................................................................. + // vmerge.vvm v4, v8, v18, v0 // ..................................................................................................................................*.................................................................................................................................................................................... + // vrgather.vv v24, v18, v2 // ....................................................................................................................................*.................................................................................................................................................................................. + // vrgather.vv v5, v27, v2 // ..............................................................................................................................................*........................................................................................................................................................................ + // vrgather.vv v29, v3, v1 // ..........................................................................*............................................................................................................................................................................................................................................ + // vmerge.vvm v9, v29, v6, v0 // ......................................................................................*................................................................................................................................................................................................................................ + // vrgather.vv v18, v6, v2 // ............................................................*.......................................................................................................................................................................................................................................................... + // vmerge.vvm v8, v17, v13, v0 // ..............................................................................................................*........................................................................................................................................................................................................ + // vrgather.vv v6, v13, v2 // ..............................................................................................*........................................................................................................................................................................................................................ + // vrgather.vv v25, v28, v2 // ........................................................................................................*.............................................................................................................................................................................................................. + // vs4r.v v8, (x10) // ......................................................................................................................................................*................................................................................................................................................................ + // addi x10, x10, 4*8*2 // ......................................................................................................................................................*................................................................................................................................................................ + // vmerge.vvm v11, v31, v5, v0 // ........................................................................................................................................................*.............................................................................................................................................................. + // vrgather.vv v28, v31, v1 // ..................................................................................................................*.................................................................................................................................................................................................... + // vmerge.vvm v13, v3, v18, v0 // ........................................................................*.............................................................................................................................................................................................................................................. + // vmerge.vvm v8, v22, v24, v0 // ..............................................................................................................................................................*........................................................................................................................................................ + // vmerge.vvm v14, v12, v25, v0 // ............................................................................................................*.......................................................................................................................................................................................................... + // vmerge.vvm v12, v20, v6, v0 // ..................................................................................................*.................................................................................................................................................................................................................... + // vmerge.vvm v7, v28, v27, v0 // ......................................................................................................................*................................................................................................................................................................................................ + // vs4r.v v12, (x15) // ................................................................................................................*...................................................................................................................................................................................................... + // vrgather.vv v18, v26, v2 // ..................................................................................................................................................*.................................................................................................................................................................... + // vrgather.vv v3, v19, v2 // ........................................................................................*.............................................................................................................................................................................................................................. + // vmerge.vvm v10, v23, v3, v0 // ............................................................................................*.......................................................................................................................................................................................................................... + // vrgather.vv v3, v23, v1 // ....................................................................*.................................................................................................................................................................................................................................................. + // vrgather.vv v13, v30, v1 // ........................................................................................................................*.............................................................................................................................................................................................. + // vmerge.vvm v5, v13, v26, v0 // ............................................................................................................................*.......................................................................................................................................................................................... + // vmerge.vvm v6, v3, v19, v0 // ............................................................................................................................................................*.......................................................................................................................................................... + // vmerge.vvm v9, v30, v18, v0 // ..........................................................................................................................................................*............................................................................................................................................................ + // vs4r.v v4, (x10) // ................................................................................................................................................................*...................................................................................................................................................... + // vs4r.v v8, (x6) // ..................................................................................................................................................................*.................................................................................................................................................... + // addi x24, x10, 64*2 // .......................................................................................................................................................*............................................................................................................................................................... + // vsetivli x17, 8, e16, m1, tu, mu // ....................................................................................................................................................................*.................................................................................................................................................. + // li x31, 0x55 // .............................................................*......................................................................................................................................................................................................................................................... + // addi x21, x11, _MASK_10325476*2 // ............................................................*.......................................................................................................................................................................................................................................................... + // addi x7, x11, _MASK_01014545*2 // .............................................................*......................................................................................................................................................................................................................................................... + // vl8re16.v v24, (x24) // ............................................................................................................................................................................*.......................................................................................................................................... + // addi x28, x11, _MASK_23236767*2 // ........................................................................*.............................................................................................................................................................................................................................................. + // vle16.v v1, (x21) // ..........................................................................................................................................................................*............................................................................................................................................ + // vl8re16.v v8, (x10) // ..............................................................................................................................................................................*........................................................................................................................................ + // vrgather.vv v7, v28, v1 // ............................................................................................................................................................................................*.......................................................................................................................... + // vmv.s.x v0, x31 // .........................................................................................................................................................................*............................................................................................................................................. + // li x31, 0x33 // .........................................................................................................................................................................*............................................................................................................................................. + // vrgather.vv v18, v11, v1 // ..................................................................................................................................................................................................................................................*.................................................................... + // vmerge.vvm v18, v18, v10, v0 // ......................................................................................................................................................................................................................................................*................................................................ + // vrgather.vv v3, v10, v1 // ........................................................................................................................................................................................................................................................*.............................................................. + // vmerge.vvm v19, v11, v3, v0 // ..................................................................................................................................................................................................................................................................*.................................................... + // vrgather.vv v3, v29, v1 // ................................................................................................................................................................................................*...................................................................................................................... + // vmerge.vvm v29, v29, v7, v0 // ....................................................................................................................................................................................................*.................................................................................................................. + // vmerge.vvm v28, v3, v28, v0 // ......................................................................................................................................................................................................*................................................................................................................ + // vrgather.vv v3, v13, v1 // ......................................................................................................................................................................................................................*................................................................................................ + // vmerge.vvm v20, v3, v12, v0 // ................................................................................................................................................................................................................................................................*...................................................... + // vrgather.vv v3, v12, v1 // ..................................................................................................................................................................................................................*.................................................................................................... + // vmerge.vvm v21, v13, v3, v0 // ..........................................................................................................................................................................................................................*............................................................................................ + // vrgather.vv v3, v9, v1 // ..............................................................................................................................................................................................................*........................................................................................................ + // vmerge.vvm v3, v3, v8, v0 // ............................................................................................................................................................................................................................*.......................................................................................... + // vrgather.vv v13, v8, v1 // ........................................................................................................................................................................................................*.............................................................................................................. + // vmerge.vvm v17, v9, v13, v0 // ............................................................................................................................................................................................................*.......................................................................................................... + // vrgather.vv v13, v15, v1 // ........................................................................................................................................................................................................................................................................*.............................................. + // vmerge.vvm v13, v13, v14, v0 // ............................................................................................................................................................................................................................................................................*.......................................... + // vrgather.vv v23, v14, v1 // ....................................................................................................................................................................................................................................................................*.................................................. + // vmerge.vvm v23, v15, v23, v0 // ..............................................................................................................................................................................................................................................................................*........................................ + // vrgather.vv v6, v24, v1 // ................................................................................................................................................................................*...................................................................................................................................... + // vrgather.vv v16, v30, v1 // ..............................................................................................................................................................................................................................*........................................................................................ + // vrgather.vv v8, v31, v1 // ..................................................................................................................................................................................................................................*.................................................................................... + // vmerge.vvm v30, v8, v30, v0 // ..............................................................................................................................................................................................................................................................*........................................................ + // vrgather.vv v14, v25, v1 // ....................................................................................................................................................................................*.................................................................................................................................. + // vmerge.vvm v24, v14, v24, v0 // ........................................................................................................................................................................................*.............................................................................................................................. + // vle16.v v2, (x28) // ........................................................................................................................................................................*.............................................................................................................................................. + // addi x28, x11, _MASK_45674567*2 // ........................................................................................................................................................................*.............................................................................................................................................. + // vmerge.vvm v31, v31, v16, v0 // ............................................................................................................................................................................................................................................................*.......................................................... + // vmerge.vvm v25, v25, v6, v0 // ..........................................................................................................................................................................................*............................................................................................................................ + // vrgather.vv v12, v27, v1 // ..........................................................................................................................................................................................................................................*............................................................................ + // vrgather.vv v6, v26, v1 // ......................................................................................................................................................................................................................................*................................................................................ + // vmerge.vvm v5, v27, v6, v0 // ................................................................................................................................................................................................................................................*...................................................................... + // addi x15, x10, 8*8*2 // ..........................................................................................................................................................................*............................................................................................................................................ + // vmerge.vvm v26, v12, v26, v0 // ..............................................................................................................................................................................................................................................*........................................................................ + // vmv.s.x v0, x31 // ...............................................................................................................................................................................................................................................................................*....................................... + // li x31, 0x0f // ...............................................................................................................................................................................................................................................................................*....................................... + // vle16.v v1, (x7) // ................................................................................................................................................................................................................................................................................*...................................... + // addi x7, x11, _MASK_01230123*2 // ................................................................................................................................................................................................................................................................................*...................................... + // vrgather.vv v16, v18, v1 // ......................................................................................................................................................................................................................................................................................*................................ + // vrgather.vv v12, v3, v2 // ..................................................................................................................................................................................................................................................................................*.................................... + // vmerge.vvm v18, v18, v12, v0 // ..........................................................................................................................................................................................................................................................................................*............................ + // vrgather.vv v9, v20, v2 // ........................................................................................................................................................................................................................................................................................................*.............. + // vmerge.vvm v22, v13, v9, v0 // ............................................................................................................................................................................................................................................................................................................*.......... + // vrgather.vv v8, v13, v1 // ..............................................................................................................................................................................................................................................................................................................*........ + // vrgather.vv v6, v28, v2 // ..................................................................................................................................................................................................................................................................................................*.................... + // vrgather.vv v4, v30, v1 // ..............................................................................................................................................................................................................................................................................................*........................ + // vmerge.vvm v13, v16, v3, v0 // ............................................................................................................................................................................................................................................................................................*.......................... + // vmerge.vvm v3, v4, v28, v0 // ......................................................................................................................................................................................................................................................................................................*................ + // vrgather.vv v12, v24, v2 // ..................................................................................................................................................................................................................................................................................................................*.... + // vrgather.vv v15, v26, v1 // ......................................................................................................................................................................................................................................................................................................................* + + addi a2, a2, 64 + bnez a2, ntt2normal_order_rvv_vlen128_loop + vmerge.vvm v26, v26, v12, v0 // ........................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v6, v0 // ..........................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v8, v20, v0 // ............................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v15, v24, v0 // ..............................................................................................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v25, v2 // ................................................................................................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v5, v12, v0 // ....................................................................................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v5, v1 // ......................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v15, v25, v0 // ..........................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v17, v2 // ............................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v19, v1 // ................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v11, v17, v0 // ....................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v23, v1 // ......................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v17, v21, v0 // ..........................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v21, v2 // ............................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v31, v1 // ................................................................................................................................................................................................*........................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v29, v2 // ....................................................................................................................................................................................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v25, v0 // ........................................................................................................................................................................................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v24, v0 // ..........................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v8, v29, v0 // ............................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v19, v15, v0 // ..............................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x12, x12, -1 // ..............................................................................................................................................................................................................*............................................................................................................. + vmv.s.x v0, x31 // ...............................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x6, x15, 4*8*2 // ...............................................................................................................................................................................................................*............................................................................................................ + vle16.v v2, (x28) // ................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x7) // ..................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v8, v1 // .....................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v24, v10, v0 // .........................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v10, v2 // ...........................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v8, v24, v0 // ...............................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v12, v1 // .................................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v24, v28, v0 // .....................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v22, v1 // .......................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v20, v1 // ...........................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v8, v18, v0 // ...............................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v18, v2 // .................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v27, v2 // .....................................................................................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v3, v1 // .........................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v29, v6, v0 // .............................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v6, v2 // ...............................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v17, v13, v0 // ...................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v13, v2 // .....................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v28, v2 // .........................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v8, (x10) // .............................................................................................................................................................................................................................................................................*.............................................. // @slothy:sew=16 + addi x10, x10, 4*8*2 // .............................................................................................................................................................................................................................................................................*.............................................. + vmerge.vvm v11, v31, v5, v0 // ...............................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v31, v1 // .................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v3, v18, v0 // .....................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v22, v24, v0 // .......................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v12, v25, v0 // .........................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v20, v6, v0 // ...........................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v28, v27, v0 // .............................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v12, (x15) // ...............................................................................................................................................................................................................................................................................................*............................ // @slothy:sew=16 + vrgather.vv v18, v26, v2 // .................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v19, v2 // .....................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v23, v3, v0 // .........................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v23, v1 // ...........................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v30, v1 // ...............................................................................................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v13, v26, v0 // ...................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v3, v19, v0 // .....................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v30, v18, v0 // .......................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + vs4r.v v4, (x10) // .........................................................................................................................................................................................................................................................................................................................*.. // @slothy:sew=16 + vs4r.v v8, (x6) // ...........................................................................................................................................................................................................................................................................................................................* // @slothy:sew=16 +ret \ No newline at end of file diff --git a/examples/opt/riscv/ntt_kyber/ntt_kyber_dualissue_l32_plant_rv64im_opt_c908.s b/examples/opt/riscv/ntt_kyber/ntt_kyber_dualissue_l32_plant_rv64im_opt_c908.s new file mode 100644 index 000000000..6e1afbee0 --- /dev/null +++ b/examples/opt/riscv/ntt_kyber/ntt_kyber_dualissue_l32_plant_rv64im_opt_c908.s @@ -0,0 +1,2966 @@ +# Plantard based NTT implementation with l=32 + +.macro load_coeffs poly, len, wordLen + lh s0, \len*\wordLen*0(\poly) + lh s1, \len*\wordLen*1(\poly) + lh s2, \len*\wordLen*2(\poly) + lh s3, \len*\wordLen*3(\poly) + lh s4, \len*\wordLen*4(\poly) + lh s5, \len*\wordLen*5(\poly) + lh s6, \len*\wordLen*6(\poly) + lh s7, \len*\wordLen*7(\poly) + lh s8, \len*\wordLen*8(\poly) + lh s9, \len*\wordLen*9(\poly) + lh s10, \len*\wordLen*10(\poly) + lh s11, \len*\wordLen*11(\poly) + lh a2, \len*\wordLen*12(\poly) + lh a3, \len*\wordLen*13(\poly) + lh a4, \len*\wordLen*14(\poly) + lh a5, \len*\wordLen*15(\poly) +.endm + +.macro store_coeffs poly, len, wordLen + sh s0, \len*\wordLen*0(\poly) + sh s1, \len*\wordLen*1(\poly) + sh s2, \len*\wordLen*2(\poly) + sh s3, \len*\wordLen*3(\poly) + sh s4, \len*\wordLen*4(\poly) + sh s5, \len*\wordLen*5(\poly) + sh s6, \len*\wordLen*6(\poly) + sh s7, \len*\wordLen*7(\poly) + sh s8, \len*\wordLen*8(\poly) + sh s9, \len*\wordLen*9(\poly) + sh s10, \len*\wordLen*10(\poly) + sh s11, \len*\wordLen*11(\poly) + sh a2, \len*\wordLen*12(\poly) + sh a3, \len*\wordLen*13(\poly) + sh a4, \len*\wordLen*14(\poly) + sh a5, \len*\wordLen*15(\poly) +.endm + +.macro save_regs + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) +.endm + +// a <- a*b*(-2^{-64}) mod+- q +// q32: q<<32; bqinv: b*qinv +.macro plant_mul_const_inplace q32, bqinv, a + mul \a, \a, \bqinv + srai \a, \a, 32 + addi \a, \a, 8 + mulh \a, \a, \q32 +.endm + +.macro plant_mul_const_inplace_x2 q32, zeta, a_0, a_1 + mul \a_0, \a_0, \zeta + mul \a_1, \a_1, \zeta + srai \a_0, \a_0, 32 + srai \a_1, \a_1, 32 + addi \a_0, \a_0, 8 + addi \a_1, \a_1, 8 + mulh \a_0, \a_0, \q32 + mulh \a_1, \a_1, \q32 +.endm + +.macro plant_mul_const_inplace_x4 q32, zeta_0, zeta_1, zeta_2, zeta_3, a_0, a_1, a_2, a_3 + mul \a_0, \a_0, \zeta_0 + mul \a_1, \a_1, \zeta_1 + mul \a_2, \a_2, \zeta_2 + mul \a_3, \a_3, \zeta_3 + srai \a_0, \a_0, 32 + srai \a_1, \a_1, 32 + srai \a_2, \a_2, 32 + srai \a_3, \a_3, 32 + addi \a_0, \a_0, 8 + addi \a_1, \a_1, 8 + addi \a_2, \a_2, 8 + addi \a_3, \a_3, 8 + mulh \a_0, \a_0, \q32 + mulh \a_1, \a_1, \q32 + mulh \a_2, \a_2, \q32 + mulh \a_3, \a_3, \q32 +.endm + +// r <- a*b*(-2^{-64}) mod+- q +// q32: q<<32; bqinv: b*qinv +.macro plant_mul_const q32, bqinv, a, r + mul \r, \a, \bqinv + srai \r, \r, 32 + addi \r, \r, 8 + mulh \r, \r, \q32 +.endm + +.macro plant_mul_const_x2 q32, zeta_0, zeta_1, a_0, a_1, r_0, r_1 + mul \r_0, \a_0, \zeta_0 + mul \r_1, \a_1, \zeta_1 + srai \r_0, \r_0, 32 + srai \r_1, \r_1, 32 + addi \r_0, \r_0, 8 + addi \r_1, \r_1, 8 + mulh \r_0, \r_0, \q32 + mulh \r_1, \r_1, \q32 +.endm + +.macro plant_mul_const_x4 q32, zeta_0, zeta_1, zeta_2, zeta_3, a_0, a_1, a_2, a_3, r_0, r_1, r_2, r_3 + mul \r_0, \a_0, \zeta_0 + mul \r_1, \a_1, \zeta_1 + mul \r_2, \a_2, \zeta_2 + mul \r_3, \a_3, \zeta_3 + srai \r_0, \r_0, 32 + srai \r_1, \r_1, 32 + srai \r_2, \r_2, 32 + srai \r_3, \r_3, 32 + addi \r_0, \r_0, 8 + addi \r_1, \r_1, 8 + addi \r_2, \r_2, 8 + addi \r_3, \r_3, 8 + mulh \r_0, \r_0, \q32 + mulh \r_1, \r_1, \q32 + mulh \r_2, \r_2, \q32 + mulh \r_3, \r_3, \q32 +.endm + +// each layer increases coefficients by 0.5q; In ct_butterfly, twiddle and tmp can be reused because each twiddle is only used once. The gs_butterfly cannot. +.macro ct_butterfly coeff0, coeff1, twiddle, q, tmp + plant_mul_const \q, \twiddle, \coeff1, \tmp + sub \coeff1, \coeff0, \tmp + add \coeff0, \coeff0, \tmp +.endm + +.macro ct_bfu_x2 a_0_0, a_0_1, a_1_0, a_1_1, zeta_0, zeta_1, q32, t_0, t_1 + mul \t_0, \a_0_1, \zeta_0 + mul \t_1, \a_1_1, \zeta_1 + srai \t_0, \t_0, 32 + srai \t_1, \t_1, 32 + addi \t_0, \t_0, 8 + addi \t_1, \t_1, 8 + mulh \t_0, \t_0, \q32 + mulh \t_1, \t_1, \q32 + sub \a_0_1, \a_0_0, \t_0 + sub \a_1_1, \a_1_0, \t_1 + add \a_0_0, \a_0_0, \t_0 + add \a_1_0, \a_1_0, \t_1 +.endm + +.macro ct_bfu_x8 a_0_0, a_0_1, a_1_0, a_1_1, a_2_0, a_2_1, a_3_0, a_3_1, a_4_0, a_4_1, a_5_0, a_5_1, a_6_0, a_6_1, a_7_0, a_7_1, zeta_0, zeta_1, zeta_2, zeta_3, zeta_4, zeta_5, zeta_6, zeta_7, q32, t_0, t_1, t_2, t_3 + mul \t_0, \a_0_1, \zeta_0 + mul \t_1, \a_1_1, \zeta_1 + mul \t_2, \a_2_1, \zeta_2 + mul \t_3, \a_3_1, \zeta_3 + srai \t_0, \t_0, 32 + srai \t_1, \t_1, 32 + addi \t_0, \t_0, 8 + addi \t_1, \t_1, 8 + mulh \t_0, \t_0, \q32 + mulh \t_1, \t_1, \q32 + srai \t_2, \t_2, 32 + srai \t_3, \t_3, 32 + addi \t_2, \t_2, 8 + addi \t_3, \t_3, 8 + mulh \t_2, \t_2, \q32 + mulh \t_3, \t_3, \q32 + sub \a_0_1, \a_0_0, \t_0 + sub \a_1_1, \a_1_0, \t_1 + add \a_0_0, \a_0_0, \t_0 + add \a_1_0, \a_1_0, \t_1 + mul \t_0, \a_4_1, \zeta_4 + mul \t_1, \a_5_1, \zeta_5 + sub \a_2_1, \a_2_0, \t_2 + sub \a_3_1, \a_3_0, \t_3 + add \a_2_0, \a_2_0, \t_2 + add \a_3_0, \a_3_0, \t_3 + mul \t_2, \a_6_1, \zeta_6 + mul \t_3, \a_7_1, \zeta_7 + srai \t_0, \t_0, 32 + srai \t_1, \t_1, 32 + addi \t_0, \t_0, 8 + addi \t_1, \t_1, 8 + mulh \t_0, \t_0, \q32 + mulh \t_1, \t_1, \q32 + srai \t_2, \t_2, 32 + srai \t_3, \t_3, 32 + addi \t_2, \t_2, 8 + addi \t_3, \t_3, 8 + mulh \t_2, \t_2, \q32 + mulh \t_3, \t_3, \q32 + sub \a_4_1, \a_4_0, \t_0 + sub \a_5_1, \a_5_0, \t_1 + add \a_4_0, \a_4_0, \t_0 + add \a_5_0, \a_5_0, \t_1 + sub \a_6_1, \a_6_0, \t_2 + sub \a_7_1, \a_7_0, \t_3 + add \a_6_0, \a_6_0, \t_2 + add \a_7_0, \a_7_0, \t_3 +.endm + +.macro ct_bfu_x8_loadzetas a_0_0, a_0_1, a_1_0, a_1_1, a_2_0, a_2_1, a_3_0, a_3_1, a_4_0, a_4_1, a_5_0, a_5_1, a_6_0, a_6_1, a_7_0, a_7_1, zeta_0, zeta_1, zeta_2, zeta_3, zeta_4, zeta_5, zeta_6, zeta_7, q32, t_0, t_1, t_2, t_3 + ld \t_0, \zeta_0(a1) + ld \t_1, \zeta_1(a1) + ld \t_2, \zeta_2(a1) + ld \t_3, \zeta_3(a1) + mul \t_0, \a_0_1, \t_0 + mul \t_1, \a_1_1, \t_1 + mul \t_2, \a_2_1, \t_2 + mul \t_3, \a_3_1, \t_3 + srai \t_0, \t_0, 32 + srai \t_1, \t_1, 32 + addi \t_0, \t_0, 8 + addi \t_1, \t_1, 8 + mulh \t_0, \t_0, \q32 + mulh \t_1, \t_1, \q32 + srai \t_2, \t_2, 32 + srai \t_3, \t_3, 32 + addi \t_2, \t_2, 8 + addi \t_3, \t_3, 8 + mulh \t_2, \t_2, \q32 + mulh \t_3, \t_3, \q32 + sub \a_0_1, \a_0_0, \t_0 + sub \a_1_1, \a_1_0, \t_1 + add \a_0_0, \a_0_0, \t_0 + ld \t_0, \zeta_4(a1) + add \a_1_0, \a_1_0, \t_1 + ld \t_1, \zeta_5(a1) + mul \t_0, \a_4_1, \t_0 + mul \t_1, \a_5_1, \t_1 + sub \a_2_1, \a_2_0, \t_2 + sub \a_3_1, \a_3_0, \t_3 + add \a_2_0, \a_2_0, \t_2 + ld \t_2, \zeta_6(a1) + add \a_3_0, \a_3_0, \t_3 + ld \t_3, \zeta_7(a1) + mul \t_2, \a_6_1, \t_2 + mul \t_3, \a_7_1, \t_3 + srai \t_0, \t_0, 32 + srai \t_1, \t_1, 32 + addi \t_0, \t_0, 8 + addi \t_1, \t_1, 8 + mulh \t_0, \t_0, \q32 + mulh \t_1, \t_1, \q32 + srai \t_2, \t_2, 32 + srai \t_3, \t_3, 32 + addi \t_2, \t_2, 8 + addi \t_3, \t_3, 8 + mulh \t_2, \t_2, \q32 + mulh \t_3, \t_3, \q32 + sub \a_4_1, \a_4_0, \t_0 + sub \a_5_1, \a_5_0, \t_1 + add \a_4_0, \a_4_0, \t_0 + add \a_5_0, \a_5_0, \t_1 + sub \a_6_1, \a_6_0, \t_2 + sub \a_7_1, \a_7_0, \t_3 + add \a_6_0, \a_6_0, \t_2 + add \a_7_0, \a_7_0, \t_3 +.endm + +.macro gs_bfu a_0, a_1, zeta, q32, tmp + sub \tmp, \a_0, \a_1 + add \a_0, \a_0, \a_1 + mul \a_1, \tmp, \zeta + srai \a_1, \a_1, 32 + addi \a_1, \a_1, 8 + mulh \a_1, \a_1, \q32 +.endm + +.macro gs_bfu_x2 a_0_0, a_0_1, a_1_0, a_1_1, zeta_0, zeta_1, q32, t_0, t_1 + sub \t_0, \a_0_0, \a_0_1 + sub \t_1, \a_1_0, \a_1_1 + add \a_0_0, \a_0_0, \a_0_1 + add \a_1_0, \a_1_0, \a_1_1 + mul \a_0_1, \t_0, \zeta_0 + mul \a_1_1, \t_1, \zeta_1 + srai \a_0_1, \a_0_1, 32 + srai \a_1_1, \a_1_1, 32 + addi \a_0_1, \a_0_1, 8 + addi \a_1_1, \a_1_1, 8 + mulh \a_0_1, \a_0_1, \q32 + mulh \a_1_1, \a_1_1, \q32 +.endm + +.macro gs_bfu_x8 a_0_0, a_0_1, a_1_0, a_1_1, a_2_0, a_2_1, a_3_0, a_3_1, a_4_0, a_4_1, a_5_0, a_5_1, a_6_0, a_6_1, a_7_0, a_7_1, zeta_0, zeta_1, zeta_2, zeta_3, zeta_4, zeta_5, zeta_6, zeta_7, q32, t_0, t_1, t_2, t_3 + sub \t_0, \a_0_0, \a_0_1 + sub \t_1, \a_1_0, \a_1_1 + add \a_0_0, \a_0_0, \a_0_1 + add \a_1_0, \a_1_0, \a_1_1 + mul \a_0_1, \t_0, \zeta_0 + mul \a_1_1, \t_1, \zeta_1 + sub \t_2, \a_2_0, \a_2_1 + sub \t_3, \a_3_0, \a_3_1 + add \a_2_0, \a_2_0, \a_2_1 + add \a_3_0, \a_3_0, \a_3_1 + mul \a_2_1, \t_2, \zeta_2 + mul \a_3_1, \t_3, \zeta_3 + srai \a_0_1, \a_0_1, 32 + srai \a_1_1, \a_1_1, 32 + addi \a_0_1, \a_0_1, 8 + addi \a_1_1, \a_1_1, 8 + mulh \a_0_1, \a_0_1, \q32 + mulh \a_1_1, \a_1_1, \q32 + srai \a_2_1, \a_2_1, 32 + srai \a_3_1, \a_3_1, 32 + addi \a_2_1, \a_2_1, 8 + addi \a_3_1, \a_3_1, 8 + mulh \a_2_1, \a_2_1, \q32 + mulh \a_3_1, \a_3_1, \q32 + sub \t_0, \a_4_0, \a_4_1 + sub \t_1, \a_5_0, \a_5_1 + add \a_4_0, \a_4_0, \a_4_1 + add \a_5_0, \a_5_0, \a_5_1 + mul \a_4_1, \t_0, \zeta_4 + mul \a_5_1, \t_1, \zeta_5 + sub \t_2, \a_6_0, \a_6_1 + sub \t_3, \a_7_0, \a_7_1 + add \a_6_0, \a_6_0, \a_6_1 + add \a_7_0, \a_7_0, \a_7_1 + mul \a_6_1, \t_2, \zeta_6 + mul \a_7_1, \t_3, \zeta_7 + srai \a_4_1, \a_4_1, 32 + srai \a_5_1, \a_5_1, 32 + addi \a_4_1, \a_4_1, 8 + addi \a_5_1, \a_5_1, 8 + mulh \a_4_1, \a_4_1, \q32 + mulh \a_5_1, \a_5_1, \q32 + srai \a_6_1, \a_6_1, 32 + srai \a_7_1, \a_7_1, 32 + addi \a_6_1, \a_6_1, 8 + addi \a_7_1, \a_7_1, 8 + mulh \a_6_1, \a_6_1, \q32 + mulh \a_7_1, \a_7_1, \q32 +.endm + +.macro gs_bfu_x8_load_4zetas a_0_0, a_0_1, a_1_0, a_1_1, a_2_0, a_2_1, a_3_0, a_3_1, a_4_0, a_4_1, a_5_0, a_5_1, a_6_0, a_6_1, a_7_0, a_7_1, zeta_0, zeta_1, zeta_2, zeta_3, q32, t_0, t_1, t_2, t_3 + ld \t_2, \zeta_0(a1) + sub \t_0, \a_0_0, \a_0_1 + sub \t_1, \a_1_0, \a_1_1 + add \a_0_0, \a_0_0, \a_0_1 + add \a_1_0, \a_1_0, \a_1_1 + mul \a_0_1, \t_0, \t_2 + mul \a_1_1, \t_1, \t_2 + sub \t_0, \a_2_0, \a_2_1 + sub \t_3, \a_3_0, \a_3_1 + ld \t_2, \zeta_1(a1) + add \a_2_0, \a_2_0, \a_2_1 + add \a_3_0, \a_3_0, \a_3_1 + mul \a_2_1, \t_0, \t_2 + mul \a_3_1, \t_3, \t_2 + srai \a_0_1, \a_0_1, 32 + srai \a_1_1, \a_1_1, 32 + addi \a_0_1, \a_0_1, 8 + addi \a_1_1, \a_1_1, 8 + mulh \a_0_1, \a_0_1, \q32 + mulh \a_1_1, \a_1_1, \q32 + srai \a_2_1, \a_2_1, 32 + srai \a_3_1, \a_3_1, 32 + addi \a_2_1, \a_2_1, 8 + addi \a_3_1, \a_3_1, 8 + mulh \a_2_1, \a_2_1, \q32 + mulh \a_3_1, \a_3_1, \q32 + sub \t_0, \a_4_0, \a_4_1 + sub \t_1, \a_5_0, \a_5_1 + ld \t_2, \zeta_2(a1) + add \a_4_0, \a_4_0, \a_4_1 + add \a_5_0, \a_5_0, \a_5_1 + mul \a_4_1, \t_0, \t_2 + mul \a_5_1, \t_1, \t_2 + sub \t_0, \a_6_0, \a_6_1 + sub \t_3, \a_7_0, \a_7_1 + ld \t_2, \zeta_3(a1) + add \a_6_0, \a_6_0, \a_6_1 + add \a_7_0, \a_7_0, \a_7_1 + mul \a_6_1, \t_0, \t_2 + mul \a_7_1, \t_3, \t_2 + srai \a_4_1, \a_4_1, 32 + srai \a_5_1, \a_5_1, 32 + addi \a_4_1, \a_4_1, 8 + addi \a_5_1, \a_5_1, 8 + mulh \a_4_1, \a_4_1, \q32 + mulh \a_5_1, \a_5_1, \q32 + srai \a_6_1, \a_6_1, 32 + srai \a_7_1, \a_7_1, 32 + addi \a_6_1, \a_6_1, 8 + addi \a_7_1, \a_7_1, 8 + mulh \a_6_1, \a_6_1, \q32 + mulh \a_7_1, \a_7_1, \q32 +.endm + +.macro gs_bfu_x8_load_2zetas a_0_0, a_0_1, a_1_0, a_1_1, a_2_0, a_2_1, a_3_0, a_3_1, a_4_0, a_4_1, a_5_0, a_5_1, a_6_0, a_6_1, a_7_0, a_7_1, zeta_0, zeta_1, q32, t_0, t_1, t_2, t_3 + ld \t_2, \zeta_0(a1) + sub \t_0, \a_0_0, \a_0_1 + sub \t_1, \a_1_0, \a_1_1 + add \a_0_0, \a_0_0, \a_0_1 + add \a_1_0, \a_1_0, \a_1_1 + mul \a_0_1, \t_0, \t_2 + mul \a_1_1, \t_1, \t_2 + sub \t_0, \a_2_0, \a_2_1 + sub \t_3, \a_3_0, \a_3_1 + add \a_2_0, \a_2_0, \a_2_1 + add \a_3_0, \a_3_0, \a_3_1 + mul \a_2_1, \t_0, \t_2 + mul \a_3_1, \t_3, \t_2 + srai \a_0_1, \a_0_1, 32 + srai \a_1_1, \a_1_1, 32 + addi \a_0_1, \a_0_1, 8 + addi \a_1_1, \a_1_1, 8 + mulh \a_0_1, \a_0_1, \q32 + mulh \a_1_1, \a_1_1, \q32 + srai \a_2_1, \a_2_1, 32 + srai \a_3_1, \a_3_1, 32 + addi \a_2_1, \a_2_1, 8 + addi \a_3_1, \a_3_1, 8 + mulh \a_2_1, \a_2_1, \q32 + mulh \a_3_1, \a_3_1, \q32 + ld \t_2, \zeta_1(a1) + sub \t_0, \a_4_0, \a_4_1 + sub \t_1, \a_5_0, \a_5_1 + add \a_4_0, \a_4_0, \a_4_1 + add \a_5_0, \a_5_0, \a_5_1 + mul \a_4_1, \t_0, \t_2 + mul \a_5_1, \t_1, \t_2 + sub \t_0, \a_6_0, \a_6_1 + sub \t_3, \a_7_0, \a_7_1 + add \a_6_0, \a_6_0, \a_6_1 + add \a_7_0, \a_7_0, \a_7_1 + mul \a_6_1, \t_0, \t_2 + mul \a_7_1, \t_3, \t_2 + srai \a_4_1, \a_4_1, 32 + srai \a_5_1, \a_5_1, 32 + addi \a_4_1, \a_4_1, 8 + addi \a_5_1, \a_5_1, 8 + mulh \a_4_1, \a_4_1, \q32 + mulh \a_5_1, \a_5_1, \q32 + srai \a_6_1, \a_6_1, 32 + srai \a_7_1, \a_7_1, 32 + addi \a_6_1, \a_6_1, 8 + addi \a_7_1, \a_7_1, 8 + mulh \a_6_1, \a_6_1, \q32 + mulh \a_7_1, \a_7_1, \q32 +.endm + +.macro plant_mul_const_inplace_x8 q32, zeta, a_0, a_1, a_2, a_3, a_4, a_5, a_6, a_7 + mul \a_0, \a_0, \zeta + mul \a_1, \a_1, \zeta + mul \a_2, \a_2, \zeta + mul \a_3, \a_3, \zeta + srai \a_0, \a_0, 32 + srai \a_1, \a_1, 32 + addi \a_0, \a_0, 8 + addi \a_1, \a_1, 8 + mulh \a_0, \a_0, \q32 + mulh \a_1, \a_1, \q32 + srai \a_2, \a_2, 32 + srai \a_3, \a_3, 32 + mul \a_4, \a_4, \zeta + mul \a_5, \a_5, \zeta + addi \a_2, \a_2, 8 + addi \a_3, \a_3, 8 + mulh \a_2, \a_2, \q32 + mulh \a_3, \a_3, \q32 + srai \a_4, \a_4, 32 + srai \a_5, \a_5, 32 + mul \a_6, \a_6, \zeta + mul \a_7, \a_7, \zeta + addi \a_4, \a_4, 8 + addi \a_5, \a_5, 8 + mulh \a_4, \a_4, \q32 + mulh \a_5, \a_5, \q32 + srai \a_6, \a_6, 32 + addi \a_6, \a_6, 8 + mulh \a_6, \a_6, \q32 + srai \a_7, \a_7, 32 + addi \a_7, \a_7, 8 + mulh \a_7, \a_7, \q32 +.endm + +// in-place plantard reduction +// output \in (-0.5q, 0.5q); q32: q<<32 +.macro plant_red q32, qinv, a + mul \a, \a, \qinv + srai \a, \a, 32 + addi \a, \a, 8 + mulh \a, \a, \q32 +.endm + +.macro plant_red_x4 q32, qinv, a_0, a_1, a_2, a_3 + mul \a_0, \a_0, \qinv + mul \a_1, \a_1, \qinv + mul \a_2, \a_2, \qinv + mul \a_3, \a_3, \qinv + srai \a_0, \a_0, 32 + srai \a_1, \a_1, 32 + srai \a_2, \a_2, 32 + srai \a_3, \a_3, 32 + addi \a_0, \a_0, 8 + addi \a_1, \a_1, 8 + addi \a_2, \a_2, 8 + addi \a_3, \a_3, 8 + mulh \a_0, \a_0, \q32 + mulh \a_1, \a_1, \q32 + mulh \a_2, \a_2, \q32 + mulh \a_3, \a_3, \q32 +.endm + +.equ q, 3329 +.equ q32, 0xd0100000000 // q << 32 +.equ qinv, 0x3c0f12886ba8f301 // q^-1 mod 2^64 +.equ plantconst, 0x13afb7680bb055 // (((-2**64) % q) * qinv) % (2**64) +.equ plantconst2, 0x1a390f4d9791e139 // (((-2**64) % q) * ((-2**64) % q) * qinv) % (2**64) + +// |input| < 0.5q; |output| < 3.5q +// a0: poly, a1: 64-bit twiddle ptr; a6: q<<32; +// a7/gp/tp/ra: tmp; +// 4*15(sp): loop; +// s0-s11, a2-a5: 16 coeffs; +// 7 twiddle factors: t0-t6 +.global ntt_rv64im +.align 2 +ntt_rv64im: + addi sp, sp, -8*16 + save_regs + li a6, q32 // q<<32 + addi a0, a0, 32 // poly[16] + addi gp, x0, 15 // loop + sd gp, 8*15(sp) + // load twiddle factors + ld t0, 0*8(a1) + ld t1, 1*8(a1) + ld t2, 2*8(a1) + ld t3, 3*8(a1) + ld t4, 4*8(a1) + ld t5, 5*8(a1) + ld t6, 6*8(a1) + ### LAYER 1+2+3+4 + addi x10, x10, -2 // *.......................................................................................................................................................... + lh x14, 16*2*9(x10) // .*......................................................................................................................................................... + lh x12, 16*2*8(x10) // ..*........................................................................................................................................................ + lh x21, 16*2*15(x10) // ...*....................................................................................................................................................... + lh x9, 16*2*1(x10) // ....*...................................................................................................................................................... + mul x3, x14, x5 // ....*...................................................................................................................................................... + lh x27, 16*2*0(x10) // .....*..................................................................................................................................................... + mul x22, x21, x5 // ......*.................................................................................................................................................... + lh x19, 16*2*3(x10) // ......*.................................................................................................................................................... + lh x15, 16*2*7(x10) // .......*................................................................................................................................................... + srai x3, x3, 32 // ........*.................................................................................................................................................. + mul x25, x12, x5 // ........*.................................................................................................................................................. + addi x3, x3, 8 // .........*................................................................................................................................................. + srai x24, x22, 32 // ..........*................................................................................................................................................ + srai x22, x25, 32 // ............*.............................................................................................................................................. + mulh x3, x3, x16 // ............*.............................................................................................................................................. + addi x20, x22, 8 // .............*............................................................................................................................................. + lh x17, 16*2*12(x10) // .............*............................................................................................................................................. + lh x21, 16*2*13(x10) // ..............*............................................................................................................................................ + mulh x26, x20, x16 // ..............*............................................................................................................................................ + addi x12, x24, 8 // ...............*........................................................................................................................................... + lh x20, 16*2*10(x10) // ...............*........................................................................................................................................... + sub x25, x9, x3 // ................*.......................................................................................................................................... + lh x23, 16*2*5(x10) // ................*.......................................................................................................................................... + mul x18, x17, x5 // .................*......................................................................................................................................... + add x8, x27, x26 // ..................*........................................................................................................................................ + lh x22, 16*2*11(x10) // ..................*........................................................................................................................................ + add x9, x9, x3 // ...................*....................................................................................................................................... + mul x3, x21, x5 // ...................*....................................................................................................................................... + sub x24, x27, x26 // ....................*...................................................................................................................................... + lh x14, 16*2*2(x10) // ....................*...................................................................................................................................... + srai x13, x18, 32 // .....................*..................................................................................................................................... + mul x18, x22, x5 // .....................*..................................................................................................................................... + addi x21, x13, 8 // ......................*.................................................................................................................................... + lh x27, 16*2*14(x10) // ......................*.................................................................................................................................... + srai x3, x3, 32 // .......................*................................................................................................................................... + mulh x4, x21, x16 // .......................*................................................................................................................................... + addi x3, x3, 8 // ........................*.................................................................................................................................. + srai x18, x18, 32 // .........................*................................................................................................................................. + mul x27, x27, x5 // .........................*................................................................................................................................. + lh x1, 16*2*4(x10) // ..........................*................................................................................................................................ + addi x26, x18, 8 // ..........................*................................................................................................................................ + mulh x3, x3, x16 // ...........................*............................................................................................................................... + sub x22, x1, x4 // .............................*............................................................................................................................. + add x21, x1, x4 // .............................*............................................................................................................................. + mulh x26, x26, x16 // ..............................*............................................................................................................................ + srai x27, x27, 32 // ..............................*............................................................................................................................ + add x17, x23, x3 // ...............................*........................................................................................................................... + mul x18, x20, x5 // ................................*.......................................................................................................................... + addi x1, x27, 8 // .................................*......................................................................................................................... + sub x27, x19, x26 // ..................................*........................................................................................................................ + mul x20, x21, x6 // ..................................*........................................................................................................................ + lh x21, 16*2*6(x10) // ...................................*....................................................................................................................... + add x13, x19, x26 // ...................................*....................................................................................................................... + sub x4, x23, x3 // ....................................*...................................................................................................................... + mul x22, x22, x7 // ....................................*...................................................................................................................... + srai x18, x18, 32 // .....................................*..................................................................................................................... + addi x18, x18, 8 // ......................................*.................................................................................................................... + mulh x18, x18, x16 // .......................................*................................................................................................................... + srai x26, x20, 32 // .......................................*................................................................................................................... + addi x20, x26, 8 // ........................................*.................................................................................................................. + srai x22, x22, 32 // ........................................*.................................................................................................................. + mulh x19, x12, x16 // .........................................*................................................................................................................. + addi x12, x22, 8 // .........................................*................................................................................................................. + sub x26, x14, x18 // ...........................................*............................................................................................................... + mul x3, x17, x6 // ...........................................*............................................................................................................... + add x18, x14, x18 // ............................................*.............................................................................................................. + sub x17, x15, x19 // .............................................*............................................................................................................. + mulh x14, x1, x16 // .............................................*............................................................................................................. + add x1, x15, x19 // ..............................................*............................................................................................................ + srai x3, x3, 32 // ...............................................*........................................................................................................... + mul x17, x17, x7 // ...............................................*........................................................................................................... + add x19, x21, x14 // .................................................*......................................................................................................... + mulh x15, x12, x16 // .................................................*......................................................................................................... + sub x22, x21, x14 // ..................................................*........................................................................................................ + addi x3, x3, 8 // ..................................................*........................................................................................................ + mulh x3, x3, x16 // ...................................................*....................................................................................................... + srai x17, x17, 32 // ...................................................*....................................................................................................... + addi x17, x17, 8 // ....................................................*...................................................................................................... + sub x12, x24, x15 // .....................................................*..................................................................................................... + mulh x17, x17, x16 // .....................................................*..................................................................................................... + add x24, x24, x15 // ......................................................*.................................................................................................... + mul x15, x1, x6 // .......................................................*................................................................................................... + sub x21, x9, x3 // .......................................................*................................................................................................... + sub x14, x27, x17 // .........................................................*................................................................................................. + add x27, x27, x17 // .........................................................*................................................................................................. + mulh x1, x20, x16 // ..........................................................*................................................................................................ + add x9, x9, x3 // ..........................................................*................................................................................................ + mul x22, x22, x7 // ............................................................*.............................................................................................. + srai x15, x15, 32 // ............................................................*.............................................................................................. + addi x15, x15, 8 // .............................................................*............................................................................................. + sub x20, x8, x1 // ..............................................................*............................................................................................ + mul x3, x4, x7 // ..............................................................*............................................................................................ + srai x22, x22, 32 // ................................................................*.......................................................................................... + mul x17, x19, x6 // .................................................................*......................................................................................... + srai x3, x3, 32 // ..................................................................*........................................................................................ + add x8, x8, x1 // ..................................................................*........................................................................................ + addi x3, x3, 8 // ...................................................................*....................................................................................... + mulh x15, x15, x16 // ...................................................................*....................................................................................... + addi x22, x22, 8 // ....................................................................*...................................................................................... + mul x14, x14, x31 // .....................................................................*..................................................................................... + srai x1, x17, 32 // .....................................................................*..................................................................................... + addi x1, x1, 8 // ......................................................................*.................................................................................... + add x17, x13, x15 // .......................................................................*................................................................................... + mulh x3, x3, x16 // .......................................................................*................................................................................... + sub x15, x13, x15 // ........................................................................*.................................................................................. + mulh x22, x22, x16 // .........................................................................*................................................................................. + sub x4, x25, x3 // ...........................................................................*............................................................................... + add x25, x25, x3 // ...........................................................................*............................................................................... + mul x3, x17, x28 // ............................................................................*.............................................................................. + srai x14, x14, 32 // ............................................................................*.............................................................................. + addi x19, x14, 8 // .............................................................................*............................................................................. + sub x14, x26, x22 // .............................................................................*............................................................................. + mul x15, x15, x29 // ..............................................................................*............................................................................ + add x22, x26, x22 // ..............................................................................*............................................................................ + mul x14, x14, x31 // ................................................................................*.......................................................................... + ld gp, 8*15(sp) + addi gp, gp, -1 + sd gp, 8*15(sp) +ntt_rv64im_loop1: + // Instructions: 233 + // Expected cycles: 148 + // Expected IPC: 1.57 + + // ---------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------> + // 0 25 50 75 100 125 + // |------------------------|------------------------|------------------------|------------------------|------------------------|---------------------- + srai x3, x3, 32 // *................................................................................................................................................... + mulh x26, x19, x16 // *................................................................................................................................................... + srai x15, x15, 32 // .*.................................................................................................................................................. + addi x3, x3, 8 // .*.................................................................................................................................................. + mulh x1, x1, x16 // ..*................................................................................................................................................. + srai x14, x14, 32 // ..*................................................................................................................................................. + addi x14, x14, 8 // ...*................................................................................................................................................ + addi x17, x15, 8 // ...*................................................................................................................................................ + mul x22, x22, x30 // ....*............................................................................................................................................... + sub x15, x4, x26 // ....*............................................................................................................................................... + add x13, x4, x26 // .....*.............................................................................................................................................. + ld x26, 7*8(x11) // .....*.............................................................................................................................................. + add x23, x18, x1 // ......*............................................................................................................................................. + mulh x3, x3, x16 // ......*............................................................................................................................................. + sub x18, x18, x1 // .......*............................................................................................................................................ + mul x19, x18, x29 // ........*........................................................................................................................................... + add x18, x9, x3 // ..........*......................................................................................................................................... + mul x4, x23, x28 // ..........*......................................................................................................................................... + mul x23, x18, x26 // ............*....................................................................................................................................... + sub x18, x9, x3 // ............*....................................................................................................................................... + srai x19, x19, 32 // .............*...................................................................................................................................... + mul x3, x27, x30 // ..............*..................................................................................................................................... + addi x1, x19, 8 // ..............*..................................................................................................................................... + mulh x9, x17, x16 // ................*................................................................................................................................... + srai x27, x4, 32 // ................*................................................................................................................................... + srai x26, x23, 32 // .................*.................................................................................................................................. + srai x4, x22, 32 // .................*.................................................................................................................................. + srai x3, x3, 32 // ..................*................................................................................................................................. + mulh x22, x1, x16 // ..................*................................................................................................................................. + ld x19, 13*8(x11) // ...................*................................................................................................................................ + addi x3, x3, 8 // ...................*................................................................................................................................ + mulh x3, x3, x16 // ....................*............................................................................................................................... + addi x4, x4, 8 // ....................*............................................................................................................................... + sub x17, x21, x9 // .....................*.............................................................................................................................. + addi x27, x27, 8 // ......................*............................................................................................................................. + mulh x4, x4, x16 // ......................*............................................................................................................................. + add x9, x21, x9 // .......................*............................................................................................................................ + add x23, x25, x3 // ........................*........................................................................................................................... + sub x25, x25, x3 // ........................*........................................................................................................................... + mul x21, x13, x19 // .........................*.......................................................................................................................... + add x1, x20, x22 // .........................*.......................................................................................................................... + sub x22, x20, x22 // ..........................*......................................................................................................................... + addi x20, x26, 8 // ..........................*......................................................................................................................... + mulh x19, x27, x16 // ...........................*........................................................................................................................ + sub x26, x24, x4 // ...........................*........................................................................................................................ + add x27, x24, x4 // ............................*....................................................................................................................... + ld x3, 8*8(x11) // ............................*....................................................................................................................... + srai x13, x21, 32 // .............................*...................................................................................................................... + mulh x24, x20, x16 // .............................*...................................................................................................................... + addi x20, x13, 8 // ..............................*..................................................................................................................... + ld x13, 10*8(x11) // ..............................*..................................................................................................................... + mul x3, x18, x3 // ...............................*.................................................................................................................... + ld x4, 11*8(x11) // ...............................*.................................................................................................................... + add x18, x8, x19 // ................................*................................................................................................................... + ld x21, 9*8(x11) // ................................*................................................................................................................... + mul x13, x17, x13 // .................................*.................................................................................................................. + sub x17, x18, x24 // .................................*.................................................................................................................. + add x24, x18, x24 // ..................................*................................................................................................................. + sub x18, x8, x19 // ...................................*................................................................................................................ + mul x9, x9, x21 // ...................................*................................................................................................................ + srai x3, x3, 32 // ....................................*............................................................................................................... + sh x24, 16*2*0(x10) // ....................................*............................................................................................................... + sh x17, 16*2*1(x10) // .....................................*.............................................................................................................. + mul x24, x23, x4 // .....................................*.............................................................................................................. + srai x8, x13, 32 // ......................................*............................................................................................................. + addi x3, x3, 8 // ......................................*............................................................................................................. + mulh x14, x14, x16 // .......................................*............................................................................................................ + srai x9, x9, 32 // .......................................*............................................................................................................ + addi x8, x8, 8 // ........................................*........................................................................................................... + srai x24, x24, 32 // .........................................*.......................................................................................................... + mulh x20, x20, x16 // .........................................*.......................................................................................................... + addi x24, x24, 8 // ..........................................*......................................................................................................... + addi x9, x9, 8 // ..........................................*......................................................................................................... + add x17, x12, x14 // ...........................................*........................................................................................................ + sub x14, x12, x14 // ...........................................*........................................................................................................ + mulh x3, x3, x16 // ............................................*....................................................................................................... + ld x21, 14*8(x11) // .............................................*...................................................................................................... + mulh x8, x8, x16 // ..............................................*..................................................................................................... + add x4, x17, x20 // ..............................................*..................................................................................................... + sub x20, x17, x20 // ...............................................*.................................................................................................... + sh x4, 16*2*12(x10) // ...............................................*.................................................................................................... + mul x13, x15, x21 // ................................................*................................................................................................... + sub x12, x18, x3 // ................................................*................................................................................................... + srai x15, x13, 32 // ....................................................*............................................................................................... + add x18, x18, x3 // ....................................................*............................................................................................... + addi x15, x15, 8 // .....................................................*.............................................................................................. + ld x3, 12*8(x11) // .....................................................*.............................................................................................. + mulh x15, x15, x16 // ......................................................*............................................................................................. + sh x18, 16*2*2(x10) // ......................................................*............................................................................................. + sub x17, x22, x8 // .......................................................*............................................................................................ + sh x12, 16*2*3(x10) // .......................................................*............................................................................................ + add x22, x22, x8 // ........................................................*........................................................................................... + mul x3, x25, x3 // ........................................................*........................................................................................... + sh x22, 16*2*6(x10) // .........................................................*.......................................................................................... + add x8, x14, x15 // ..........................................................*......................................................................................... + sh x20, 16*2*13(x10) // ...........................................................*........................................................................................ + sub x23, x14, x15 // ...........................................................*........................................................................................ + mulh x12, x24, x16 // ............................................................*....................................................................................... + srai x3, x3, 32 // ............................................................*....................................................................................... + addi x3, x3, 8 // .............................................................*...................................................................................... + sh x17, 16*2*7(x10) // .............................................................*...................................................................................... + mulh x21, x9, x16 // ..............................................................*..................................................................................... + sh x23, 16*2*15(x10) // ..............................................................*..................................................................................... + sh x8, 16*2*14(x10) // ...............................................................*.................................................................................... + add x20, x27, x12 // ................................................................*................................................................................... + mulh x3, x3, x16 // ................................................................*................................................................................... + sub x18, x27, x12 // .................................................................*.................................................................................. + sh x20, 16*2*8(x10) // .................................................................*.................................................................................. + sh x18, 16*2*9(x10) // ..................................................................*................................................................................. + add x18, x1, x21 // ..................................................................*................................................................................. + sh x18, 16*2*4(x10) // ...................................................................*................................................................................ + sub x18, x1, x21 // ...................................................................*................................................................................ + sh x18, 16*2*5(x10) // ....................................................................*............................................................................... + sub x18, x26, x3 // ....................................................................*............................................................................... + sh x18, 16*2*11(x10) // .....................................................................*.............................................................................. + add x15, x26, x3 // .....................................................................*.............................................................................. + sh x15, 16*2*10(x10) // ......................................................................*............................................................................. + addi x10, x10, -2 // ......................................................................*............................................................................. + lh x25, 16*2*9(x10) // .......................................................................*............................................................................ + lh x18, 16*2*8(x10) // ........................................................................*........................................................................... + lh x9, 16*2*1(x10) // .........................................................................*.......................................................................... + lh x24, 16*2*10(x10) // ..........................................................................*......................................................................... + mul x3, x25, x5 // ..........................................................................*......................................................................... + lh x22, 16*2*12(x10) // ...........................................................................*........................................................................ + lh x17, 16*2*14(x10) // ............................................................................*....................................................................... + mul x15, x18, x5 // ............................................................................*....................................................................... + lh x26, 16*2*13(x10) // .............................................................................*...................................................................... + srai x3, x3, 32 // ..............................................................................*..................................................................... + mul x18, x22, x5 // ..............................................................................*..................................................................... + addi x3, x3, 8 // ...............................................................................*.................................................................... + lh x22, 16*2*11(x10) // ...............................................................................*.................................................................... + srai x15, x15, 32 // ................................................................................*................................................................... + mul x25, x17, x5 // ................................................................................*................................................................... + lh x21, 16*2*6(x10) // .................................................................................*.................................................................. + addi x15, x15, 8 // .................................................................................*.................................................................. + lh x27, 16*2*4(x10) // ..................................................................................*................................................................. + mul x1, x24, x5 // ..................................................................................*................................................................. + lh x8, 16*2*15(x10) // ...................................................................................*................................................................ + lh x23, 16*2*5(x10) // ....................................................................................*............................................................... + srai x18, x18, 32 // ....................................................................................*............................................................... + mulh x19, x15, x16 // .....................................................................................*.............................................................. + addi x20, x18, 8 // .....................................................................................*.............................................................. + srai x18, x1, 32 // ......................................................................................*............................................................. + lh x24, 16*2*0(x10) // ......................................................................................*............................................................. + mul x14, x22, x5 // .......................................................................................*............................................................ + addi x22, x18, 8 // .......................................................................................*............................................................ + srai x15, x25, 32 // ........................................................................................*........................................................... + lh x13, 16*2*7(x10) // ........................................................................................*........................................................... + mul x18, x8, x5 // .........................................................................................*.......................................................... + add x8, x24, x19 // .........................................................................................*.......................................................... + sub x24, x24, x19 // ..........................................................................................*......................................................... + mulh x3, x3, x16 // ...........................................................................................*........................................................ + srai x18, x18, 32 // .............................................................................................*...................................................... + srai x25, x14, 32 // .............................................................................................*...................................................... + addi x18, x18, 8 // ..............................................................................................*..................................................... + addi x19, x25, 8 // ..............................................................................................*..................................................... + mulh x18, x18, x16 // ...............................................................................................*.................................................... + addi x15, x15, 8 // ...............................................................................................*.................................................... + mulh x1, x15, x16 // .................................................................................................*.................................................. + sub x25, x9, x3 // .................................................................................................*.................................................. + add x9, x9, x3 // ..................................................................................................*................................................. + add x14, x13, x18 // ...................................................................................................*................................................ + mulh x4, x20, x16 // ...................................................................................................*................................................ + mul x3, x26, x5 // .....................................................................................................*.............................................. + sub x12, x13, x18 // .....................................................................................................*.............................................. + add x15, x21, x1 // ......................................................................................................*............................................. + lh x17, 16*2*3(x10) // ......................................................................................................*............................................. + sub x20, x27, x4 // .......................................................................................................*............................................ + mulh x19, x19, x16 // .......................................................................................................*............................................ + add x4, x27, x4 // ........................................................................................................*........................................... + sub x27, x21, x1 // ........................................................................................................*........................................... + mulh x22, x22, x16 // .........................................................................................................*.......................................... + srai x3, x3, 32 // .........................................................................................................*.......................................... + addi x3, x3, 8 // ..........................................................................................................*......................................... + mul x21, x14, x6 // ...........................................................................................................*........................................ + mulh x3, x3, x16 // .............................................................................................................*...................................... + srai x18, x21, 32 // ...............................................................................................................*.................................... + sub x21, x17, x19 // ...............................................................................................................*.................................... + add x13, x17, x19 // ................................................................................................................*................................... + lh x14, 16*2*2(x10) // .................................................................................................................*.................................. + mul x1, x20, x7 // .................................................................................................................*.................................. + mul x26, x12, x7 // ...................................................................................................................*................................ + addi x18, x18, 8 // ...................................................................................................................*................................ + add x20, x23, x3 // ....................................................................................................................*............................... + sub x17, x23, x3 // ....................................................................................................................*............................... + mul x3, x20, x6 // .....................................................................................................................*.............................. + mul x23, x15, x6 // .......................................................................................................................*............................ + srai x1, x1, 32 // .......................................................................................................................*............................ + sub x19, x14, x22 // ........................................................................................................................*........................... + addi x12, x1, 8 // ........................................................................................................................*........................... + srai x3, x3, 32 // .........................................................................................................................*.......................... + mul x27, x27, x7 // .........................................................................................................................*.......................... + addi x3, x3, 8 // ..........................................................................................................................*......................... + srai x26, x26, 32 // ..........................................................................................................................*......................... + srai x23, x23, 32 // ...........................................................................................................................*........................ + mulh x3, x3, x16 // ...........................................................................................................................*........................ + addi x1, x23, 8 // ............................................................................................................................*....................... + addi x15, x26, 8 // ............................................................................................................................*....................... + mul x20, x4, x6 // .............................................................................................................................*...................... + srai x27, x27, 32 // .............................................................................................................................*...................... + addi x4, x27, 8 // ..............................................................................................................................*..................... + mulh x26, x12, x16 // ...............................................................................................................................*.................... + srai x20, x20, 32 // .................................................................................................................................*.................. + mulh x27, x15, x16 // .................................................................................................................................*.................. + addi x15, x20, 8 // ..................................................................................................................................*................. + sub x12, x24, x26 // ...................................................................................................................................*................ + mulh x15, x15, x16 // ...................................................................................................................................*................ + add x24, x24, x26 // ....................................................................................................................................*............... + mulh x23, x18, x16 // .....................................................................................................................................*.............. + sub x26, x21, x27 // .....................................................................................................................................*.............. + add x27, x21, x27 // ......................................................................................................................................*............. + sub x21, x9, x3 // ......................................................................................................................................*............. + add x9, x9, x3 // .......................................................................................................................................*............ + mul x3, x17, x7 // .......................................................................................................................................*............ + sub x20, x8, x15 // ........................................................................................................................................*........... + add x18, x14, x22 // ........................................................................................................................................*........... + add x8, x8, x15 // .........................................................................................................................................*.......... + mulh x15, x4, x16 // .........................................................................................................................................*.......... + sub x14, x13, x23 // ..........................................................................................................................................*......... + add x23, x13, x23 // ..........................................................................................................................................*......... + srai x3, x3, 32 // ...........................................................................................................................................*........ + mul x26, x26, x31 // ...........................................................................................................................................*........ + addi x3, x3, 8 // ............................................................................................................................................*....... + sub x17, x19, x15 // .............................................................................................................................................*...... + mulh x3, x3, x16 // .............................................................................................................................................*...... + add x22, x19, x15 // ..............................................................................................................................................*..... + srai x26, x26, 32 // ...............................................................................................................................................*.... + mul x15, x14, x29 // ...............................................................................................................................................*.... + addi x19, x26, 8 // ................................................................................................................................................*... + sub x4, x25, x3 // .................................................................................................................................................*.. + mul x14, x17, x31 // .................................................................................................................................................*.. + add x25, x25, x3 // ...................................................................................................................................................* + mul x3, x23, x28 // ...................................................................................................................................................* + + // ---------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------> + // 0 25 50 75 100 125 + // |------------------------|------------------------|------------------------|------------------------|------------------------|---------------------- + // mulh x23, x19, x16 // *................................................................................................................................................... + // srai x26, x15, 32 // .*.................................................................................................................................................. + // srai x14, x14, 32 // ..*................................................................................................................................................. + // srai x3, x3, 32 // *................................................................................................................................................... + // mulh x15, x1, x16 // ..*................................................................................................................................................. + // addi x1, x14, 8 // ...*................................................................................................................................................ + // addi x17, x26, 8 // ...*................................................................................................................................................ + // addi x3, x3, 8 // .*.................................................................................................................................................. + // mulh x3, x3, x16 // ......*............................................................................................................................................. + // mulh x1, x1, x16 // .......................................*............................................................................................................ + // sub x13, x18, x15 // .......*............................................................................................................................................ + // add x19, x18, x15 // ......*............................................................................................................................................. + // sub x14, x12, x1 // ...........................................*........................................................................................................ + // mul x18, x13, x29 // ........*........................................................................................................................................... + // add x12, x12, x1 // ...........................................*........................................................................................................ + // add x1, x9, x3 // ..........*......................................................................................................................................... + // sub x9, x9, x3 // ............*....................................................................................................................................... + // mul x3, x27, x30 // ..............*..................................................................................................................................... + // sub x15, x4, x23 // ....*............................................................................................................................................... + // ld x27, 7*8(x11) // .....*.............................................................................................................................................. + // mul x26, x19, x28 // ..........*......................................................................................................................................... + // add x13, x4, x23 // .....*.............................................................................................................................................. + // mul x19, x1, x27 // ............*....................................................................................................................................... + // srai x3, x3, 32 // ..................*................................................................................................................................. + // mulh x23, x17, x16 // ................*................................................................................................................................... + // srai x19, x19, 32 // .................*.................................................................................................................................. + // addi x27, x19, 8 // ..........................*......................................................................................................................... + // addi x3, x3, 8 // ...................*................................................................................................................................ + // mulh x3, x3, x16 // ....................*............................................................................................................................... + // srai x1, x18, 32 // .............*...................................................................................................................................... + // addi x17, x1, 8 // ..............*..................................................................................................................................... + // ld x4, 11*8(x11) // ...............................*.................................................................................................................... + // mulh x17, x17, x16 // ..................*................................................................................................................................. + // add x1, x21, x23 // .......................*............................................................................................................................ + // add x18, x25, x3 // ........................*........................................................................................................................... + // mul x19, x22, x30 // ....*............................................................................................................................................... + // srai x26, x26, 32 // ................*................................................................................................................................... + // sub x22, x20, x17 // ..........................*......................................................................................................................... + // addi x26, x26, 8 // ......................*............................................................................................................................. + // add x20, x20, x17 // .........................*.......................................................................................................................... + // mulh x26, x26, x16 // ...........................*........................................................................................................................ + // sub x25, x25, x3 // ........................*........................................................................................................................... + // sub x17, x21, x23 // .....................*.............................................................................................................................. + // mulh x21, x27, x16 // .............................*...................................................................................................................... + // srai x27, x19, 32 // .................*.................................................................................................................................. + // addi x27, x27, 8 // ....................*............................................................................................................................... + // ld x3, 8*8(x11) // ............................*....................................................................................................................... + // mul x3, x9, x3 // ...............................*.................................................................................................................... + // add x9, x8, x26 // ................................*................................................................................................................... + // sub x8, x8, x26 // ...................................*................................................................................................................ + // ld x26, 9*8(x11) // ................................*................................................................................................................... + // mulh x19, x27, x16 // ......................*............................................................................................................................. + // sub x23, x9, x21 // .................................*.................................................................................................................. + // sh x23, 16*2*1(x10) // .....................................*.............................................................................................................. + // add x23, x9, x21 // ..................................*................................................................................................................. + // mul x9, x1, x26 // ...................................*................................................................................................................ + // srai x3, x3, 32 // ....................................*............................................................................................................... + // ld x1, 13*8(x11) // ...................*................................................................................................................................ + // addi x3, x3, 8 // ......................................*............................................................................................................. + // sh x23, 16*2*0(x10) // ....................................*............................................................................................................... + // mulh x3, x3, x16 // ............................................*....................................................................................................... + // srai x9, x9, 32 // .......................................*............................................................................................................ + // add x27, x24, x19 // ............................*....................................................................................................................... + // mul x1, x13, x1 // .........................*.......................................................................................................................... + // sub x26, x24, x19 // ...........................*........................................................................................................................ + // ld x24, 14*8(x11) // .............................................*...................................................................................................... + // addi x9, x9, 8 // ..........................................*......................................................................................................... + // sub x13, x8, x3 // ................................................*................................................................................................... + // mulh x21, x9, x16 // ..............................................................*..................................................................................... + // add x9, x8, x3 // ....................................................*............................................................................................... + // ld x19, 10*8(x11) // ..............................*..................................................................................................................... + // mul x24, x15, x24 // ................................................*................................................................................................... + // sh x9, 16*2*2(x10) // ......................................................*............................................................................................. + // srai x1, x1, 32 // .............................*...................................................................................................................... + // addi x9, x1, 8 // ..............................*..................................................................................................................... + // mul x4, x18, x4 // .....................................*.............................................................................................................. + // sh x13, 16*2*3(x10) // .......................................................*............................................................................................ + // sub x18, x20, x21 // ...................................................................*................................................................................ + // mulh x9, x9, x16 // .........................................*.......................................................................................................... + // ld x3, 12*8(x11) // .....................................................*.............................................................................................. + // sh x18, 16*2*5(x10) // ....................................................................*............................................................................... + // add x8, x20, x21 // ..................................................................*................................................................................. + // srai x20, x4, 32 // .........................................*.......................................................................................................... + // mul x15, x17, x19 // .................................*.................................................................................................................. + // srai x1, x24, 32 // ....................................................*............................................................................................... + // sh x8, 16*2*4(x10) // ...................................................................*................................................................................ + // sub x8, x12, x9 // ...............................................*.................................................................................................... + // mul x3, x25, x3 // ........................................................*........................................................................................... + // addi x21, x20, 8 // ..........................................*......................................................................................................... + // addi x18, x1, 8 // .....................................................*.............................................................................................. + // srai x25, x15, 32 // ......................................*............................................................................................................. + // mulh x15, x18, x16 // ......................................................*............................................................................................. + // addi x25, x25, 8 // ........................................*........................................................................................................... + // sh x8, 16*2*13(x10) // ...........................................................*........................................................................................ + // mulh x25, x25, x16 // ..............................................*..................................................................................................... + // srai x3, x3, 32 // ............................................................*....................................................................................... + // add x1, x12, x9 // ..............................................*..................................................................................................... + // addi x3, x3, 8 // .............................................................*...................................................................................... + // add x9, x14, x15 // ..........................................................*......................................................................................... + // mulh x18, x21, x16 // ............................................................*....................................................................................... + // sh x9, 16*2*14(x10) // ...............................................................*.................................................................................... + // sub x15, x14, x15 // ...........................................................*........................................................................................ + // sh x15, 16*2*15(x10) // ..............................................................*..................................................................................... + // mulh x3, x3, x16 // ................................................................*................................................................................... + // sh x1, 16*2*12(x10) // ...............................................*.................................................................................................... + // add x9, x22, x25 // ........................................................*........................................................................................... + // sub x22, x22, x25 // .......................................................*............................................................................................ + // sh x9, 16*2*6(x10) // .........................................................*.......................................................................................... + // sh x22, 16*2*7(x10) // .............................................................*...................................................................................... + // add x15, x27, x18 // ................................................................*................................................................................... + // sub x18, x27, x18 // .................................................................*.................................................................................. + // sh x15, 16*2*8(x10) // .................................................................*.................................................................................. + // sh x18, 16*2*9(x10) // ..................................................................*................................................................................. + // sub x18, x26, x3 // ....................................................................*............................................................................... + // sh x18, 16*2*11(x10) // .....................................................................*.............................................................................. + // add x18, x26, x3 // .....................................................................*.............................................................................. + // sh x18, 16*2*10(x10) // ......................................................................*............................................................................. + // addi x10, x10, -2 // ......................................................................*............................................................................. + // lh x14, 16*2*9(x10) // .......................................................................*............................................................................ + // lh x12, 16*2*8(x10) // ........................................................................*........................................................................... + // lh x21, 16*2*15(x10) // ...................................................................................*................................................................ + // lh x9, 16*2*1(x10) // .........................................................................*.......................................................................... + // mul x3, x14, x5 // ..........................................................................*......................................................................... + // lh x27, 16*2*0(x10) // ......................................................................................*............................................................. + // mul x22, x21, x5 // .........................................................................................*.......................................................... + // lh x19, 16*2*3(x10) // ......................................................................................................*............................................. + // lh x15, 16*2*7(x10) // ........................................................................................*........................................................... + // srai x3, x3, 32 // ..............................................................................*..................................................................... + // mul x25, x12, x5 // ............................................................................*....................................................................... + // addi x3, x3, 8 // ...............................................................................*.................................................................... + // srai x24, x22, 32 // .............................................................................................*...................................................... + // srai x22, x25, 32 // ................................................................................*................................................................... + // mulh x3, x3, x16 // ...........................................................................................*........................................................ + // addi x20, x22, 8 // .................................................................................*.................................................................. + // lh x17, 16*2*12(x10) // ...........................................................................*........................................................................ + // lh x21, 16*2*13(x10) // .............................................................................*...................................................................... + // mulh x26, x20, x16 // .....................................................................................*.............................................................. + // addi x12, x24, 8 // ..............................................................................................*..................................................... + // lh x20, 16*2*10(x10) // ..........................................................................*......................................................................... + // sub x25, x9, x3 // .................................................................................................*.................................................. + // lh x23, 16*2*5(x10) // ....................................................................................*............................................................... + // mul x18, x17, x5 // ..............................................................................*..................................................................... + // add x8, x27, x26 // .........................................................................................*.......................................................... + // lh x22, 16*2*11(x10) // ...............................................................................*.................................................................... + // add x9, x9, x3 // ..................................................................................................*................................................. + // mul x3, x21, x5 // .....................................................................................................*.............................................. + // sub x24, x27, x26 // ..........................................................................................*......................................................... + // lh x14, 16*2*2(x10) // .................................................................................................................*.................................. + // srai x13, x18, 32 // ....................................................................................*............................................................... + // mul x18, x22, x5 // .......................................................................................*............................................................ + // addi x21, x13, 8 // .....................................................................................*.............................................................. + // lh x27, 16*2*14(x10) // ............................................................................*....................................................................... + // srai x3, x3, 32 // .........................................................................................................*.......................................... + // mulh x4, x21, x16 // ...................................................................................................*................................................ + // addi x3, x3, 8 // ..........................................................................................................*......................................... + // srai x18, x18, 32 // .............................................................................................*...................................................... + // mul x27, x27, x5 // ................................................................................*................................................................... + // lh x1, 16*2*4(x10) // ..................................................................................*................................................................. + // addi x26, x18, 8 // ..............................................................................................*..................................................... + // mulh x3, x3, x16 // .............................................................................................................*...................................... + // sub x22, x1, x4 // .......................................................................................................*............................................ + // add x21, x1, x4 // ........................................................................................................*........................................... + // mulh x26, x26, x16 // .......................................................................................................*............................................ + // srai x27, x27, 32 // ........................................................................................*........................................................... + // add x17, x23, x3 // ....................................................................................................................*............................... + // mul x18, x20, x5 // ..................................................................................*................................................................. + // addi x1, x27, 8 // ...............................................................................................*.................................................... + // sub x27, x19, x26 // ...............................................................................................................*.................................... + // mul x20, x21, x6 // .............................................................................................................................*...................... + // lh x21, 16*2*6(x10) // .................................................................................*.................................................................. + // add x13, x19, x26 // ................................................................................................................*................................... + // sub x4, x23, x3 // ....................................................................................................................*............................... + // mul x22, x22, x7 // .................................................................................................................*.................................. + // srai x18, x18, 32 // ......................................................................................*............................................................. + // addi x18, x18, 8 // .......................................................................................*............................................................ + // mulh x18, x18, x16 // .........................................................................................................*.......................................... + // srai x26, x20, 32 // .................................................................................................................................*.................. + // addi x20, x26, 8 // ..................................................................................................................................*................. + // srai x22, x22, 32 // .......................................................................................................................*............................ + // mulh x19, x12, x16 // ...............................................................................................*.................................................... + // addi x12, x22, 8 // ........................................................................................................................*........................... + // sub x26, x14, x18 // ........................................................................................................................*........................... + // mul x3, x17, x6 // .....................................................................................................................*.............................. + // add x18, x14, x18 // ........................................................................................................................................*........... + // sub x17, x15, x19 // .....................................................................................................*.............................................. + // mulh x14, x1, x16 // .................................................................................................*.................................................. + // add x1, x15, x19 // ...................................................................................................*................................................ + // srai x3, x3, 32 // .........................................................................................................................*.......................... + // mul x17, x17, x7 // ...................................................................................................................*................................ + // add x19, x21, x14 // ......................................................................................................*............................................. + // mulh x15, x12, x16 // ...............................................................................................................................*.................... + // sub x22, x21, x14 // ........................................................................................................*........................................... + // addi x3, x3, 8 // ..........................................................................................................................*......................... + // mulh x3, x3, x16 // ...........................................................................................................................*........................ + // srai x17, x17, 32 // ..........................................................................................................................*......................... + // addi x17, x17, 8 // ............................................................................................................................*....................... + // sub x12, x24, x15 // ...................................................................................................................................*................ + // mulh x17, x17, x16 // .................................................................................................................................*.................. + // add x24, x24, x15 // ....................................................................................................................................*............... + // mul x15, x1, x6 // ...........................................................................................................*........................................ + // sub x21, x9, x3 // ......................................................................................................................................*............. + // sub x14, x27, x17 // .....................................................................................................................................*.............. + // add x27, x27, x17 // ......................................................................................................................................*............. + // mulh x1, x20, x16 // ...................................................................................................................................*................ + // add x9, x9, x3 // .......................................................................................................................................*............ + // mul x22, x22, x7 // .........................................................................................................................*.......................... + // srai x15, x15, 32 // ...............................................................................................................*.................................... + // addi x15, x15, 8 // ...................................................................................................................*................................ + // sub x20, x8, x1 // ........................................................................................................................................*........... + // mul x3, x4, x7 // .......................................................................................................................................*............ + // srai x22, x22, 32 // .............................................................................................................................*...................... + // mul x17, x19, x6 // .......................................................................................................................*............................ + // srai x3, x3, 32 // ...........................................................................................................................................*........ + // add x8, x8, x1 // .........................................................................................................................................*.......... + // addi x3, x3, 8 // ............................................................................................................................................*....... + // mulh x15, x15, x16 // .....................................................................................................................................*.............. + // addi x22, x22, 8 // ..............................................................................................................................*..................... + // mul x14, x14, x31 // ...........................................................................................................................................*........ + // srai x1, x17, 32 // ...........................................................................................................................*........................ + // addi x1, x1, 8 // ............................................................................................................................*....................... + // add x17, x13, x15 // ..........................................................................................................................................*......... + // mulh x3, x3, x16 // .............................................................................................................................................*...... + // sub x15, x13, x15 // ..........................................................................................................................................*......... + // mulh x22, x22, x16 // .........................................................................................................................................*.......... + // sub x4, x25, x3 // .................................................................................................................................................*.. + // add x25, x25, x3 // ...................................................................................................................................................* + // mul x3, x17, x28 // ...................................................................................................................................................* + // srai x14, x14, 32 // ...............................................................................................................................................*.... + // addi x19, x14, 8 // ................................................................................................................................................*... + // sub x14, x26, x22 // .............................................................................................................................................*...... + // mul x15, x15, x29 // ...............................................................................................................................................*.... + // add x22, x26, x22 // ..............................................................................................................................................*..... + // mul x14, x14, x31 // .................................................................................................................................................*.. + + ld gp, 8*15(sp) + addi gp, gp, -1 + sd gp, 8*15(sp) + bge gp, zero, ntt_rv64im_loop1 + mulh x23, x19, x16 // ..................................................................................*........................................................................ + srai x26, x15, 32 // ...................................................................................*....................................................................... + srai x14, x14, 32 // ....................................................................................*...................................................................... + srai x3, x3, 32 // ....................................................................................*...................................................................... + mulh x15, x1, x16 // .....................................................................................*..................................................................... + addi x1, x14, 8 // .....................................................................................*..................................................................... + addi x17, x26, 8 // ......................................................................................*.................................................................... + addi x3, x3, 8 // ......................................................................................*.................................................................... + mulh x3, x3, x16 // .......................................................................................*................................................................... + mulh x1, x1, x16 // .........................................................................................*................................................................. + sub x13, x18, x15 // .........................................................................................*................................................................. + add x19, x18, x15 // ..........................................................................................*................................................................ + sub x14, x12, x1 // .............................................................................................*............................................................. + mul x18, x13, x29 // .............................................................................................*............................................................. + add x12, x12, x1 // ..............................................................................................*............................................................ + add x1, x9, x3 // ..............................................................................................*............................................................ + sub x9, x9, x3 // ...............................................................................................*........................................................... + mul x3, x27, x30 // ...............................................................................................*........................................................... + sub x15, x4, x23 // ................................................................................................*.......................................................... + ld x27, 7*8(x11) // ................................................................................................*.......................................................... + mul x26, x19, x28 // .................................................................................................*......................................................... + add x13, x4, x23 // .................................................................................................*......................................................... + mul x19, x1, x27 // ...................................................................................................*....................................................... + srai x3, x3, 32 // ...................................................................................................*....................................................... + mulh x23, x17, x16 // .......................................................................................................*................................................... + srai x19, x19, 32 // .......................................................................................................*................................................... + addi x27, x19, 8 // ........................................................................................................*.................................................. + addi x3, x3, 8 // ........................................................................................................*.................................................. + mulh x3, x3, x16 // .........................................................................................................*................................................. + srai x1, x18, 32 // .........................................................................................................*................................................. + addi x17, x1, 8 // ..........................................................................................................*................................................ + ld x4, 11*8(x11) // ..........................................................................................................*................................................ + mulh x17, x17, x16 // ...........................................................................................................*............................................... + add x1, x21, x23 // ...........................................................................................................*............................................... + add x18, x25, x3 // .............................................................................................................*............................................. + mul x19, x22, x30 // .............................................................................................................*............................................. + srai x26, x26, 32 // ..............................................................................................................*............................................ + sub x22, x20, x17 // ...............................................................................................................*........................................... + addi x26, x26, 8 // ...............................................................................................................*........................................... + add x20, x20, x17 // ................................................................................................................*.......................................... + mulh x26, x26, x16 // ................................................................................................................*.......................................... + sub x25, x25, x3 // .................................................................................................................*......................................... + sub x17, x21, x23 // .................................................................................................................*......................................... + mulh x21, x27, x16 // ..................................................................................................................*........................................ + srai x27, x19, 32 // ..................................................................................................................*........................................ + addi x27, x27, 8 // ...................................................................................................................*....................................... + ld x3, 8*8(x11) // ...................................................................................................................*....................................... + mul x3, x9, x3 // ......................................................................................................................*.................................... + add x9, x8, x26 // ......................................................................................................................*.................................... + sub x8, x8, x26 // .......................................................................................................................*................................... + ld x26, 9*8(x11) // .......................................................................................................................*................................... + mulh x19, x27, x16 // ........................................................................................................................*.................................. + sub x23, x9, x21 // ........................................................................................................................*.................................. + sh x23, 16*2*1(x10) // .........................................................................................................................*................................. + add x23, x9, x21 // .........................................................................................................................*................................. + mul x9, x1, x26 // ..........................................................................................................................*................................ + srai x3, x3, 32 // ..........................................................................................................................*................................ + ld x1, 13*8(x11) // ...........................................................................................................................*............................... + addi x3, x3, 8 // ...........................................................................................................................*............................... + sh x23, 16*2*0(x10) // ............................................................................................................................*.............................. + mulh x3, x3, x16 // ............................................................................................................................*.............................. + srai x9, x9, 32 // ..............................................................................................................................*............................ + add x27, x24, x19 // ..............................................................................................................................*............................ + mul x1, x13, x1 // ...............................................................................................................................*........................... + sub x26, x24, x19 // ...............................................................................................................................*........................... + ld x24, 14*8(x11) // ................................................................................................................................*.......................... + addi x9, x9, 8 // ................................................................................................................................*.......................... + sub x13, x8, x3 // .................................................................................................................................*......................... + mulh x21, x9, x16 // .................................................................................................................................*......................... + add x9, x8, x3 // ..................................................................................................................................*........................ + ld x19, 10*8(x11) // ..................................................................................................................................*........................ + mul x24, x15, x24 // ...................................................................................................................................*....................... + sh x9, 16*2*2(x10) // ....................................................................................................................................*...................... + srai x1, x1, 32 // ....................................................................................................................................*...................... + addi x9, x1, 8 // .....................................................................................................................................*..................... + mul x4, x18, x4 // .....................................................................................................................................*..................... + sh x13, 16*2*3(x10) // ......................................................................................................................................*.................... + sub x18, x20, x21 // ......................................................................................................................................*.................... + mulh x9, x9, x16 // .......................................................................................................................................*................... + ld x3, 12*8(x11) // .......................................................................................................................................*................... + sh x18, 16*2*5(x10) // ........................................................................................................................................*.................. + add x8, x20, x21 // ........................................................................................................................................*.................. + srai x20, x4, 32 // .........................................................................................................................................*................. + mul x15, x17, x19 // .........................................................................................................................................*................. + srai x1, x24, 32 // ..........................................................................................................................................*................ + sh x8, 16*2*4(x10) // ..........................................................................................................................................*................ + sub x8, x12, x9 // ...........................................................................................................................................*............... + mul x3, x25, x3 // ...........................................................................................................................................*............... + addi x21, x20, 8 // ............................................................................................................................................*.............. + addi x18, x1, 8 // ............................................................................................................................................*.............. + srai x25, x15, 32 // .............................................................................................................................................*............. + mulh x15, x18, x16 // .............................................................................................................................................*............. + addi x25, x25, 8 // ..............................................................................................................................................*............ + sh x8, 16*2*13(x10) // ..............................................................................................................................................*............ + mulh x25, x25, x16 // ...............................................................................................................................................*........... + srai x3, x3, 32 // ...............................................................................................................................................*........... + add x1, x12, x9 // ................................................................................................................................................*.......... + addi x3, x3, 8 // ................................................................................................................................................*.......... + add x9, x14, x15 // .................................................................................................................................................*......... + mulh x18, x21, x16 // .................................................................................................................................................*......... + sh x9, 16*2*14(x10) // ..................................................................................................................................................*........ + sub x15, x14, x15 // ..................................................................................................................................................*........ + sh x15, 16*2*15(x10) // ...................................................................................................................................................*....... + mulh x3, x3, x16 // ...................................................................................................................................................*....... + sh x1, 16*2*12(x10) // ....................................................................................................................................................*...... + add x9, x22, x25 // ....................................................................................................................................................*...... + sub x22, x22, x25 // .....................................................................................................................................................*..... + sh x9, 16*2*6(x10) // .....................................................................................................................................................*..... + sh x22, 16*2*7(x10) // ......................................................................................................................................................*.... + add x15, x27, x18 // ......................................................................................................................................................*.... + sub x18, x27, x18 // .......................................................................................................................................................*... + sh x15, 16*2*8(x10) // .......................................................................................................................................................*... + sh x18, 16*2*9(x10) // ........................................................................................................................................................*.. + sub x18, x26, x3 // ........................................................................................................................................................*.. + sh x18, 16*2*11(x10) // .........................................................................................................................................................*. + add x18, x26, x3 // .........................................................................................................................................................*. + sh x18, 16*2*10(x10) // ..........................................................................................................................................................* + addi a1, a1, 15*8 + ### LAYER 5-6-7 + addi gp, x0, 16 + sd gp, 8*15(sp) + lh x18, 1*2*0(x10) // *................................................................................................................................ + lh x15, 1*2*8(x10) // .*............................................................................................................................... + ld x5, 0*8(x11) // ..*.............................................................................................................................. + lh x22, 1*2*9(x10) // ....*............................................................................................................................ + lh x31, 1*2*10(x10) // .....*........................................................................................................................... + mul x15, x15, x5 // .....*........................................................................................................................... + lh x25, 1*2*11(x10) // ......*.......................................................................................................................... + ld x6, 1*8(x11) // .......*......................................................................................................................... + mul x3, x22, x5 // .......*......................................................................................................................... + mul x21, x31, x5 // .........*....................................................................................................................... + srai x4, x15, 32 // ..........*...................................................................................................................... + srai x3, x3, 32 // ...........*..................................................................................................................... + ld x30, 5*8(x11) // ...........*..................................................................................................................... + mul x1, x25, x5 // ............*.................................................................................................................... + lh x20, 1*2*4(x10) // ............*.................................................................................................................... + lh x22, 1*2*2(x10) // .............*................................................................................................................... + addi x25, x4, 8 // .............*................................................................................................................... + mulh x15, x25, x16 // ..............*.................................................................................................................. + addi x3, x3, 8 // ..............*.................................................................................................................. + lh x13, 1*2*15(x10) // ...............*................................................................................................................. + mulh x3, x3, x16 // ................*................................................................................................................ + sub x24, x18, x15 // ..................*.............................................................................................................. + add x8, x18, x15 // ..................*.............................................................................................................. + lh x18, 1*2*12(x10) // ...................*............................................................................................................. + lh x12, 1*2*1(x10) // ....................*............................................................................................................ + mul x7, x13, x5 // ....................*............................................................................................................ + lh x23, 1*2*13(x10) // .....................*........................................................................................................... + mul x26, x18, x5 // ......................*.......................................................................................................... + srai x29, x7, 32 // ........................*........................................................................................................ + srai x7, x21, 32 // ........................*........................................................................................................ + lh x28, 1*2*14(x10) // .........................*....................................................................................................... + add x9, x12, x3 // .........................*....................................................................................................... + sub x25, x12, x3 // ..........................*...................................................................................................... + mul x3, x23, x5 // ..........................*...................................................................................................... + lh x31, 1*2*6(x10) // ...........................*..................................................................................................... + mul x13, x28, x5 // ............................*.................................................................................................... + addi x28, x29, 8 // .............................*................................................................................................... + srai x18, x13, 32 // ................................*................................................................................................ + mulh x15, x28, x16 // ................................*................................................................................................ + addi x18, x18, 8 // .................................*............................................................................................... + lh x27, 1*2*5(x10) // .................................*............................................................................................... + addi x12, x7, 8 // ..................................*.............................................................................................. + mulh x13, x18, x16 // ..................................*.............................................................................................. + srai x18, x26, 32 // ...................................*............................................................................................. + srai x3, x3, 32 // ...................................*............................................................................................. + mulh x12, x12, x16 // ....................................*............................................................................................ + addi x29, x18, 8 // ....................................*............................................................................................ + srai x1, x1, 32 // ......................................*.......................................................................................... + mulh x5, x29, x16 // ......................................*.......................................................................................... + sub x26, x22, x12 // ........................................*........................................................................................ + sub x14, x31, x13 // ........................................*........................................................................................ + add x31, x31, x13 // .........................................*....................................................................................... + add x18, x22, x12 // .........................................*....................................................................................... + mul x17, x31, x6 // ..........................................*...................................................................................... + addi x3, x3, 8 // ..........................................*...................................................................................... + lh x22, 1*2*7(x10) // ...........................................*..................................................................................... + mulh x3, x3, x16 // ............................................*.................................................................................... + srai x31, x17, 32 // ..............................................*.................................................................................. + addi x29, x1, 8 // ..............................................*.................................................................................. + add x1, x22, x15 // ...............................................*................................................................................. + sub x15, x22, x15 // ...............................................*................................................................................. + mul x22, x1, x6 // ................................................*................................................................................ + add x1, x20, x5 // ................................................*................................................................................ + sub x20, x20, x5 // .................................................*............................................................................... + mul x1, x1, x6 // ..................................................*.............................................................................. + srai x17, x22, 32 // ....................................................*............................................................................ + mulh x12, x29, x16 // ....................................................*............................................................................ + addi x23, x17, 8 // .....................................................*........................................................................... + ld x13, 2*8(x11) // .....................................................*........................................................................... + mulh x23, x23, x16 // ......................................................*.......................................................................... + lh x19, 1*2*3(x10) // ......................................................*.......................................................................... + srai x22, x1, 32 // .......................................................*......................................................................... + ld x28, 3*8(x11) // .......................................................*......................................................................... + mul x21, x20, x13 // ........................................................*........................................................................ + sub x17, x27, x3 // ........................................................*........................................................................ + mul x14, x14, x13 // ..........................................................*...................................................................... + add x29, x27, x3 // ..........................................................*...................................................................... + srai x1, x21, 32 // ............................................................*.................................................................... + mul x3, x29, x6 // ............................................................*.................................................................... + add x29, x19, x12 // .............................................................*................................................................... + sub x5, x29, x23 // ..............................................................*.................................................................. + addi x20, x31, 8 // ..............................................................*.................................................................. + srai x14, x14, 32 // ...............................................................*................................................................. + mulh x20, x20, x16 // ...............................................................*................................................................. + srai x3, x3, 32 // ................................................................*................................................................ + ld x4, 4*8(x11) // ................................................................*................................................................ + addi x3, x3, 8 // .................................................................*............................................................... + mulh x3, x3, x16 // ..................................................................*.............................................................. + sub x27, x19, x12 // ..................................................................*.............................................................. + add x29, x29, x23 // ...................................................................*............................................................. + addi x22, x22, 8 // ...................................................................*............................................................. + add x6, x18, x20 // ....................................................................*............................................................ + ld gp, 8*15(sp) + addi gp, gp, -1 + sd gp, 8*15(sp) +ntt_rv64im_loop2: + // Instructions: 185 + // Expected cycles: 118 + // Expected IPC: 1.57 + + // ------------------------------------------------- cycle (expected) --------------------------------------------------> + // 0 25 50 75 100 + // |------------------------|------------------------|------------------------|------------------------|----------------- + mulh x22, x22, x16 // *..................................................................................................................... + sub x18, x18, x20 // *..................................................................................................................... + addi x31, x1, 8 // .*.................................................................................................................... + addi x14, x14, 8 // .*.................................................................................................................... + mul x15, x15, x13 // ..*................................................................................................................... + sub x21, x9, x3 // ..*................................................................................................................... + add x9, x9, x3 // ...*.................................................................................................................. + ld x19, 6*8(x11) // ...*.................................................................................................................. + mul x3, x17, x13 // ....*................................................................................................................. + mul x20, x6, x28 // ......*............................................................................................................... + srai x15, x15, 32 // ......*............................................................................................................... + add x17, x8, x22 // .......*.............................................................................................................. + sub x1, x8, x22 // .......*.............................................................................................................. + mul x22, x5, x4 // ........*............................................................................................................. + srai x3, x3, 32 // ........*............................................................................................................. + addi x11, x11, 7*8 // .........*............................................................................................................ + addi x15, x15, 8 // .........*............................................................................................................ + mul x18, x18, x4 // ..........*........................................................................................................... + srai x13, x22, 32 // ............*......................................................................................................... + mulh x14, x14, x16 // ............*......................................................................................................... + addi x3, x3, 8 // .............*........................................................................................................ + srai x6, x20, 32 // .............*........................................................................................................ + srai x20, x18, 32 // ..............*....................................................................................................... + mulh x3, x3, x16 // ..............*....................................................................................................... + addi x22, x20, 8 // ...............*...................................................................................................... + mulh x18, x31, x16 // ................*..................................................................................................... + addi x5, x13, 8 // ................*..................................................................................................... + add x23, x26, x14 // .................*.................................................................................................... + sub x13, x25, x3 // ..................*................................................................................................... + mulh x15, x15, x16 // ..................*................................................................................................... + add x25, x25, x3 // ...................*.................................................................................................. + addi x7, x6, 8 // ...................*.................................................................................................. + mulh x20, x5, x16 // ....................*................................................................................................. + sub x12, x24, x18 // .....................*................................................................................................ + add x24, x24, x18 // ......................*............................................................................................... + sub x26, x26, x14 // ......................*............................................................................................... + sub x14, x27, x15 // .......................*.............................................................................................. + mul x3, x29, x28 // .......................*.............................................................................................. + add x28, x21, x20 // ........................*............................................................................................. + sh x28, 1*2*5(x10) // .........................*............................................................................................ + mulh x4, x7, x16 // .........................*............................................................................................ + sub x7, x21, x20 // ..........................*........................................................................................... + sh x7, 1*2*7(x10) // ...........................*.......................................................................................... + add x7, x27, x15 // ...........................*.......................................................................................... + srai x3, x3, 32 // ............................*......................................................................................... + mul x28, x23, x30 // ............................*......................................................................................... + mulh x15, x22, x16 // ..............................*....................................................................................... + sub x18, x17, x4 // ..............................*....................................................................................... + sh x18, 1*2*2(x10) // ...............................*...................................................................................... + add x18, x17, x4 // ...............................*...................................................................................... + mul x4, x14, x19 // ................................*..................................................................................... + srai x22, x28, 32 // ................................*..................................................................................... + sh x18, 1*2*0(x10) // .................................*.................................................................................... + addi x3, x3, 8 // .................................*.................................................................................... + add x18, x1, x15 // ..................................*................................................................................... + sub x15, x1, x15 // ..................................*................................................................................... + mulh x3, x3, x16 // ...................................*.................................................................................. + sh x18, 1*2*4(x10) // ...................................*.................................................................................. + addi x31, x22, 8 // ....................................*................................................................................. + sh x15, 1*2*6(x10) // ....................................*................................................................................. + mul x18, x26, x19 // .....................................*................................................................................ + ld x6, 1*8(x11) // .....................................*................................................................................ + ld x5, 0*8(x11) // ......................................*............................................................................... + sub x22, x9, x3 // .......................................*.............................................................................. + add x28, x9, x3 // .......................................*.............................................................................. + srai x21, x18, 32 // .........................................*............................................................................ + mulh x18, x31, x16 // .........................................*............................................................................ + addi x9, x21, 8 // ..........................................*........................................................................... + sh x22, 1*2*3(x10) // ..........................................*........................................................................... + mul x3, x7, x30 // ...........................................*.......................................................................... + srai x7, x4, 32 // ...........................................*.......................................................................... + sh x28, 1*2*1(x10) // ............................................*......................................................................... + addi x30, x7, 8 // ............................................*......................................................................... + mulh x26, x9, x16 // .............................................*........................................................................ + mulh x28, x30, x16 // ...............................................*...................................................................... + srai x3, x3, 32 // ...............................................*...................................................................... + addi x3, x3, 8 // ................................................*..................................................................... + sub x30, x24, x18 // ................................................*..................................................................... + sh x30, 1*2*10(x10) // .................................................*.................................................................... + mulh x3, x3, x16 // .................................................*.................................................................... + sub x7, x12, x26 // ..................................................*................................................................... + ld x30, 5*8(x11) // ..................................................*................................................................... + sh x7, 1*2*14(x10) // ...................................................*.................................................................. + sub x15, x13, x28 // ...................................................*.................................................................. + add x22, x13, x28 // ....................................................*................................................................. + add x18, x24, x18 // .....................................................*................................................................ + sh x22, 1*2*13(x10) // .....................................................*................................................................ + sh x18, 1*2*8(x10) // ......................................................*............................................................... + add x18, x12, x26 // ......................................................*............................................................... + sh x18, 1*2*12(x10) // .......................................................*.............................................................. + add x18, x25, x3 // .......................................................*.............................................................. + sh x18, 1*2*9(x10) // ........................................................*............................................................. + sub x18, x25, x3 // ........................................................*............................................................. + sh x15, 1*2*15(x10) // .........................................................*............................................................ + sh x18, 1*2*11(x10) // ..........................................................*........................................................... + addi x10, x10, 32 // ..........................................................*........................................................... + lh x18, 1*2*12(x10) // ...........................................................*.......................................................... + lh x12, 1*2*9(x10) // ............................................................*......................................................... + lh x17, 1*2*8(x10) // .............................................................*........................................................ + mul x18, x18, x5 // ..............................................................*....................................................... + lh x26, 1*2*10(x10) // ..............................................................*....................................................... + lh x19, 1*2*14(x10) // ...............................................................*...................................................... + lh x20, 1*2*13(x10) // ................................................................*..................................................... + mul x3, x12, x5 // ................................................................*..................................................... + srai x18, x18, 32 // ..................................................................*................................................... + lh x22, 1*2*15(x10) // ..................................................................*................................................... + mul x25, x26, x5 // ...................................................................*.................................................. + lh x23, 1*2*11(x10) // ...................................................................*.................................................. + lh x27, 1*2*5(x10) // ....................................................................*................................................. + mul x9, x19, x5 // .....................................................................*................................................ + srai x3, x3, 32 // .....................................................................*................................................ + mul x21, x23, x5 // .......................................................................*.............................................. + srai x23, x9, 32 // .........................................................................*............................................ + addi x8, x23, 8 // ..........................................................................*........................................... + srai x13, x25, 32 // ..........................................................................*........................................... + addi x12, x13, 8 // ...........................................................................*.......................................... + mul x15, x22, x5 // ...........................................................................*.......................................... + addi x24, x18, 8 // ............................................................................*......................................... + addi x3, x3, 8 // ............................................................................*......................................... + mulh x3, x3, x16 // .............................................................................*........................................ + srai x18, x21, 32 // .............................................................................*........................................ + mulh x29, x24, x16 // ...............................................................................*...................................... + lh x25, 1*2*1(x10) // ...............................................................................*...................................... + srai x1, x15, 32 // ................................................................................*..................................... + mulh x22, x12, x16 // .................................................................................*.................................... + lh x28, 1*2*0(x10) // .................................................................................*.................................... + addi x14, x18, 8 // ..................................................................................*................................... + lh x23, 1*2*4(x10) // ..................................................................................*................................... + mul x18, x17, x5 // ...................................................................................*.................................. + add x9, x25, x3 // ...................................................................................*.................................. + sub x25, x25, x3 // ....................................................................................*................................. + mul x3, x20, x5 // .....................................................................................*................................ + addi x15, x1, 8 // .....................................................................................*................................ + srai x18, x18, 32 // .......................................................................................*.............................. + mulh x31, x14, x16 // .......................................................................................*.............................. + lh x14, 1*2*2(x10) // ........................................................................................*............................. + addi x1, x18, 8 // ........................................................................................*............................. + lh x20, 1*2*7(x10) // .........................................................................................*............................ + mulh x7, x8, x16 // .........................................................................................*............................ + srai x3, x3, 32 // ..........................................................................................*........................... + mulh x15, x15, x16 // ...........................................................................................*.......................... + addi x3, x3, 8 // ............................................................................................*......................... + lh x18, 1*2*6(x10) // ............................................................................................*......................... + mulh x3, x3, x16 // .............................................................................................*........................ + lh x21, 1*2*3(x10) // .............................................................................................*........................ + add x26, x23, x29 // ..............................................................................................*....................... + sub x29, x23, x29 // ..............................................................................................*....................... + add x4, x18, x7 // ...............................................................................................*...................... + mulh x1, x1, x16 // ...............................................................................................*...................... + sub x17, x27, x3 // .................................................................................................*.................... + add x5, x27, x3 // .................................................................................................*.................... + add x19, x20, x15 // ..................................................................................................*................... + sub x15, x20, x15 // ..................................................................................................*................... + mul x20, x4, x6 // ...................................................................................................*.................. + sub x4, x18, x7 // ...................................................................................................*.................. + add x23, x21, x31 // ....................................................................................................*................. + sub x27, x21, x31 // ....................................................................................................*................. + mul x31, x26, x6 // .....................................................................................................*................ + sub x24, x28, x1 // .....................................................................................................*................ + add x8, x28, x1 // ......................................................................................................*............... + mul x3, x5, x6 // .......................................................................................................*.............. + sub x26, x14, x22 // .......................................................................................................*.............. + add x18, x14, x22 // ........................................................................................................*............. + ld x13, 2*8(x11) // ........................................................................................................*............. + mul x14, x19, x6 // .........................................................................................................*............ + srai x22, x20, 32 // .........................................................................................................*............ + addi x20, x22, 8 // ..........................................................................................................*........... + ld x28, 3*8(x11) // ..........................................................................................................*........... + mul x29, x29, x13 // ...........................................................................................................*.......... + srai x22, x31, 32 // ...........................................................................................................*.......... + srai x3, x3, 32 // ............................................................................................................*......... + addi x22, x22, 8 // ............................................................................................................*......... + mul x31, x4, x13 // .............................................................................................................*........ + srai x14, x14, 32 // .............................................................................................................*........ + addi x14, x14, 8 // ..............................................................................................................*....... + ld x4, 4*8(x11) // ..............................................................................................................*....... + mulh x5, x14, x16 // ...............................................................................................................*...... + addi x3, x3, 8 // ...............................................................................................................*...... + srai x1, x29, 32 // ................................................................................................................*..... + mulh x20, x20, x16 // .................................................................................................................*.... + srai x14, x31, 32 // .................................................................................................................*.... + add x29, x23, x5 // ...................................................................................................................*.. + sub x5, x23, x5 // ...................................................................................................................*.. + mulh x3, x3, x16 // ....................................................................................................................*. + add x6, x18, x20 // .....................................................................................................................* + + // ------------------------------------------------- cycle (expected) --------------------------------------------------> + // 0 25 50 75 100 + // |------------------------|------------------------|------------------------|------------------------|----------------- + // mulh x22, x22, x16 // *..................................................................................................................... + // sub x18, x18, x20 // *..................................................................................................................... + // addi x31, x1, 8 // .*.................................................................................................................... + // addi x14, x14, 8 // .*.................................................................................................................... + // mul x15, x15, x13 // ..*................................................................................................................... + // sub x21, x9, x3 // ..*................................................................................................................... + // add x9, x9, x3 // ...*.................................................................................................................. + // mul x3, x17, x13 // ....*................................................................................................................. + // sub x1, x8, x22 // .......*.............................................................................................................. + // add x8, x8, x22 // .......*.............................................................................................................. + // srai x3, x3, 32 // ........*............................................................................................................. + // mul x23, x6, x28 // ......*............................................................................................................... + // addi x3, x3, 8 // .............*........................................................................................................ + // mulh x3, x3, x16 // ..............*....................................................................................................... + // mul x18, x18, x4 // ..........*........................................................................................................... + // srai x7, x23, 32 // .............*........................................................................................................ + // addi x7, x7, 8 // ...................*.................................................................................................. + // mulh x23, x31, x16 // ................*..................................................................................................... + // sub x13, x25, x3 // ..................*................................................................................................... + // srai x18, x18, 32 // ..............*....................................................................................................... + // mul x22, x5, x4 // ........*............................................................................................................. + // srai x15, x15, 32 // ......*............................................................................................................... + // add x25, x25, x3 // ...................*.................................................................................................. + // mul x3, x29, x28 // .......................*.............................................................................................. + // sub x12, x24, x23 // .....................*................................................................................................ + // add x24, x24, x23 // ......................*............................................................................................... + // addi x29, x18, 8 // ...............*...................................................................................................... + // mulh x18, x7, x16 // .........................*............................................................................................ + // mulh x23, x29, x16 // ..............................*....................................................................................... + // sub x31, x8, x18 // ..............................*....................................................................................... + // add x18, x8, x18 // ...............................*...................................................................................... + // addi x7, x15, 8 // .........*............................................................................................................ + // sh x18, 1*2*0(x10) // .................................*.................................................................................... + // mulh x4, x7, x16 // ..................*................................................................................................... + // srai x3, x3, 32 // ............................*......................................................................................... + // srai x18, x22, 32 // ............*......................................................................................................... + // sub x22, x1, x23 // ..................................*................................................................................... + // mulh x17, x14, x16 // ............*......................................................................................................... + // addi x3, x3, 8 // .................................*.................................................................................... + // add x29, x1, x23 // ..................................*................................................................................... + // add x14, x27, x4 // ...........................*.......................................................................................... + // mulh x3, x3, x16 // ...................................*.................................................................................. + // add x20, x26, x17 // .................*.................................................................................................... + // ld x19, 6*8(x11) // ...*.................................................................................................................. + // sub x8, x26, x17 // ......................*............................................................................................... + // mul x23, x20, x30 // ............................*......................................................................................... + // sh x29, 1*2*4(x10) // ...................................*.................................................................................. + // sub x15, x27, x4 // .......................*.............................................................................................. + // mul x27, x8, x19 // .....................................*................................................................................ + // srai x29, x23, 32 // ................................*..................................................................................... + // addi x18, x18, 8 // ................*..................................................................................................... + // mul x15, x15, x19 // ................................*..................................................................................... + // add x1, x9, x3 // .......................................*.............................................................................. + // sub x26, x9, x3 // .......................................*.............................................................................. + // sh x31, 1*2*2(x10) // ...............................*...................................................................................... + // sh x22, 1*2*6(x10) // ....................................*................................................................................. + // mulh x22, x18, x16 // ....................*................................................................................................. + // srai x18, x15, 32 // ...........................................*.......................................................................... + // addi x9, x18, 8 // ............................................*......................................................................... + // sh x26, 1*2*3(x10) // ..........................................*........................................................................... + // sh x1, 1*2*1(x10) // ............................................*......................................................................... + // mul x3, x14, x30 // ...........................................*.......................................................................... + // addi x15, x29, 8 // ....................................*................................................................................. + // srai x18, x27, 32 // .........................................*............................................................................ + // add x1, x21, x22 // ........................*............................................................................................. + // sub x22, x21, x22 // ..........................*........................................................................................... + // addi x18, x18, 8 // ..........................................*........................................................................... + // mulh x21, x15, x16 // .........................................*............................................................................ + // sh x1, 1*2*5(x10) // .........................*............................................................................................ + // srai x3, x3, 32 // ...............................................*...................................................................... + // sh x22, 1*2*7(x10) // ...........................*.......................................................................................... + // addi x3, x3, 8 // ................................................*..................................................................... + // mulh x3, x3, x16 // .................................................*.................................................................... + // addi x11, x11, 7*8 // .........*............................................................................................................ + // add x15, x24, x21 // .....................................................*................................................................ + // sub x7, x24, x21 // ................................................*..................................................................... + // sh x7, 1*2*10(x10) // .................................................*.................................................................... + // mulh x31, x18, x16 // .............................................*........................................................................ + // sh x15, 1*2*8(x10) // ......................................................*............................................................... + // add x7, x25, x3 // .......................................................*.............................................................. + // mulh x18, x9, x16 // ...............................................*...................................................................... + // sh x7, 1*2*9(x10) // ........................................................*............................................................. + // sub x22, x25, x3 // ........................................................*............................................................. + // sub x15, x12, x31 // ..................................................*................................................................... + // sh x22, 1*2*11(x10) // ..........................................................*........................................................... + // sh x15, 1*2*14(x10) // ...................................................*.................................................................. + // add x15, x12, x31 // ......................................................*............................................................... + // sh x15, 1*2*12(x10) // .......................................................*.............................................................. + // add x22, x13, x18 // ....................................................*................................................................. + // sh x22, 1*2*13(x10) // .....................................................*................................................................ + // sub x18, x13, x18 // ...................................................*.................................................................. + // sh x18, 1*2*15(x10) // .........................................................*............................................................ + // addi x10, x10, 32 // ..........................................................*........................................................... + // lh x18, 1*2*0(x10) // .................................................................................*.................................... + // lh x15, 1*2*8(x10) // .............................................................*........................................................ + // ld x5, 0*8(x11) // ......................................*............................................................................... + // lh x22, 1*2*9(x10) // ............................................................*......................................................... + // lh x31, 1*2*10(x10) // ..............................................................*....................................................... + // mul x15, x15, x5 // ...................................................................................*.................................. + // lh x25, 1*2*11(x10) // ...................................................................*.................................................. + // ld x6, 1*8(x11) // .....................................*................................................................................ + // mul x3, x22, x5 // ................................................................*..................................................... + // mul x21, x31, x5 // ...................................................................*.................................................. + // srai x4, x15, 32 // .......................................................................................*.............................. + // srai x3, x3, 32 // .....................................................................*................................................ + // ld x30, 5*8(x11) // ..................................................*................................................................... + // mul x1, x25, x5 // .......................................................................*.............................................. + // lh x20, 1*2*4(x10) // ..................................................................................*................................... + // lh x22, 1*2*2(x10) // ........................................................................................*............................. + // addi x25, x4, 8 // ........................................................................................*............................. + // mulh x15, x25, x16 // ...............................................................................................*...................... + // addi x3, x3, 8 // ............................................................................*......................................... + // lh x13, 1*2*15(x10) // ..................................................................*................................................... + // mulh x3, x3, x16 // .............................................................................*........................................ + // sub x24, x18, x15 // .....................................................................................................*................ + // add x8, x18, x15 // ......................................................................................................*............... + // lh x18, 1*2*12(x10) // ...........................................................*.......................................................... + // lh x12, 1*2*1(x10) // ...............................................................................*...................................... + // mul x7, x13, x5 // ...........................................................................*.......................................... + // lh x23, 1*2*13(x10) // ................................................................*..................................................... + // mul x26, x18, x5 // ..............................................................*....................................................... + // srai x29, x7, 32 // ................................................................................*..................................... + // srai x7, x21, 32 // ..........................................................................*........................................... + // lh x28, 1*2*14(x10) // ...............................................................*...................................................... + // add x9, x12, x3 // ...................................................................................*.................................. + // sub x25, x12, x3 // ....................................................................................*................................. + // mul x3, x23, x5 // .....................................................................................*................................ + // lh x31, 1*2*6(x10) // ............................................................................................*......................... + // mul x13, x28, x5 // .....................................................................*................................................ + // addi x28, x29, 8 // .....................................................................................*................................ + // srai x18, x13, 32 // .........................................................................*............................................ + // mulh x15, x28, x16 // ...........................................................................................*.......................... + // addi x18, x18, 8 // ..........................................................................*........................................... + // lh x27, 1*2*5(x10) // ....................................................................*................................................. + // addi x12, x7, 8 // ...........................................................................*.......................................... + // mulh x13, x18, x16 // .........................................................................................*............................ + // srai x18, x26, 32 // ..................................................................*................................................... + // srai x3, x3, 32 // ..........................................................................................*........................... + // mulh x12, x12, x16 // .................................................................................*.................................... + // addi x29, x18, 8 // ............................................................................*......................................... + // srai x1, x1, 32 // .............................................................................*........................................ + // mulh x5, x29, x16 // ...............................................................................*...................................... + // sub x26, x22, x12 // .......................................................................................................*.............. + // sub x14, x31, x13 // ...................................................................................................*.................. + // add x31, x31, x13 // ...............................................................................................*...................... + // add x18, x22, x12 // ........................................................................................................*............. + // mul x17, x31, x6 // ...................................................................................................*.................. + // addi x3, x3, 8 // ............................................................................................*......................... + // lh x22, 1*2*7(x10) // .........................................................................................*............................ + // mulh x3, x3, x16 // .............................................................................................*........................ + // srai x31, x17, 32 // .........................................................................................................*............ + // addi x29, x1, 8 // ..................................................................................*................................... + // add x1, x22, x15 // ..................................................................................................*................... + // sub x15, x22, x15 // ..................................................................................................*................... + // mul x22, x1, x6 // .........................................................................................................*............ + // add x1, x20, x5 // ..............................................................................................*....................... + // sub x20, x20, x5 // ..............................................................................................*....................... + // mul x1, x1, x6 // .....................................................................................................*................ + // srai x17, x22, 32 // .............................................................................................................*........ + // mulh x12, x29, x16 // .......................................................................................*.............................. + // addi x23, x17, 8 // ..............................................................................................................*....... + // ld x13, 2*8(x11) // ........................................................................................................*............. + // mulh x23, x23, x16 // ...............................................................................................................*...... + // lh x19, 1*2*3(x10) // .............................................................................................*........................ + // srai x22, x1, 32 // ...........................................................................................................*.......... + // ld x28, 3*8(x11) // ..........................................................................................................*........... + // mul x21, x20, x13 // ...........................................................................................................*.......... + // sub x17, x27, x3 // .................................................................................................*.................... + // mul x14, x14, x13 // .............................................................................................................*........ + // add x29, x27, x3 // .................................................................................................*.................... + // srai x1, x21, 32 // ................................................................................................................*..... + // mul x3, x29, x6 // .......................................................................................................*.............. + // add x29, x19, x12 // ....................................................................................................*................. + // sub x5, x29, x23 // ...................................................................................................................*.. + // addi x20, x31, 8 // ..........................................................................................................*........... + // srai x14, x14, 32 // .................................................................................................................*.... + // mulh x20, x20, x16 // .................................................................................................................*.... + // srai x3, x3, 32 // ............................................................................................................*......... + // ld x4, 4*8(x11) // ..............................................................................................................*....... + // addi x3, x3, 8 // ...............................................................................................................*...... + // mulh x3, x3, x16 // ....................................................................................................................*. + // sub x27, x19, x12 // ....................................................................................................*................. + // add x29, x29, x23 // ...................................................................................................................*.. + // addi x22, x22, 8 // ............................................................................................................*......... + // add x6, x18, x20 // .....................................................................................................................* + + ld gp, 8*15(sp) + addi gp, gp, -1 + sd gp, 8*15(sp) + bne gp, zero, ntt_rv64im_loop2 + mulh x22, x22, x16 // ....................................................................*............................................................ + sub x18, x18, x20 // .....................................................................*........................................................... + addi x31, x1, 8 // .....................................................................*........................................................... + addi x14, x14, 8 // ......................................................................*.......................................................... + mul x15, x15, x13 // ......................................................................*.......................................................... + sub x21, x9, x3 // .......................................................................*......................................................... + add x9, x9, x3 // .......................................................................*......................................................... + mul x3, x17, x13 // ........................................................................*........................................................ + sub x1, x8, x22 // ........................................................................*........................................................ + add x8, x8, x22 // .........................................................................*....................................................... + srai x3, x3, 32 // ............................................................................*.................................................... + mul x23, x6, x28 // ............................................................................*.................................................... + addi x3, x3, 8 // .............................................................................*................................................... + mulh x3, x3, x16 // ..............................................................................*.................................................. + mul x18, x18, x4 // ................................................................................*................................................ + srai x7, x23, 32 // ................................................................................*................................................ + addi x7, x7, 8 // .................................................................................*............................................... + mulh x23, x31, x16 // ..................................................................................*.............................................. + sub x13, x25, x3 // ..................................................................................*.............................................. + srai x18, x18, 32 // ....................................................................................*............................................ + mul x22, x5, x4 // ....................................................................................*............................................ + srai x15, x15, 32 // .....................................................................................*........................................... + add x25, x25, x3 // .....................................................................................*........................................... + mul x3, x29, x28 // ......................................................................................*.......................................... + sub x12, x24, x23 // ......................................................................................*.......................................... + add x24, x24, x23 // .......................................................................................*......................................... + addi x29, x18, 8 // .......................................................................................*......................................... + mulh x18, x7, x16 // ........................................................................................*........................................ + mulh x23, x29, x16 // ..........................................................................................*...................................... + sub x31, x8, x18 // ............................................................................................*.................................... + add x18, x8, x18 // ............................................................................................*.................................... + addi x7, x15, 8 // .............................................................................................*................................... + sh x18, 1*2*0(x10) // .............................................................................................*................................... + mulh x4, x7, x16 // ..............................................................................................*.................................. + srai x3, x3, 32 // ..............................................................................................*.................................. + srai x18, x22, 32 // ...............................................................................................*................................. + sub x22, x1, x23 // ...............................................................................................*................................. + mulh x17, x14, x16 // ................................................................................................*................................ + addi x3, x3, 8 // ................................................................................................*................................ + add x29, x1, x23 // .................................................................................................*............................... + add x14, x27, x4 // ...................................................................................................*............................. + mulh x3, x3, x16 // ...................................................................................................*............................. + add x20, x26, x17 // ....................................................................................................*............................ + ld x19, 6*8(x11) // ....................................................................................................*............................ + sub x8, x26, x17 // .....................................................................................................*........................... + mul x23, x20, x30 // .....................................................................................................*........................... + sh x29, 1*2*4(x10) // ......................................................................................................*.......................... + sub x15, x27, x4 // ......................................................................................................*.......................... + mul x27, x8, x19 // .......................................................................................................*......................... + srai x29, x23, 32 // .........................................................................................................*....................... + addi x18, x18, 8 // .........................................................................................................*....................... + mul x15, x15, x19 // ..........................................................................................................*...................... + add x1, x9, x3 // ..........................................................................................................*...................... + sub x26, x9, x3 // ...........................................................................................................*..................... + sh x31, 1*2*2(x10) // ...........................................................................................................*..................... + sh x22, 1*2*6(x10) // ............................................................................................................*.................... + mulh x22, x18, x16 // .............................................................................................................*................... + srai x18, x15, 32 // ..............................................................................................................*.................. + addi x9, x18, 8 // ...............................................................................................................*................. + sh x26, 1*2*3(x10) // ...............................................................................................................*................. + sh x1, 1*2*1(x10) // ................................................................................................................*................ + mul x3, x14, x30 // ................................................................................................................*................ + addi x15, x29, 8 // .................................................................................................................*............... + srai x18, x27, 32 // .................................................................................................................*............... + add x1, x21, x22 // ..................................................................................................................*.............. + sub x22, x21, x22 // ..................................................................................................................*.............. + addi x18, x18, 8 // ...................................................................................................................*............. + mulh x21, x15, x16 // ...................................................................................................................*............. + sh x1, 1*2*5(x10) // ....................................................................................................................*............ + srai x3, x3, 32 // ....................................................................................................................*............ + sh x22, 1*2*7(x10) // .....................................................................................................................*........... + addi x3, x3, 8 // .....................................................................................................................*........... + mulh x3, x3, x16 // ......................................................................................................................*.......... + addi x11, x11, 7*8 // ......................................................................................................................*.......... + add x15, x24, x21 // .......................................................................................................................*......... + sub x7, x24, x21 // .......................................................................................................................*......... + sh x7, 1*2*10(x10) // ........................................................................................................................*........ + mulh x31, x18, x16 // ........................................................................................................................*........ + sh x15, 1*2*8(x10) // .........................................................................................................................*....... + add x7, x25, x3 // ..........................................................................................................................*...... + mulh x18, x9, x16 // ..........................................................................................................................*...... + sh x7, 1*2*9(x10) // ...........................................................................................................................*..... + sub x22, x25, x3 // ...........................................................................................................................*..... + sub x15, x12, x31 // ............................................................................................................................*.... + sh x22, 1*2*11(x10) // ............................................................................................................................*.... + sh x15, 1*2*14(x10) // .............................................................................................................................*... + add x15, x12, x31 // .............................................................................................................................*... + sh x15, 1*2*12(x10) // ..............................................................................................................................*.. + add x22, x13, x18 // ..............................................................................................................................*.. + sh x22, 1*2*13(x10) // ...............................................................................................................................*. + sub x18, x13, x18 // ...............................................................................................................................*. + sh x18, 1*2*15(x10) // ................................................................................................................................* + addi x10, x10, 32 // ................................................................................................................................* + restore_regs + addi sp, sp, 8*16 + ret + +// |input| < kq; |output| < 0.5q +// a0: poly, a1: 64-bit twiddle ptr; a6: q<<32; +// a7/gp/tp/ra: tmp; +// 4*15(sp): loop; +// s0-s11, a2-a5: 16 coeffs; +// 7 twiddle factors: t0-t6 +.global intt_rv64im +.align 2 +intt_rv64im: + addi sp, sp, -8*16 + save_regs + li a6, q32 // q<<32 + ### LAYER 7+6+5 + addi gp, x0, 16 + sd gp, 8*15(sp) + intt_rv64im_loop1: + // load coefficients + load_coeffs a0, 1, 2 + // load twiddle factors + ld t0, 0*8(a1) + ld t1, 1*8(a1) + ld t2, 2*8(a1) + ld t3, 3*8(a1) + ld t4, 4*8(a1) + ld t5, 5*8(a1) + ld t6, 6*8(a1) + // layer 7 + gs_bfu_x8 s0, s2, s1, s3, s4, s6, s5, s7, s8, s10,s9, s11, a2, a4, a3, a5, t0, t0, t1, t1, t2, t2, t3, t3, a6, a7, gp, tp, ra + // layer 6 + gs_bfu_x8 s0, s4, s1, s5, s2, s6, s3, s7, s8, a2, s9, a3, s10, a4, s11, a5, t4, t4, t4, t4, t5, t5, t5, t5, a6, a7, gp, tp, ra + // layer 5 + gs_bfu_x8 s0, s8, s1, s9, s2, s10, s3, s11, s4, a2, s5, a3, s6, a4, s7, a5, t6, t6, t6, t6, t6, t6, t6, t6, a6, a7, gp, tp, ra + store_coeffs a0, 1, 2 + addi a0, a0, 32 + addi a1, a1, 8*7 + ld gp, 8*15(sp) + addi gp, gp, -1 + sd gp, 8*15(sp) + bne gp, zero, intt_rv64im_loop1 + addi a0, a0, -512 + ### LAYER 4+3+2+1 + ld t0, 0*8(a1) + ld t1, 1*8(a1) + ld t2, 2*8(a1) + ld t3, 3*8(a1) + ld t4, 4*8(a1) + ld t5, 5*8(a1) + ld t6, 6*8(a1) + addi a0, a0, 32 + addi gp, x0, 15 + sd gp, 8*15(sp) + intt_rv64im_loop2: + addi a0, a0, -2 + load_coeffs a0, 16, 2 + // layer 4 + ld tp, 7*8(a1) + gs_bfu_x8 s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, a2, a3, a4, a5, t0, t1, t2, t3, t4, t5, t6, tp, a6, a7, gp, a7, ra + // The following twiddle factors have to be loaded at each iteration + // layer 3 + gs_bfu_x8_load_4zetas s0, s2, s1, s3, s4, s6, s5, s7, s8, s10, s9, s11, a2, a4, a3, a5, 8*8, 9*8, 10*8, 11*8, a6, a7, gp, tp, ra + // layer 2 + gs_bfu_x8_load_2zetas s0, s4, s1, s5, s2, s6, s3, s7, s8, a2, s9, a3, s10, a4, s11, a5, 12*8, 13*8, a6, a7, gp, tp, ra + // layer 1 + ld ra, 14*8(a1) + gs_bfu_x8 s0, s8, s1, s9, s2, s10, s3, s11, s4, a2, s5, a3, s6, a4, s7, a5, ra, ra, ra, ra, ra, ra, ra, ra, a6, a7, gp, a7, tp + ld ra, 15*8(a1) + plant_mul_const_inplace_x8 a6, ra, s0, s1, s2, s3, s4, s5, s6, s7 + store_coeffs a0, 16, 2 + ld gp, 8*15(sp) + addi gp, gp, -1 + sd gp, 8*15(sp) + bge gp, zero, intt_rv64im_loop2 + restore_regs + addi sp, sp, 8*16 + ret + +// void poly_basemul_acc_rv64im(int32_t *r, const int16_t *a, const int16_t *b, uint64_t *zetas) +// compute basemul and accumulate the 32-bit results into r +// a0: r, a1: a, a2: b, a3: zetas +// a5: q<<32, a6: loop control +.global poly_basemul_acc_rv64im +.align 2 +poly_basemul_acc_rv64im: + addi sp, sp, -8*15 + save_regs + li a5, q32 + li a6, 32 +poly_basemul_acc_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # 4 zetas: a7, gp, tp, ra + ld a7, 8*0(a3) + ld tp, 8*1(a3) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + neg gp, a7 + neg ra, tp + # available regs: a4, s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + plant_mul_const_x4 a5, a7, gp, tp, ra, s1, s3, s5, s7, t2, t3, t4, t5 + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a0) + lw s9, 4*1(a0) + # a[0]b[0] + mul s2, t0, s0 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + lw s10, 4*2(a0) + lw s11, 4*3(a0) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # store r[0,1] + sw s8, 4*0(a0) + sw s9, 4*1(a0) + # available regs: s0, s1, s8, s9, a7, t6 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[2] + mul s0, t0, s2 + # a[2]b[3] + mul s8, t0, s3 + # a[3]b[2] + mul s9, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, s8 + add s11, s11, s9 + # store r[2,3] + sw s10, 4*2(a0) + sw s11, 4*3(a0) + # r[4,5,6,7] + lw s8, 4*4(a0) + lw s9, 4*5(a0) + lw s10,4*6(a0) + lw s11,4*7(a0) + # a[4]b[4] + mul s0, t2, s4 + # a[5](b[5]zeta) + mul s1, tp, t4 + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh gp, 2*6(a1) + lh ra, 2*7(a1) + lh s6, 2*6(a2) + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # store r[4,5] + sw s8, 4*4(a0) + sw s9, 4*5(a0) + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + # store r[6,7] + sw s10,4*6(a0) + sw s11,4*7(a0) + // loop control + addi a0, a0, 4*8 + addi a1, a1, 2*8 + addi a2, a2, 2*8 + addi a3, a3, 8*2 + addi a6, a6, -1 + bne a6, zero, poly_basemul_acc_rv64im_loop + restore_regs + addi sp, sp, 8*15 +ret + +// void poly_basemul_acc_end_rv64im(int16_t *r, const int16_t *a, const int16_t *b, uint64_t *zetas, int32_t *r_double) +// compute basemul, accumulate the 32-bit results into r_double, and reduce r_double to r +// a0: r, a1: a, a2: b, a3: zetas, a4: r_double +.global poly_basemul_acc_end_rv64im +.align 2 +poly_basemul_acc_end_rv64im: + addi sp, sp, -8*16 + save_regs + li a5, q32 + li a6, qinv + li a7, 32 + sd a7, 8*15(sp) +poly_basemul_acc_end_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # 4 zetas: a7, gp, tp, ra + ld a7, 8*0(a3) + ld tp, 8*1(a3) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + neg gp, a7 + neg ra, tp + # available regs: s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + plant_mul_const_x4 a5, a7, gp, tp, ra, s1, s3, s5, s7, t2, t3, t4, t5 + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a4) + lw s9, 4*1(a4) + # a[0]b[0] + mul s2, t0, s0 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + lw s10,4*2(a4) + lw s11,4*3(a4) + # available regs: s0, s1, a7, t6 + # a[2]b[2] + mul s0, t0, s2 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[3] + mul a7, t0, s3 + # a[3]b[2] + mul t6, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, a7 + add s11, s11, t6 + plant_red_x4 a5, a6, s8, s9, s10, s11 + # store r[0,1,2,3] + sh s8, 2*0(a0) + sh s9, 2*1(a0) + sh s10,2*2(a0) + sh s11,2*3(a0) + # a[4]b[4] + mul s0, t2, s4 + # a[5](b[5]zeta) + mul s1, tp, t4 + # r[4,5] + lw s8, 4*4(a4) + lw s9, 4*5(a4) + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh s6, 2*6(a2) + lh gp, 2*6(a1) + lh ra, 2*7(a1) + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[6,7] + lw s10,4*6(a4) + lw s11,4*7(a4) + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + plant_red_x4 a5, a6, s8, s9, s10, s11 + # store r[0,1,2,3] + sh s8, 2*4(a0) + sh s9, 2*5(a0) + sh s10,2*6(a0) + sh s11,2*7(a0) + // loop control + addi a0, a0, 2*8 + addi a1, a1, 2*8 + ld a7, 8*15(sp) + addi a2, a2, 2*8 + addi a3, a3, 8*2 + addi a4, a4, 4*8 + addi a7, a7, -1 + sd a7, 8*15(sp) + bne a7, zero, poly_basemul_acc_end_rv64im_loop + restore_regs + addi sp, sp, 8*16 +ret + +// void poly_basemul_cache_init_rv64im(int32_t *r, const int16_t *a, const int16_t *b, int16_t *b_cache, uint64_t *zetas) +// compute basemul, cache bzeta into b_cache, and store the 32-bit results into r +// a0: r, a1: a, a2: b, a3: b_cache, a4: zetas +// a5: q<<32, a6: loop control +.global poly_basemul_cache_init_rv64im +.align 2 +poly_basemul_cache_init_rv64im: + addi sp, sp, -8*15 + save_regs + li a5, q32 + li a6, 32 +poly_basemul_cache_init_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # 4 zetas: a7, gp, tp, ra + ld a7, 8*0(a4) + ld tp, 8*1(a4) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + neg gp, a7 + neg ra, tp + # available regs: s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + plant_mul_const_x4 a5, a7, gp, tp, ra, s1, s3, s5, s7, t2, t3, t4, t5 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[0] + mul s2, t0, s0 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + sh t2, 2*0(a3) + sh t3, 2*1(a3) + # r[0]=a[0]b[0]+a[1](b[1]zeta) + add s2, s2, s4 + # r[1]=a[0]b[1]+a[1]b[0] + add s6, s6, t6 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # store r[0,1] + sw s2, 4*0(a0) + sw s6, 4*1(a0) + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + lh s4, 2*4(a2) + sh t4, 2*2(a3) + sh t5, 2*3(a3) + # available regs: s0, s1, s8, s9, a7, t6 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[2] + mul s0, t0, s2 + # a[2]b[3] + mul s8, t0, s3 + # a[3]b[2] + mul s9, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + # r[2]=a[2]b[2]+a[3](b[3]zeta) + add s0, s0, s1 + # r[3]=a[2]b[3]+a[3]b[2] + add s8, s8, s9 + # store r[2,3] + sw s0, 4*2(a0) + sw s8, 4*3(a0) + # a[5](b[5]zeta) + mul s1, tp, t4 + # a[4]b[4] + mul s0, t2, s4 + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh gp, 2*6(a1) + lh ra, 2*7(a1) + lh s6, 2*6(a2) + # r[4]=a[4]b[4]+a[5](b[5]zeta) + add s0, s0, s1 + # r[5]=a[4]b[5]+a[5]b[4] + add t0, t0, t1 + # store r[4,5] + sw s0, 4*4(a0) + sw t0, 4*5(a0) + # a[7](b[7]zeta) + mul s9, ra, t5 + # a[6]b[6] + mul s8, gp, s6 + # a[6]b[7] + mul s10, gp, s7 + # a[7]b[6] + mul s11, ra, s6 + # r[6]=a[6]b[6]+a[7](b[7]zeta) + add s8, s8, s9 + # r[7]=a[6]b[7]+a[7]b[6] + add s10, s10, s11 + # store r[6,7] + sw s8, 4*6(a0) + sw s10,4*7(a0) + // loop control + addi a0, a0, 4*8 + addi a1, a1, 2*8 + addi a2, a2, 2*8 + addi a3, a3, 2*4 + addi a4, a4, 8*2 + addi a6, a6, -1 + bne a6, zero, poly_basemul_cache_init_rv64im_loop + restore_regs + addi sp, sp, 8*15 +ret + +// void poly_basemul_acc_cache_init_rv64im(int32_t *r, const int16_t *a, const int16_t *b, int16_t *b_cache, uint64_t *zetas) +// compute basemul, cache bzeta into b_cache, and accumulate the 32-bit results into r +// a0: r, a1: a, a2: b, a3: b_cache, a4: zetas +// a5: q<<32, a6: loop control, a7: accumulated value +.global poly_basemul_acc_cache_init_rv64im +.align 2 +poly_basemul_acc_cache_init_rv64im: + addi sp, sp, -8*15 + save_regs + li a5, q32 + li a6, 32 +poly_basemul_acc_cache_init_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # 4 zetas: a7, gp, tp, ra + ld a7, 8*0(a4) + ld tp, 8*1(a4) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + neg gp, a7 + neg ra, tp + # available regs: s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + plant_mul_const_x4 a5, a7, gp, tp, ra, s1, s3, s5, s7, t2, t3, t4, t5 + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a0) + lw s9, 4*1(a0) + lw s10,4*2(a0) + lw s11,4*3(a0) + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[0] + mul s2, t0, s0 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + sh t2, 2*0(a3) + sh t3, 2*1(a3) + sh t4, 2*2(a3) + sh t5, 2*3(a3) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # store r[0,1] + sw s8, 4*0(a0) + sw s9, 4*1(a0) + # available regs: s0, s1, s8, s9, a7, t6 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[2] + mul s0, t0, s2 + # a[2]b[3] + mul s8, t0, s3 + # a[3]b[2] + mul s9, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, s8 + add s11, s11, s9 + # store r[2,3] + sw s10, 4*2(a0) + sw s11, 4*3(a0) + # r[4,5,6,7] + lw s8, 4*4(a0) + lw s9, 4*5(a0) + lw s10,4*6(a0) + lw s11,4*7(a0) + # a[5](b[5]zeta) + mul s1, tp, t4 + # a[4]b[4] + mul s0, t2, s4 + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh gp, 2*6(a1) + lh ra, 2*7(a1) + lh s6, 2*6(a2) + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # store r[4,5] + sw s8, 4*4(a0) + sw s9, 4*5(a0) + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + # store r[6,7] + sw s10,4*6(a0) + sw s11,4*7(a0) + // loop control + addi a0, a0, 4*8 + addi a1, a1, 2*8 + addi a2, a2, 2*8 + addi a3, a3, 2*4 + addi a4, a4, 8*2 + addi a6, a6, -1 + bne a6, zero, poly_basemul_acc_cache_init_rv64im_loop + restore_regs + addi sp, sp, 8*15 +ret + +// void poly_basemul_acc_cache_init_end_rv64im(int16_t *r, const int16_t *a, const int16_t *b, int16_t *b_cache, uint64_t *zetas, int32_t *r_double) +// compute basemul, cache bzeta into b_cache, accumulate the 32-bit results into r_double, and reduce r_double to r +// a0: r, a1: a, a2: b, a3: b_cache, a4: zetas, a5: r_double +// a6: loop control +.global poly_basemul_acc_cache_init_end_rv64im +.align 2 +poly_basemul_acc_cache_init_end_rv64im: + addi sp, sp, -8*16 + save_regs + li a6, qinv + li a7, 32 + sd a7, 8*15(sp) +poly_basemul_acc_cache_init_end_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # 4 zetas: a7, gp, tp, ra + ld a7, 8*0(a4) + ld tp, 8*1(a4) + neg gp, a7 + neg ra, tp + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + # available regs: s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + li t6, q32 + plant_mul_const_x4 t6, a7, gp, tp, ra, s1, s3, s5, s7, t2, t3, t4, t5 + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a5) + lw s9, 4*1(a5) + lw s10,4*2(a5) + lw s11,4*3(a5) + # a[0]b[0] + mul s2, t0, s0 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + sh t2, 2*0(a3) + sh t3, 2*1(a3) + sh t4, 2*2(a3) + sh t5, 2*3(a3) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + # available regs: s0, s1, a7, t6 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # a[2]b[2] + mul s0, t0, s2 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[3] + mul a7, t0, s3 + # a[3]b[2] + mul t6, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, a7 + add s11, s11, t6 + li s0, q32 + plant_red_x4 s0, a6, s8, s9, s10, s11 + lh gp, 2*6(a1) + lh ra, 2*7(a1) + lh s6, 2*6(a2) + # store r[0,1,2,3] + sh s8, 2*0(a0) + sh s9, 2*1(a0) + sh s10,2*2(a0) + sh s11,2*3(a0) + # a[4]b[4] + mul s0, t2, s4 + # a[5](b[5]zeta) + mul s1, tp, t4 + # r[4,5] + lw s8, 4*4(a5) + lw s9, 4*5(a5) + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # r[6,7] + lw s10,4*6(a5) + lw s11,4*7(a5) + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + li s0, q32 + plant_red_x4 s0, a6, s8, s9, s10, s11 + # store r[0,1,2,3] + sh s8, 2*4(a0) + sh s9, 2*5(a0) + sh s10,2*6(a0) + sh s11,2*7(a0) + // loop control + addi a0, a0, 2*8 + addi a1, a1, 2*8 + ld a7, 8*15(sp) + addi a2, a2, 2*8 + addi a3, a3, 2*4 + addi a4, a4, 8*2 + addi a5, a5, 4*8 + addi a7, a7, -1 + sd a7, 8*15(sp) + bne a7, zero, poly_basemul_acc_cache_init_end_rv64im_loop + restore_regs + addi sp, sp, 8*16 +ret + +// void poly_basemul_acc_cached_rv64im(int32_t *r, const int16_t *a, const int16_t *b, int16_t *b_cache) +// compute basemul using cached b_cache and accumulate the 32-bit results into r +// a0: r, a1: a, a2: b, a3: b_cache +// a5: q<<32, a6: loop control +.global poly_basemul_acc_cached_rv64im +.align 2 +poly_basemul_acc_cached_rv64im: + addi sp, sp, -8*15 + save_regs + li a5, q32 + li a6, 32 +poly_basemul_acc_cached_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + lh t2, 2*0(a3) + lh t3, 2*1(a3) + lh t4, 2*2(a3) + lh t5, 2*3(a3) + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a0) + lw s9, 4*1(a0) + # a[0]b[0] + mul s2, t0, s0 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + lw s10, 4*2(a0) + lw s11, 4*3(a0) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # store r[0,1] + sw s8, 4*0(a0) + sw s9, 4*1(a0) + # available regs: s0, s1, s8, s9, a7, t6 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[2] + mul s0, t0, s2 + # a[2]b[3] + mul s8, t0, s3 + # a[3]b[2] + mul s9, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, s8 + add s11, s11, s9 + # store r[2,3] + sw s10, 4*2(a0) + sw s11, 4*3(a0) + # r[4,5,6,7] + lw s8, 4*4(a0) + lw s9, 4*5(a0) + lw s10,4*6(a0) + lw s11,4*7(a0) + # a[4]b[4] + mul s0, t2, s4 + # a[5](b[5]zeta) + mul s1, tp, t4 + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh gp, 2*6(a1) + lh ra, 2*7(a1) + lh s6, 2*6(a2) + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # store r[4,5] + sw s8, 4*4(a0) + sw s9, 4*5(a0) + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + # store r[6,7] + sw s10,4*6(a0) + sw s11,4*7(a0) + // loop control + addi a0, a0, 4*8 + addi a1, a1, 2*8 + addi a2, a2, 2*8 + addi a3, a3, 2*4 + addi a6, a6, -1 + bne a6, zero, poly_basemul_acc_cached_rv64im_loop + restore_regs + addi sp, sp, 8*15 +ret + +// void poly_basemul_acc_cache_end_rv64im(int16_t *r, const int16_t *a, const int16_t *b, int16_t *b_cache, int32_t *r_double) +// compute basemul using cached b_cache, accumulate the 32-bit results into r_double, and reduce r_double to r +// a0: r, a1: a, a2: b, a3: b_cache, a4: r_double +// a5: q<<32, a6: loop control +.global poly_basemul_acc_cache_end_rv64im +.align 2 +poly_basemul_acc_cache_end_rv64im: + addi sp, sp, -8*16 + save_regs + li a5, q32 + li a6, qinv + li a7, 32 + sd a7, 8*15(sp) +poly_basemul_acc_cached_end_rv64im_loop: + # b[0,1,3,5,7] + lh s0, 2*0(a2) + lh s1, 2*1(a2) + lh s3, 2*3(a2) + lh s5, 2*5(a2) + lh s7, 2*7(a2) + # a[0,1] + lh t0, 2*0(a1) + lh t1, 2*1(a1) + # available regs: s2, s4, s6, t2-t6 + # t2,t3,t4,t5 <- b[1,3,5,7]zeta + lh t2, 2*0(a3) + lh t3, 2*1(a3) + lh t4, 2*2(a3) + lh t5, 2*3(a3) + # s8,s9,s10,s11 <- r[0,1,2,3] + lw s8, 4*0(a4) + lw s9, 4*1(a4) + # a[0]b[0] + mul s2, t0, s0 + # a[1](b[1]zeta) + mul s4, t1, t2 + # a[0]b[1] + mul s6, t0, s1 + # a[1]b[0] + mul t6, t1, s0 + # t0,t1,t2,tp,gp,ra <- a[2,3,4,5,6,7] + lh t0, 2*2(a1) + lh t1, 2*3(a1) + # r[0]+=a[0]b[0]+a[1](b[1]zeta) + add s8, s8, s2 + add s8, s8, s4 + # s2,s4,s6 <- b[2,4,6] + lh s2, 2*2(a2) + # r[1]+=a[0]b[1]+a[1]b[0] + add s9, s9, s6 + add s9, s9, t6 + lw s10,4*2(a4) + lw s11,4*3(a4) + # available regs: s0, s1, a7, t6 + # a[2]b[2] + mul s0, t0, s2 + # a[3](b[3]zeta) + mul s1, t1, t3 + # a[2]b[3] + mul a7, t0, s3 + # a[3]b[2] + mul t6, t1, s2 + lh t2, 2*4(a1) + lh tp, 2*5(a1) + lh s4, 2*4(a2) + # r[2]+=a[2]b[2]+a[3](b[3]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[3]+=a[2]b[3]+a[3]b[2] + add s11, s11, a7 + add s11, s11, t6 + plant_red_x4 a5, a6, s8, s9, s10, s11 + # store r[0,1,2,3] + sh s8, 2*0(a0) + sh s9, 2*1(a0) + sh s10,2*2(a0) + sh s11,2*3(a0) + # a[4]b[4] + mul s0, t2, s4 + # a[5](b[5]zeta) + mul s1, tp, t4 + # r[4,5] + lw s8, 4*4(a4) + lw s9, 4*5(a4) + # a[4]b[5] + mul t0, t2, s5 + # a[5]b[4] + mul t1, tp, s4 + lh s6, 2*6(a2) + lh gp, 2*6(a1) + lh ra, 2*7(a1) + # r[4]+=a[4]b[4]+a[5](b[5]zeta) + add s8, s8, s0 + add s8, s8, s1 + # r[6,7] + lw s10,4*6(a4) + lw s11,4*7(a4) + # r[5]+=a[4]b[5]+a[5]b[4] + add s9, s9, t0 + add s9, s9, t1 + # a[6]b[6] + mul s0, gp, s6 + # a[7](b[7]zeta) + mul s1, ra, t5 + # a[6]b[7] + mul t0, gp, s7 + # a[7]b[6] + mul t1, ra, s6 + # r[6]+=a[6]b[6]+a[7](b[7]zeta) + add s10, s10, s0 + add s10, s10, s1 + # r[7]+=a[6]b[7]+a[7]b[6] + add s11, s11, t0 + add s11, s11, t1 + plant_red_x4 a5, a6, s8, s9, s10, s11 + # store r[0,1,2,3] + sh s8, 2*4(a0) + sh s9, 2*5(a0) + sh s10,2*6(a0) + sh s11,2*7(a0) + // loop control + addi a0, a0, 2*8 + addi a1, a1, 2*8 + ld a7, 8*15(sp) + addi a2, a2, 2*8 + addi a3, a3, 2*4 + addi a4, a4, 4*8 + addi a7, a7, -1 + sd a7, 8*15(sp) + bne a7, zero, poly_basemul_acc_cached_end_rv64im_loop + restore_regs + addi sp, sp, 8*16 +ret + +// each coeff is multiplied by plantconst2 using plantard multiplication +.global poly_plantard_rdc_rv64im +.align 2 +poly_plantard_rdc_rv64im: + addi sp, sp, -8*1 + sd s0, 0(sp) + li t6, plantconst + li t5, q32 + addi t4, x0, 16 + poly_plantard_rdc_rv64im_loop: + lh a1, 2*0(a0) + lh a2, 2*1(a0) + lh a3, 2*2(a0) + lh a4, 2*3(a0) + lh t0, 2*4(a0) + lh t1, 2*5(a0) + lh t2, 2*6(a0) + lh t3, 2*7(a0) + plant_red_x4 t5, t6, a1, a2, a3, a4 + lh a5, 2*8(a0) + lh a6, 2*9(a0) + lh a7, 2*10(a0) + lh s0, 2*11(a0) + sh a1, 2*0(a0) + sh a2, 2*1(a0) + sh a3, 2*2(a0) + sh a4, 2*3(a0) + plant_red_x4 t5, t6, t0, t1, t2, t3 + lh a1, 2*12(a0) + lh a2, 2*13(a0) + lh a3, 2*14(a0) + lh a4, 2*15(a0) + sh t0, 2*4(a0) + sh t1, 2*5(a0) + sh t2, 2*6(a0) + sh t3, 2*7(a0) + plant_red_x4 t5, t6, a5, a6, a7, s0 + sh a5, 2*8(a0) + sh a6, 2*9(a0) + sh a7, 2*10(a0) + sh s0, 2*11(a0) + plant_red_x4 t5, t6, a1, a2, a3, a4 + sh a1, 2*12(a0) + sh a2, 2*13(a0) + sh a3, 2*14(a0) + sh a4, 2*15(a0) + addi a0, a0, 2*16 + addi t4, t4, -1 + bne t4, zero, poly_plantard_rdc_rv64im_loop + ld s0, 0(sp) + addi sp, sp, 8*1 + ret + +// plantard reduction to a poly +.global poly_toplant_rv64im +.align 2 +poly_toplant_rv64im: + addi sp, sp, -8*1 + sd s0, 0(sp) + li t6, plantconst2 + li t5, q32 + addi t4, x0, 16 + poly_toplant_rv64im_loop: + lh a1, 2*0(a0) + lh a2, 2*1(a0) + lh a3, 2*2(a0) + lh a4, 2*3(a0) + lh t0, 2*4(a0) + lh t1, 2*5(a0) + lh t2, 2*6(a0) + lh t3, 2*7(a0) + plant_mul_const_inplace_x4 t5, t6, t6, t6, t6, a1, a2, a3, a4 + lh a5, 2*8(a0) + lh a6, 2*9(a0) + lh a7, 2*10(a0) + lh s0, 2*11(a0) + sh a1, 2*0(a0) + sh a2, 2*1(a0) + sh a3, 2*2(a0) + sh a4, 2*3(a0) + plant_mul_const_inplace_x4 t5, t6, t6, t6, t6, t0, t1, t2, t3 + lh a1, 2*12(a0) + lh a2, 2*13(a0) + lh a3, 2*14(a0) + lh a4, 2*15(a0) + sh t0, 2*4(a0) + sh t1, 2*5(a0) + sh t2, 2*6(a0) + sh t3, 2*7(a0) + plant_mul_const_inplace_x4 t5, t6, t6, t6, t6, a5, a6, a7, s0 + sh a5, 2*8(a0) + sh a6, 2*9(a0) + sh a7, 2*10(a0) + sh s0, 2*11(a0) + plant_mul_const_inplace_x4 t5, t6, t6, t6, t6, a1, a2, a3, a4 + sh a1, 2*12(a0) + sh a2, 2*13(a0) + sh a3, 2*14(a0) + sh a4, 2*15(a0) + addi a0, a0, 2*16 + addi t4, t4, -1 + bne t4, zero, poly_toplant_rv64im_loop + ld s0, 0(sp) + addi sp, sp, 8*1 + ret diff --git a/examples/opt/riscv/ntt_kyber/ntt_kyber_rvv_vlen128_opt_c908.s b/examples/opt/riscv/ntt_kyber/ntt_kyber_rvv_vlen128_opt_c908.s new file mode 100644 index 000000000..1374ff3cc --- /dev/null +++ b/examples/opt/riscv/ntt_kyber/ntt_kyber_rvv_vlen128_opt_c908.s @@ -0,0 +1,2464 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzeta1, vzeta2, vzeta3, vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 v16, v24, v18, v26, v20, v28, v22, v30, v17, v25, v19, v27, v21, v29, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v3, v2, v3, v2, v3, v2, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v16, v20, v18, v22, v24, v28, v26, v30, v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v17, v21, v19, v23, v25, v29, v27, v31, v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, vidx8_0122, vidx_low, vidx_high, x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +.globl ntt_rvv_vlen128 +.align 2 +ntt_rvv_vlen128_opt_c908: + start: + // Instructions: 778 + // Expected cycles: 389 + // Expected IPC: 2.00 + // + // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------- + addi x2, x2, -8*15 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + li x17, 8*8 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + sd x26, 10*8(x2) // .*................................................................................................................................................................................................................................................................................................................................................................................................... + vsetvli x13, x17, e16, m8, tu, mu // .*................................................................................................................................................................................................................................................................................................................................................................................................... + sd x18, 2*8(x2) // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + addi x26, x10, 128*2 // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + sd x9, 1*8(x2) // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + addi x15, x26, 64*2 // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + sd x19, 3*8(x2) // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + addi x9, x11, _ZETAS_EXP*2 // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + vle16.v v16, (x26) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + lh x19, 0*2(x9) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... + addi x14, x10, 64*2 // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + sd x1, 14*8(x2) // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + li x5, 3329 // .......*............................................................................................................................................................................................................................................................................................................................................................................................. + vle16.v v8, (x10) // .......*............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + sd x23, 7*8(x2) // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + li x6, -3327 // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v0, v16, x19 // .........*........................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + sd x25, 9*8(x2) // .........*........................................................................................................................................................................................................................................................................................................................................................................................... + sd x8, 0*8(x2) // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + lh x7, 1*2(x9) // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + sd x21, 5*8(x2) // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + sd x20, 4*8(x2) // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + sd x22, 6*8(x2) // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + sd x3, 12*8(x2) // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + sd x24, 8*8(x2) // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + sd x4, 13*8(x2) // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v0, v0, x5 // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + sd x27, 11*8(x2) // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v16, v16, x7 // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v0, v16, v0 // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v24, v8, v0 // ................*.................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v0, v8, v0 // ................*.................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v24, (x10) // .................*................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v24, (x15) // .................*................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v16, (x14) // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v0, (x26) // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v0, v24, x19 // ...................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v8, v24, x7 // ...................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + addi x29, x10, (64+0*128)*2 // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + li x25, 8*8 // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + addi x1, x11, _ZETAS_EXP_1TO6_P0_L1*2 // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + lh x8, 3*2(x1) // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + lh x19, 1*2(x1) // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + lh x30, 5*2(x1) // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + lh x4, 4*2(x1) // .......................*............................................................................................................................................................................................................................................................................................................................................................................. + lh x17, 2*2(x1) // .......................*............................................................................................................................................................................................................................................................................................................................................................................. + lh x16, 0*2(x1) // ........................*............................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v24, v0, x5 // ........................*............................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v8, v8, v24 // .........................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v24, v16, v8 // .........................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v24, (x14) // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v24, v16, v8 // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v24, (x15) // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsetvli x21, x25, e16, m8, tu, mu // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... + addi x25, x10, (0*128)*2 // ............................*........................................................................................................................................................................................................................................................................................................................................................................ + li x21, 8*4 // ............................*........................................................................................................................................................................................................................................................................................................................................................................ + vle16.v v0, (x29) // .............................*....................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v16, (x25) // .............................*....................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v8, v0, x16 // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v8, v8, x5 // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v24, v0, x19 // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v8, v24, v8 // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v0, v16, v8 // ................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v24, v16, v8 // ................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsetvli x19, x21, e16, m4, tu, mu // .................................*................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v8, v4, x17 // .................................*................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmul.vx v12, v28, x4 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v16, v28, x30 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v20, v8, x5 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v28, v4, x8 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v8, v12, x5 // ....................................*................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v4, v28, v20 // ....................................*................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v8, v16, v8 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v16, v0, v4 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v28, v24, v8 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v20, v0, v4 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v12, v24, v8 // .......................................*............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vsetivli x14, 8, e16, m1, tu, mu // .......................................*............................................................................................................................................................................................................................................................................................................................................................. + addi x25, x11, _MASK_01230123*2 // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + li x19, 0x0f // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + vle16.v v9, (x25) // .........................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x25, x11, _MASK_45674567*2 // .........................................*........................................................................................................................................................................................................................................................................................................................................................... + vle16.v v7, (x25) // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x19 // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v1, v12, v9 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v16, v7 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v13, v9 // ............................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v1, v16, v0 // ............................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v1, v17, v7 // .............................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v6, v17, v0 // .............................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v26, v20, v7 // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v28, v9 // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v28, v26, v0 // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v29, v9 // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v21, v7 // ................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v2, v21, v0 // ................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v30, v9 // .................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v22, v7 // .................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v4, v0 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v6, v20, v0 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v18, v7 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v14, v9 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v12, v24, v0 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v6, v18, v0 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v25, v22, v0 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v23, v7 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v19, v7 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v15, v9 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v15, v27, v0 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v5, v19, v0 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v31, v9 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v14, v3, v0 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v13, v1, v0 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v8, v0 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v10, v23, v0 // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v11, v0 // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x19, x11, _MASK_01014545*2 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... + li x25, 0x33 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... + addi x27, x11, _MASK_23236767*2 // ............................................................*........................................................................................................................................................................................................................................................................................................................................ + vle16.v v8, (x19) // ............................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x19, x11, _ZETAS_EXP_1TO6_P0_L3*2 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... + vmv.s.x v0, x25 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x16, x19, 8*2*2 // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... + vle16.v v15, (x27) // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v20, v8 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v16, v15 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v20, v9, v0 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v2, v16, v0 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v28, v8 // .................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v24, v15 // .................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v28, v9, v0 // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v2, v24, v0 // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v21, v8 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v17, v15 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v21, v9, v0 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v2, v17, v0 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v29, v8 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v25, v15 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v9, v0 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v2, v25, v0 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v22, v8 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v18, v15 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v22, v9, v0 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v2, v18, v0 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v30, v8 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v26, v15 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v9, v0 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v2, v26, v0 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v23, v8 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v19, v15 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v2, v19, v0 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v31, v8 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v4, (x19) // .............................................................................*....................................................................................................................................................................................................................................................................................................................... // @slothy:sew=16 + vrgather.vv v11, v27, v15 // .............................................................................*....................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v3, v19, v4 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v11, v0 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v11, v26, v4 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v2, v10, v27, v0 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v10, v30, v4 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v23, v9, v0 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v6, v31, v4 // .................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v27, v31, v5 // .................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v18, v4 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v3, x5 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v3, v9, v4 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v11, x5 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v11, v22, v4 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v10, x5 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v10, v26, v5 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v6, x5 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v1, v18, v5 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v6, v31, x5 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v2, v4 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v23, v3, x5 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v18, v22, v5 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v3, v11, x5 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v26, v9, v5 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v10, v13 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v30, v5 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v1, v6 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v6, v19, v5 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v4, v31, x5 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v2, v5 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v18, v3 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v26, v23 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v27, v14 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v11, v7 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v16, v8 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v6, v12 // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v24, v10 // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v31, v4 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v20, v9 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x7, x11, _MASK_10325476*2 // .................................................................................................*................................................................................................................................................................................................................................................................................................... + vadd.vv v6, v25, v14 // .................................................................................................*................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x7) // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v7, v24, v10 // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v4, (x16) // ...................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:sew=16 + addi x16, x16, 8*2*2 // ...................................................................................................*................................................................................................................................................................................................................................................................................................. + vadd.vv v3, v16, v8 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v18, v1 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + li x20, 0x55 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... + vmv.s.x v0, x20 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v9 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v19, v26, v1 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v25, v14 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v23, v3, v1 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v29, v15 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v29, v29, v15 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v10, v3, v0 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v17, v12 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v14, v1 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v3, v17, v12 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v28, v11 // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v10, v6, v0 // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v28, v11 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v22, v1 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v7, v1 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v26, v2, v0 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v6, v1 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v3, v1 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v28, v1 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v19, v7, v0 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v15, v1 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v18, v23, v0 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v15, v2, v0 // .................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v21, v13 // .................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v20, v1 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v21, v13 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v14, v27, v0 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v7, v3, v0 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v30, v1 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v14, v19, v4 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v8, v20, v0 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v3, v17, v4 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v22, v9, v0 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v9, v14, x5 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v23, v1 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v17, v5 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v17, v19, v5 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v6, v21, v0 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v19, v25, v4 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v21, v1 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v3, x5 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v7, v6, v4 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v29, v1 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v6, v6, v5 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v17, v9 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v23, v14, v0 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v13, v12 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v31, v3, v0 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v7, x5 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v31, v1 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v17, v27, v4 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v1, v14, v4 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v3, v29, v0 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v3, v21, v4 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v10, v28, v0 // .................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v6, v7 // .................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v11, v0 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v4, v23, v4 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v21, v5 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v17, x5 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v11, v1, x5 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v27, v27, v5 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v29, v23, v5 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v3, x5 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v25, v25, v5 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v23, v14, v5 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v4, x5 // .......................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v19, x5 // .......................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v0, v23, v11 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v25, v12 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v27, v13 // .........................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v29, v14 // .........................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v31, v15 // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v4, (x16) // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... // @slothy:sew=16 + addi x16, x16, 8*4*2 // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... + vsub.vv v17, v16, v8 // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v8 // ............................................................................................................................................*........................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v30, v15 // ............................................................................................................................................*........................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v30, v30, v15 // .............................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v18, v9 // .............................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v18, v9 // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v22, v0 // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v22, v22, v0 // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v0, v24, v21 // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v24, v21 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v1, v28, v29 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v28, v29 // .................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v3, v26, v2 // .................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v26, v2 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v20, v10 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v10 // ...................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v8, v6 // ...................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v8, v7 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v8, v24, v4 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v11, v30, v4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v10, v28, v4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v3, v4 // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v30, v30, v5 // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v24, v24, v5 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v0, v6 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v25, v0, v7 // ........................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v13, v29, v6 // ........................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v14, v1, v6 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v27, v29, v7 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v29, v1, v7 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v28, v5 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v26, v3, v5 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v5, v8, x5 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x14, x10, (0*128)*2 // ............................................................................................................................................................*........................................................................................................................................................................................................................................ + vmulh.vx v7, v9, x5 // ............................................................................................................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x15, x10, (64+0*128)*2 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... + vmulh.vx v1, v10, x5 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v3, v11, x5 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v6, v12, x5 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v4, v13, x5 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v11, v14, x5 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v10, v15, x5 // ................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v24, v5 // ................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v26, v7 // .................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v1, v28, v1 // .................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v30, v3 // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v6, v25, v6 // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v4, v27, v4 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v29, v11 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v31, v10 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v16, v5 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v5 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v18, v14 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v18, v14 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v20, v1 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v1 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v22, v3 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v22, v22, v3 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v17, v6 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v6 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v19, v4 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v19, v19, v4 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v21, v11 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v21, v11 // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v4, (x16) // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:sew=16 + vsub.vv v31, v23, v10 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v23, v23, v10 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v8, v20, v4 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v22, v4 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v13, v30, v5 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v28, v5 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v8, v8, x6 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v15, v9, x6 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v0, v12, x6 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v2, v13, x6 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v20, v4 // .................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v22, v22, v4 // .................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v28, v5 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v30, v30, v5 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v21, v6 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v21, v21, v6 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v13, v23, v6 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v23, v23, v6 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v20, v29, v7 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v29, v29, v7 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v14, v31, v7 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v31, v7 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v8, x5 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v2, v2, x5 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v15, x5 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v0, v0, x5 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v9, v8 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v30, v2 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v22, v15 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v28, v0 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v0, v16, v8 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v16, v8 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v26, v30 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v26, v30 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v18, v22 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v1, v18, v22 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v6, v24, v15 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v4, v24, v15 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v22, v12, x6 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v24, v13, x6 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v12, v20, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v13, v14, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v22, x5 // .................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v9, v24, x5 // .................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vs8r.v v0, (x14) // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:sew=16 + vmulh.vx v15, v12, x5 // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x9, x11, _ZETAS_EXP_1TO6_P1_L1*2 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. + vmulh.vx v10, v13, x5 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + lh x29, 5*2(x9) // ....................................................................................................................................................................................................*................................................................................................................................................................................................ + li x19, 8*4 // ....................................................................................................................................................................................................*................................................................................................................................................................................................ + vsub.vv v22, v21, v8 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v23, v9 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x25, 4*2(x9) // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. + vsub.vv v29, v29, v15 // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x4, x10, (1*128)*2 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. + vsub.vv v14, v31, v10 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + li x18, 8*8 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ + vsub.vv v2, v17, v22 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + lh x21, 1*2(x9) // .........................................................................................................................................................................................................*........................................................................................................................................................................................... + vsub.vv v3, v19, v24 // .........................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v1, v19, v24 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v0, v17, v22 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v27, v14 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v27, v14 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v4, v25, v29 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v6, v25, v29 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vs8r.v v0, (x15) // .............................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:sew=16 + vsetvli x7, x18, e16, m8, tu, mu // .............................................................................................................................................................................................................*....................................................................................................................................................................................... + lh x7, 0*2(x9) // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... + addi x16, x10, (64+1*128)*2 // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... + vle16.v v24, (x16) // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v8, (x4) // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + lh x4, 2*2(x9) // ................................................................................................................................................................................................................*.................................................................................................................................................................................... + vmulh.vx v0, v24, x21 // ................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v24, v24, x7 // .................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v16, v24, x5 // .................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v0, v0, v16 // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v16, v8, v0 // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v24, v8, v0 // ...................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsetvli x27, x19, e16, m4, tu, mu // ...................................................................................................................................................................................................................*................................................................................................................................................................................. + lh x19, 3*2(x9) // ....................................................................................................................................................................................................................*................................................................................................................................................................................ + vmul.vx v0, v20, x4 // ....................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v4, v20, x19 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmul.vx v8, v28, x25 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v20, v0, x5 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + addi x18, x11, _MASK_01230123*2 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. + vmulh.vx v12, v8, x5 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v0, v28, x29 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v4, v4, v20 // ........................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v8, v0, v12 // ........................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v28, v24, v8 // .........................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v20, v16, v4 // .........................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v4, v16, v4 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v12, v24, v8 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsetivli x17, 8, e16, m1, tu, mu // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... + addi x12, x11, _MASK_45674567*2 // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... + vle16.v v2, (x12) // ............................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + li x19, 0x0f // ............................................................................................................................................................................................................................*........................................................................................................................................................................ + vmv.s.x v0, x19 // .............................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x18) // .............................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v7, v2 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v4, v2 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v12, v1 // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v9, v4, v0 // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v20, v2 // ................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v6, v2 // ................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v28, v1 // .................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v28, v4, v0 // .................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v9, v20, v0 // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v14, v10, v0 // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v14, v1 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v29, v1 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v13, v1 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v21, v2 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v3, v5, v0 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v15, v1 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v15, v27, v0 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v5, v2 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v13, v25, v0 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v12, v24, v0 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v10, v7, v0 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v8, v6, v0 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v14, v21, v0 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v11, v0 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + li x19, 0x33 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... + addi x25, x11, _MASK_01014545*2 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... + addi x16, x11, _ZETAS_EXP_1TO6_P1_L3*2 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... + vrgather.vv v8, v31, v1 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x27, x11, _MASK_23236767*2 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ + vrgather.vv v15, v30, v1 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v15, v22, v0 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v22, v2 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v9, v0 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v23, v2 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v31, v22, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v8, v23, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x19 // ................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x25) // ................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v2, (x27) // .................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v15, v1 // .................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v18, v2 // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v22, v18, v0 // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v30, v1 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v26, v2 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v22, v26, v0 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v20, v1 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v16, v2 // .....................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v20, v9, v0 // .....................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v22, v16, v0 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v25, v2 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v29, v1 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v9, v25, v0 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v17, v2 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v21, v1 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v12, v17, v0 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v21, v9, v0 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v24, v2 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v28, v1 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v12, v24, v0 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v28, v9, v0 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v22, v0 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v15, v8, v0 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v4, (x16) // .............................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:sew=16 + addi x16, x16, 8*2*2 // .............................................................................................................................................................................................................................................................*....................................................................................................................................... + vmerge.vvm v13, v30, v11, v0 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v22, v4 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v23, v1 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v10, v26, v4 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v11, v13, v4 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v8, v19, v0 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v6, v18, v5 // .................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v31, v1 // .................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v3, v22, v5 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v14, v30, v4 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v8, v27, v0 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v1, v26, v5 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v27, v2 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v8, v18, v4 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v27, v15, v5 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v31, v22, v0 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v9, x5 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v19, v2 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v19, v30, v5 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v15, v4 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v12, v4 // ........................................................................................................................................................................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v5 // ........................................................................................................................................................................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v2, v23, v22, v0 // .........................................................................................................................................................................................................................................................................*........................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v11, x5 // .........................................................................................................................................................................................................................................................................*........................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v8, x5 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v12, v5 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v0, v10, x5 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v2, v4 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v14, x5 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v15, x5 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v9, x5 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v3, v7 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v13, v30 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v23, v2, v5 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v6, v8 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v1, v0 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v22, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v16, v8 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x13, x11, _MASK_10325476*2 // .................................................................................................................................................................................................................................................................................*................................................................................................................... + vle16.v v1, (x13) // .................................................................................................................................................................................................................................................................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v8 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v24, v10 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v18, v1 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v19, v12 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v4, v24, v10 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v16, v1 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v27, v14 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + li x14, 0x55 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... + vmv.s.x v0, x14 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v3, v1 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v2, v17, v12 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v23, v13 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v4, v1 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v25, v24 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v28, v11 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v3, v22, v0 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v28, v11 // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v2, v1 // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v17, v12 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v25, v24 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v27, v1 // ............................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v31, v15 // ............................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v21, v7 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v18, v6, v0 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v22, v13, v0 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v29, v12 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v14, v4, v0 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v29, v29, v12 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v22, v1 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v20, v9 // .................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v9 // .................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v3, v5, v0 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v8, v2, v0 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v21, v7 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v5, v1 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v6, (x16) // ....................................................................................................................................................................................................................................................................................................*................................................................................................ // @slothy:sew=16 + addi x16, x16, 8*2*2 // ....................................................................................................................................................................................................................................................................................................*................................................................................................ + vrgather.vv v3, v22, v1 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v8, v17, v6 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v23, v1 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v9, v21, v0 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v8, x5 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v31, v1 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v13, v19, v6 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v2, v4, v6 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v15, v29, v0 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v21, v1 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v9, v13, x5 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v23, v12, v0 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v10, v2, x5 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v29, v1 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v29, v14, v7 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v23, v15, v7 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v27, v11, v0 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v25, v6 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v2, v31, v21, v0 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v25, v25, v7 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v20, v1 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v27, v13, v7 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v2, v7 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v22, v21, v0 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v11, v15, v6 // .................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v30, v1 // .................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v2, v6 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v17, v17, v7 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v28, v1 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v19, v19, v7 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v21, v4, v7 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v2, v0 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v13, v13, v6 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v5, v28, v0 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v14, v14, v6 // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v3, v20, v0 // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v0, v11, x5 // .......................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v2, v12, x5 // .......................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v13, x5 // ........................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v14, x5 // ........................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v15, x5 // .........................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v17, v8 // .........................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v19, v9 // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v21, v10 // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v23, v0 // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v25, v2 // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v27, v12 // ............................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v29, v13 // ............................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v31, v15 // .............................................................................................................................................................................................................................................................................................................................*....................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v0, (x16) // .............................................................................................................................................................................................................................................................................................................................*....................................................................... // @slothy:sew=16 + addi x16, x16, 8*4*2 // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... + vsub.vv v17, v16, v8 // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v8 // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v18, v9 // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v18, v9 // ................................................................................................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v20, v7 // ................................................................................................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v7 // .................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v22, v5 // .................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v22, v22, v5 // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v24, v14 // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v24, v14 // ...................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v26, v12 // ...................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v26, v26, v12 // ....................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v28, v13 // ....................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v28, v13 // .....................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v30, v15 // .....................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v30, v30, v15 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v25, v2 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v8, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v13, v27, v2 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v14, v29, v2 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v10, v28, v0 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v31, v2 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v11, v30, v0 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v13, x5 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v27, v27, v3 // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v5, v31, v3 // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v6, v24, v1 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v30, v30, v1 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v0, v27, v7 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v24, v12, x5 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v28, v1 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v25, v3 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v19, v0 // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v19, v19, v0 // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v0, v11, x5 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v15, x5 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v12, v24 // .................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v24, v10, x5 // .................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v0, v30, v0 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v26, v1 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v2, v9, x5 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v28, v24 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v22, v0 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v22, v22, v0 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v0, v7, v2 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v29, v3 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v20, v24 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v20, v24 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v18, v0 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v18, v0 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v14, x5 // ........................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v8, x5 // ........................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v5, v15 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v17, v13 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v7, v29 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v6, v8 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v23, v15 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v13 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v21, v5 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v21, v5 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v16, v8 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v8 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v4, (x16) // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:sew=16 + addi x15, x10, (64+1*128)*2 // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... + addi x16, x10, (1*128)*2 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... + vadd.vv v23, v23, v15 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v1, v30, v5 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v22, v4 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v28, v5 // .................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v14, v20, v4 // .................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v30, v5 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v10, v9, x6 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v1, v1, x6 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v3, v14, x6 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v22, v22, v4 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v10, x5 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v5, v28, v5 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v1, x5 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v3, x5 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v22, v8 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v0, v5, x6 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v12, v15 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v9, v18, v3 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v22, v0, x5 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v2, v14 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v26, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v13, v26, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v1, v11, v22 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v18, v3 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v16, v14 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v8, v16, v14 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v24, v1 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v12, v24, v1 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v21, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v4, v23, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vs8r.v v8, (x16) // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:sew=16 + vmul.vv v12, v29, v7 // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v13, v31, v7 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v9, v4, x6 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v8, v30, x6 // .................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v8, x5 // .................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=16 + ld x8, 0*8(x2) // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. + vmulh.vv v8, v21, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + ld x9, 1*8(x2) // ...................................................................................................................................................................................................................................................................................................................................................................................*................. + ld x18, 2*8(x2) // ...................................................................................................................................................................................................................................................................................................................................................................................*................. + vmul.vx v15, v13, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + ld x19, 3*8(x2) // ....................................................................................................................................................................................................................................................................................................................................................................................*................ + vmulh.vv v24, v23, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=16 + ld x20, 4*8(x2) // .....................................................................................................................................................................................................................................................................................................................................................................................*............... + vmulh.vx v22, v9, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v8, v18 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=16 + ld x21, 5*8(x2) // .......................................................................................................................................................................................................................................................................................................................................................................................*............. + vmul.vx v12, v12, x6 // .......................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:lmul=1 // @slothy:sew=16 + ld x22, 6*8(x2) // ........................................................................................................................................................................................................................................................................................................................................................................................*............ + vmulh.vx v15, v15, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=16 + ld x23, 7*8(x2) // .........................................................................................................................................................................................................................................................................................................................................................................................*........... + ld x24, 8*8(x2) // .........................................................................................................................................................................................................................................................................................................................................................................................*........... + vmulh.vv v28, v31, v7 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v16, v29, v7 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + ld x25, 9*8(x2) // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... + vmulh.vx v21, v12, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=16 + ld x26, 10*8(x2) // ............................................................................................................................................................................................................................................................................................................................................................................................*........ + vsub.vv v22, v24, v22 // ............................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=16 + ld x27, 11*8(x2) // .............................................................................................................................................................................................................................................................................................................................................................................................*....... + ld x3, 12*8(x2) // .............................................................................................................................................................................................................................................................................................................................................................................................*....... + vsub.vv v24, v28, v15 // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=16 + ld x4, 13*8(x2) // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... + vsub.vv v10, v17, v8 // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=1 // @slothy:sew=16 + ld x1, 14*8(x2) // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... + vsub.vv v29, v16, v21 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + addi x2, x2, 8*15 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... + vsub.vv v11, v19, v22 // .................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v27, v24 // .................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v8, v17, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v9, v19, v22 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v25, v29 // ...................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v12, v25, v29 // ...................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v13, v27, v24 // ....................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:lmul=1 // @slothy:sew=16 + vs8r.v v8, (x15) // ....................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:sew=16 + + // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------- + // addi x2, x2, -8*15 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + // sd x8, 0*8(x2) // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + // sd x9, 1*8(x2) // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + // sd x18, 2*8(x2) // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + // sd x19, 3*8(x2) // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + // sd x20, 4*8(x2) // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + // sd x21, 5*8(x2) // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + // sd x22, 6*8(x2) // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + // sd x23, 7*8(x2) // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + // sd x24, 8*8(x2) // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + // sd x25, 9*8(x2) // .........*........................................................................................................................................................................................................................................................................................................................................................................................... + // sd x26, 10*8(x2) // .*................................................................................................................................................................................................................................................................................................................................................................................................... + // sd x27, 11*8(x2) // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + // sd x3, 12*8(x2) // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + // sd x4, 13*8(x2) // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + // sd x1, 14*8(x2) // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + // li x5, 3329 // .......*............................................................................................................................................................................................................................................................................................................................................................................................. + // li x6, -3327 // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + // li x17, 8*8 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x16, x11, _ZETAS_EXP*2 // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + // vsetvli x17, x17, e16, m8, tu, mu // .*................................................................................................................................................................................................................................................................................................................................................................................................... + // lh x28, 0*2(x16) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... + // lh x7, 1*2(x16) // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + // addi x15, x10, 128*2 // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + // vle16.v v16, (x10) // .......*............................................................................................................................................................................................................................................................................................................................................................................................. + // vle16.v v24, (x15) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x28 // .........*........................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v24, x7 // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v8, v0 // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v24, v16, v0 // ................*.................................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ................*.................................................................................................................................................................................................................................................................................................................................................................................... + // vse16.v v16, (x10) // .................*................................................................................................................................................................................................................................................................................................................................................................................... + // vse16.v v24, (x15) // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. + // addi x14, x10, 64*2 // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + // addi x15, x15, 64*2 // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + // vle16.v v16, (x14) // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. + // vle16.v v24, (x15) // .................*................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x28 // ...................*................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v24, x7 // ...................*................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ........................*............................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v8, v0 // .........................*........................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v24, v16, v0 // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // .........................*........................................................................................................................................................................................................................................................................................................................................................................... + // vse16.v v16, (x14) // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vse16.v v24, (x15) // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... + // li x17, 8*8 // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + // addi x16, x11, _ZETAS_EXP_1TO6_P0_L1*2 // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + // vsetvli x17, x17, e16, m8, tu, mu // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... + // addi x14, x10, (0*128)*2 // ............................*........................................................................................................................................................................................................................................................................................................................................................................ + // addi x15, x10, (64+0*128)*2 // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + // lh x28, 0*2(x16) // ........................*............................................................................................................................................................................................................................................................................................................................................................................ + // lh x7, 1*2(x16) // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + // vle16.v v16, (x14) // .............................*....................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v24, (x15) // .............................*....................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x28 // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v24, x7 // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v8, v0 // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v24, v16, v0 // ................................*.................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ................................*.................................................................................................................................................................................................................................................................................................................................................................... + // li x17, 8*4 // ............................*........................................................................................................................................................................................................................................................................................................................................................................ + // lh x28, 2*2(x16) // .......................*............................................................................................................................................................................................................................................................................................................................................................................. + // lh x7, 3*2(x16) // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + // vsetvli x17, x17, e16, m4, tu, mu // .................................*................................................................................................................................................................................................................................................................................................................................................................... + // lh x30, 4*2(x16) // .......................*............................................................................................................................................................................................................................................................................................................................................................................. + // lh x29, 5*2(x16) // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v20, x28 // .................................*................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v28, x30 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v20, x7 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v12, v28, x29 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // ....................................*................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v4, v0 // ....................................*................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v8, v12, v8 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v16, v0 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v28, v24, v8 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // .......................................*............................................................................................................................................................................................................................................................................................................................................................. + // vsetivli x17, 8, e16, m1, tu, mu // .......................................*............................................................................................................................................................................................................................................................................................................................................................. + // addi x7, x11, _MASK_01230123*2 // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + // addi x28, x11, _MASK_45674567*2 // .........................................*........................................................................................................................................................................................................................................................................................................................................................... + // li x31, 0x0f // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + // vle16.v v1, (x7) // .........................................*........................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v2, (x28) // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x31 // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v24, v1 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v25, v1 // ............................................*........................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v17, v2 // .............................................*....................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ............................................*........................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v24, v24, v9, v0 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v17, v10, v17, v0 // .............................................*....................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v11, v0 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v26, v1 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v18, v2 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v27, v1 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v19, v2 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v18, v8, v18, v0 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v26, v26, v9, v0 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v19, v10, v19, v0 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v27, v27, v11, v0 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v28, v1 // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v20, v2 // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v29, v1 // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v21, v2 // ................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v8, v20, v0 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v28, v28, v9, v0 // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v21, v10, v21, v0 // ................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v11, v0 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v30, v1 // .................................................*................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v22, v2 // .................................................*................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v31, v1 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v23, v2 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v8, v22, v0 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v30, v9, v0 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v23, v10, v23, v0 // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... + // addi x7, x11, _MASK_01014545*2 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... + // addi x28, x11, _MASK_23236767*2 // ............................................................*........................................................................................................................................................................................................................................................................................................................................ + // li x31, 0x33 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... + // vle16.v v1, (x7) // ............................................................*........................................................................................................................................................................................................................................................................................................................................ + // vle16.v v2, (x28) // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x31 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v20, v1 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v28, v1 // .................................................................*................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v24, v2 // .................................................................*................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v20, v9, v0 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v10, v24, v0 // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v28, v28, v11, v0 // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v21, v1 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v17, v2 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v29, v1 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v25, v2 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v8, v17, v0 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v21, v21, v9, v0 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v25, v10, v25, v0 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v29, v29, v11, v0 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. + // addi x16, x11, _ZETAS_EXP_1TO6_P0_L3*2 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v22, v1 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v18, v2 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v30, v1 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v26, v2 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v18, v8, v18, v0 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v22, v22, v9, v0 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v26, v10, v26, v0 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v30, v11, v0 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... + // vl2re16.v v4, (x16) // .............................................................................*....................................................................................................................................................................................................................................................................................................................... + // addi x16, x16, 8*2*2 // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v23, v1 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v19, v2 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v31, v1 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v27, v2 // .............................................................................*....................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v8, v19, v0 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v23, v23, v9, v0 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v10, v27, v0 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... + // vmul.vv v8, v18, v4 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vmul.vv v9, v22, v4 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmul.vv v10, v26, v4 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... + // vmul.vv v11, v30, v4 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... + // vmul.vv v12, v19, v4 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... + // vmul.vv v13, v23, v4 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. + // vmul.vv v14, v27, v4 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. + // vmul.vv v15, v31, v4 // .................................................................................*................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v18, v18, v5 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vmulh.vv v22, v22, v5 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmulh.vv v26, v26, v5 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmulh.vv v30, v30, v5 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vmulh.vv v19, v19, v5 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... + // vmulh.vv v23, v23, v5 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... + // vmulh.vv v27, v27, v5 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ + // vmulh.vv v31, v31, v5 // .................................................................................*................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vmulh.vx v9, v9, x5 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmulh.vx v10, v10, x5 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v11, v11, x5 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v13, v13, x5 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. + // vmulh.vx v14, v14, x5 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v15, x5 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v18, v8 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vsub.vv v9, v22, v9 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ + // vsub.vv v10, v26, v10 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... + // vsub.vv v11, v30, v11 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v19, v12 // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... + // vsub.vv v13, v23, v13 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v27, v14 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vsub.vv v15, v31, v15 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... + // vsub.vv v18, v16, v8 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... + // vsub.vv v22, v20, v9 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v24, v10 // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v11 // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v17, v12 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v21, v13 // .................................................................................................................*................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v25, v14 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. + // vsub.vv v31, v29, v15 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v8 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ + // vadd.vv v20, v20, v9 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v10 // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. + // vadd.vv v28, v28, v11 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ + // vadd.vv v17, v17, v12 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... + // vadd.vv v21, v21, v13 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vadd.vv v25, v25, v14 // .................................................................................................*................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v15 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ + // addi x7, x11, _MASK_10325476*2 // .................................................................................................*................................................................................................................................................................................................................................................................................................... + // li x31, 0x55 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... + // vle16.v v1, (x7) // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. + // vmv.s.x v0, x31 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v18, v1 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ + // vrgather.vv v9, v16, v1 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v26, v1 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v24, v1 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... + // vmerge.vvm v18, v18, v9, v0 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v10, v24, v0 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v26, v11, v0 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v19, v1 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v17, v1 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v25, v1 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v8, v17, v0 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. + // vmerge.vvm v19, v19, v9, v0 // .................................................................................................................*................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v10, v25, v0 // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. + // vl2re16.v v4, (x16) // ...................................................................................................*................................................................................................................................................................................................................................................................................................. + // addi x16, x16, 8*2*2 // ...................................................................................................*................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v22, v1 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ + // vrgather.vv v9, v20, v1 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v30, v1 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v28, v1 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v8, v20, v0 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v22, v9, v0 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vmerge.vvm v28, v10, v28, v0 // .................................................................................................................................*................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v30, v11, v0 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v23, v1 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v21, v1 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v31, v1 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v29, v1 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... + // vmerge.vvm v21, v8, v21, v0 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ + // vmerge.vvm v23, v23, v9, v0 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ + // vmerge.vvm v29, v10, v29, v0 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... + // vmul.vv v8, v17, v4 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... + // vmul.vv v9, v19, v4 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ + // vmul.vv v10, v21, v4 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... + // vmul.vv v11, v23, v4 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmul.vv v12, v25, v4 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... + // vmul.vv v13, v27, v4 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmul.vv v14, v29, v4 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vmul.vv v15, v31, v4 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vmulh.vv v17, v17, v5 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. + // vmulh.vv v19, v19, v5 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ + // vmulh.vv v21, v21, v5 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... + // vmulh.vv v23, v23, v5 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vmulh.vv v25, v25, v5 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vmulh.vv v27, v27, v5 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ + // vmulh.vv v29, v29, v5 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... + // vmulh.vv v31, v31, v5 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v9, x5 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vmulh.vx v10, v10, x5 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v11, x5 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // .......................................................................................................................................*............................................................................................................................................................................................................................................................. + // vmulh.vx v13, v13, x5 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. + // vmulh.vx v14, v14, x5 // .......................................................................................................................................*............................................................................................................................................................................................................................................................. + // vmulh.vx v15, v15, x5 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... + // vsub.vv v8, v17, v8 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... + // vsub.vv v9, v19, v9 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ + // vsub.vv v10, v21, v10 // .................................................................................................................................*................................................................................................................................................................................................................................................................... + // vsub.vv v11, v23, v11 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ + // vsub.vv v12, v25, v12 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ + // vsub.vv v13, v27, v13 // .........................................................................................................................................*........................................................................................................................................................................................................................................................... + // vsub.vv v14, v29, v14 // .........................................................................................................................................*........................................................................................................................................................................................................................................................... + // vsub.vv v15, v31, v15 // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... + // vsub.vv v17, v16, v8 // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... + // vsub.vv v19, v18, v9 // .............................................................................................................................................*....................................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v10 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. + // vsub.vv v23, v22, v11 // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v12 // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... + // vsub.vv v27, v26, v13 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. + // vsub.vv v29, v28, v14 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v15 // ............................................................................................................................................*........................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v8 // ............................................................................................................................................*........................................................................................................................................................................................................................................................ + // vadd.vv v18, v18, v9 // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v10 // ...................................................................................................................................................*................................................................................................................................................................................................................................................. + // vadd.vv v22, v22, v11 // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v12 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v13 // .................................................................................................................................................*................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v14 // .................................................................................................................................................*................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v15 // .............................................................................................................................................*....................................................................................................................................................................................................................................................... + // vl4re16.v v0, (x16) // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... + // addi x16, x16, 8*4*2 // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... + // vmul.vv v8, v24, v0 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ + // vmul.vv v9, v26, v0 // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. + // vmul.vv v10, v28, v0 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... + // vmul.vv v11, v30, v0 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... + // vmul.vv v12, v25, v2 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. + // vmul.vv v13, v27, v2 // ........................................................................................................................................................*............................................................................................................................................................................................................................................ + // vmul.vv v14, v29, v2 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... + // vmul.vv v15, v31, v2 // ...................................................................................................................................................*................................................................................................................................................................................................................................................. + // vmulh.vv v24, v24, v1 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. + // vmulh.vv v26, v26, v1 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... + // vmulh.vv v28, v28, v1 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vmulh.vv v30, v30, v1 // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. + // vmulh.vv v25, v25, v3 // ........................................................................................................................................................*............................................................................................................................................................................................................................................ + // vmulh.vv v27, v27, v3 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... + // vmulh.vv v29, v29, v3 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vmulh.vv v31, v31, v3 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ + // vmulh.vx v8, v8, x5 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... + // vmulh.vx v9, v9, x5 // ............................................................................................................................................................*........................................................................................................................................................................................................................................ + // vmulh.vx v10, v10, x5 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... + // vmulh.vx v11, v11, x5 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... + // vmulh.vx v13, v13, x5 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... + // vmulh.vx v15, v15, x5 // ................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vsub.vv v8, v24, v8 // ................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vsub.vv v9, v26, v9 // .................................................................................................................................................................*................................................................................................................................................................................................................................... + // vsub.vv v10, v28, v10 // .................................................................................................................................................................*................................................................................................................................................................................................................................... + // vsub.vv v11, v30, v11 // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vsub.vv v12, v25, v12 // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vsub.vv v13, v27, v13 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. + // vsub.vv v14, v29, v14 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. + // vsub.vv v15, v31, v15 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ + // vsub.vv v24, v16, v8 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ + // vsub.vv v26, v18, v9 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... + // vsub.vv v28, v20, v10 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vsub.vv v30, v22, v11 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. + // vsub.vv v25, v17, v12 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ + // vsub.vv v27, v19, v13 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... + // vsub.vv v29, v21, v14 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vsub.vv v31, v23, v15 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ + // vadd.vv v16, v16, v8 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... + // vadd.vv v18, v18, v9 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vadd.vv v20, v20, v10 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. + // vadd.vv v22, v22, v11 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ + // vadd.vv v17, v17, v12 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... + // vadd.vv v19, v19, v13 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vadd.vv v21, v21, v14 // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... + // vadd.vv v23, v23, v15 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ + // vl4re16.v v4, (x16) // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... + // addi x14, x10, (0*128)*2 // ............................................................................................................................................................*........................................................................................................................................................................................................................................ + // addi x15, x10, (64+0*128)*2 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... + // vmul.vv v8, v20, v4 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... + // vmul.vv v9, v22, v4 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... + // vmul.vv v12, v28, v5 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... + // vmul.vv v13, v30, v5 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... + // vmul.vx v8, v8, x6 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... + // vmul.vx v9, v9, x6 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... + // vmul.vx v12, v12, x6 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... + // vmul.vx v13, v13, x6 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... + // vmulh.vv v20, v20, v4 // .................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmulh.vv v22, v22, v4 // .................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmulh.vv v28, v28, v5 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vmulh.vv v30, v30, v5 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. + // vmulh.vx v9, v9, x5 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ + // vmulh.vx v13, v13, x5 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. + // vsub.vv v8, v20, v8 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... + // vsub.vv v9, v22, v9 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... + // vsub.vv v12, v28, v12 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... + // vsub.vv v13, v30, v13 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... + // vsub.vv v10, v16, v8 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... + // vsub.vv v11, v18, v9 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... + // vsub.vv v14, v24, v12 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... + // vsub.vv v15, v26, v13 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ + // vadd.vv v8, v16, v8 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... + // vadd.vv v9, v18, v9 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... + // vadd.vv v12, v24, v12 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... + // vadd.vv v13, v26, v13 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ + // vs8r.v v8, (x14) // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmul.vv v8, v21, v6 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. + // vmul.vv v9, v23, v6 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ + // vmul.vv v12, v29, v7 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... + // vmul.vv v13, v31, v7 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vmul.vx v8, v8, x6 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... + // vmul.vx v9, v9, x6 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... + // vmul.vx v12, v12, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vmul.vx v13, v13, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vmulh.vv v21, v21, v6 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. + // vmulh.vv v23, v23, v6 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ + // vmulh.vv v29, v29, v7 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... + // vmulh.vv v31, v31, v7 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // .................................................................................................................................................................................................*................................................................................................................................................................................................... + // vmulh.vx v9, v9, x5 // .................................................................................................................................................................................................*................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmulh.vx v13, v13, x5 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. + // vsub.vv v8, v21, v8 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... + // vsub.vv v9, v23, v9 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... + // vsub.vv v12, v29, v12 // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vsub.vv v13, v31, v13 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. + // vsub.vv v10, v17, v8 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ + // vsub.vv v11, v19, v9 // .........................................................................................................................................................................................................*........................................................................................................................................................................................... + // vsub.vv v14, v25, v12 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ + // vsub.vv v15, v27, v13 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... + // vadd.vv v8, v17, v8 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vadd.vv v9, v19, v9 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vadd.vv v12, v25, v12 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ + // vadd.vv v13, v27, v13 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... + // vs8r.v v8, (x15) // .............................................................................................................................................................................................................*....................................................................................................................................................................................... + // li x17, 8*8 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ + // addi x16, x11, _ZETAS_EXP_1TO6_P1_L1*2 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. + // vsetvli x17, x17, e16, m8, tu, mu // .............................................................................................................................................................................................................*....................................................................................................................................................................................... + // addi x14, x10, (1*128)*2 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. + // addi x15, x10, (64+1*128)*2 // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... + // lh x28, 0*2(x16) // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... + // lh x7, 1*2(x16) // .........................................................................................................................................................................................................*........................................................................................................................................................................................... + // vle16.v v16, (x14) // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... + // vle16.v v24, (x15) // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... + // vmul.vx v0, v24, x28 // .................................................................................................................................................................................................................*................................................................................................................................................................................... + // vmulh.vx v8, v24, x7 // ................................................................................................................................................................................................................*.................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .................................................................................................................................................................................................................*................................................................................................................................................................................... + // vsub.vv v0, v8, v0 // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. + // vsub.vv v24, v16, v0 // ...................................................................................................................................................................................................................*................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. + // li x17, 8*4 // ....................................................................................................................................................................................................*................................................................................................................................................................................................ + // lh x28, 2*2(x16) // ................................................................................................................................................................................................................*.................................................................................................................................................................................... + // lh x7, 3*2(x16) // ....................................................................................................................................................................................................................*................................................................................................................................................................................ + // vsetvli x17, x17, e16, m4, tu, mu // ...................................................................................................................................................................................................................*................................................................................................................................................................................. + // lh x30, 4*2(x16) // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. + // lh x29, 5*2(x16) // ....................................................................................................................................................................................................*................................................................................................................................................................................................ + // vmul.vx v0, v20, x28 // ....................................................................................................................................................................................................................*................................................................................................................................................................................ + // vmul.vx v8, v28, x30 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... + // vmulh.vx v4, v20, x7 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... + // vmulh.vx v12, v28, x29 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. + // vsub.vv v0, v4, v0 // ........................................................................................................................................................................................................................*............................................................................................................................................................................ + // vsub.vv v8, v12, v8 // ........................................................................................................................................................................................................................*............................................................................................................................................................................ + // vsub.vv v20, v16, v0 // .........................................................................................................................................................................................................................*........................................................................................................................................................................... + // vsub.vv v28, v24, v8 // .........................................................................................................................................................................................................................*........................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vsetivli x17, 8, e16, m1, tu, mu // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... + // addi x7, x11, _MASK_01230123*2 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. + // addi x28, x11, _MASK_45674567*2 // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... + // li x31, 0x0f // ............................................................................................................................................................................................................................*........................................................................................................................................................................ + // vle16.v v1, (x7) // .............................................................................................................................................................................................................................*....................................................................................................................................................................... + // vle16.v v2, (x28) // ............................................................................................................................................................................................................................*........................................................................................................................................................................ + // vmv.s.x v0, x31 // .............................................................................................................................................................................................................................*....................................................................................................................................................................... + // vrgather.vv v8, v24, v1 // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... + // vrgather.vv v10, v25, v1 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ + // vrgather.vv v11, v17, v2 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vmerge.vvm v16, v8, v16, v0 // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... + // vmerge.vvm v24, v24, v9, v0 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. + // vmerge.vvm v17, v10, v17, v0 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... + // vmerge.vvm v25, v25, v11, v0 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. + // vrgather.vv v8, v26, v1 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. + // vrgather.vv v9, v18, v2 // ................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... + // vrgather.vv v11, v19, v2 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... + // vmerge.vvm v18, v8, v18, v0 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ + // vmerge.vvm v26, v26, v9, v0 // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. + // vmerge.vvm v19, v10, v19, v0 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ + // vmerge.vvm v27, v27, v11, v0 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vrgather.vv v8, v28, v1 // .................................................................................................................................................................................................................................*................................................................................................................................................................... + // vrgather.vv v9, v20, v2 // ................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vrgather.vv v10, v29, v1 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. + // vrgather.vv v11, v21, v2 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ + // vmerge.vvm v20, v8, v20, v0 // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. + // vmerge.vvm v28, v28, v9, v0 // .................................................................................................................................................................................................................................*................................................................................................................................................................... + // vmerge.vvm v21, v10, v21, v0 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... + // vmerge.vvm v29, v29, v11, v0 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... + // vrgather.vv v8, v30, v1 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ + // vrgather.vv v9, v22, v2 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... + // vrgather.vv v10, v31, v1 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... + // vrgather.vv v11, v23, v2 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... + // vmerge.vvm v22, v8, v22, v0 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... + // vmerge.vvm v30, v30, v9, v0 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... + // vmerge.vvm v23, v10, v23, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... + // addi x7, x11, _MASK_01014545*2 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... + // addi x28, x11, _MASK_23236767*2 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ + // li x31, 0x33 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... + // vle16.v v1, (x7) // ................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vle16.v v2, (x28) // .................................................................................................................................................................................................................................................*................................................................................................................................................... + // vmv.s.x v0, x31 // ................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vrgather.vv v8, v20, v1 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ + // vrgather.vv v9, v16, v2 // .....................................................................................................................................................................................................................................................*............................................................................................................................................... + // vrgather.vv v10, v28, v1 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vrgather.vv v11, v24, v2 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vmerge.vvm v20, v20, v9, v0 // .....................................................................................................................................................................................................................................................*............................................................................................................................................... + // vmerge.vvm v24, v10, v24, v0 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... + // vmerge.vvm v28, v28, v11, v0 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... + // vrgather.vv v8, v21, v1 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ + // vrgather.vv v9, v17, v2 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ + // vrgather.vv v10, v29, v1 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. + // vrgather.vv v11, v25, v2 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vmerge.vvm v17, v8, v17, v0 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... + // vmerge.vvm v21, v21, v9, v0 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... + // vmerge.vvm v25, v10, v25, v0 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. + // vmerge.vvm v29, v29, v11, v0 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ + // addi x16, x11, _ZETAS_EXP_1TO6_P1_L3*2 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... + // vrgather.vv v8, v22, v1 // .................................................................................................................................................................................................................................................*................................................................................................................................................... + // vrgather.vv v9, v18, v2 // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vrgather.vv v10, v30, v1 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. + // vrgather.vv v11, v26, v2 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. + // vmerge.vvm v18, v8, v18, v0 // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vmerge.vvm v22, v22, v9, v0 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ + // vmerge.vvm v26, v10, v26, v0 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ + // vmerge.vvm v30, v30, v11, v0 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... + // vl2re16.v v4, (x16) // .............................................................................................................................................................................................................................................................*....................................................................................................................................... + // addi x16, x16, 8*2*2 // .............................................................................................................................................................................................................................................................*....................................................................................................................................... + // vrgather.vv v8, v23, v1 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... + // vrgather.vv v9, v19, v2 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vrgather.vv v10, v31, v1 // .................................................................................................................................................................................................................................................................*................................................................................................................................... + // vrgather.vv v11, v27, v2 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ + // vmerge.vvm v19, v8, v19, v0 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vmerge.vvm v23, v23, v9, v0 // .........................................................................................................................................................................................................................................................................*........................................................................................................................... + // vmerge.vvm v27, v10, v27, v0 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. + // vmerge.vvm v31, v31, v11, v0 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... + // vmul.vv v8, v18, v4 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ + // vmul.vv v9, v22, v4 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... + // vmul.vv v10, v26, v4 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... + // vmul.vv v11, v30, v4 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vmul.vv v12, v19, v4 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vmul.vv v13, v23, v4 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... + // vmul.vv v14, v27, v4 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. + // vmul.vv v15, v31, v4 // ........................................................................................................................................................................................................................................................................*............................................................................................................................ + // vmulh.vv v18, v18, v5 // .................................................................................................................................................................................................................................................................*................................................................................................................................... + // vmulh.vv v22, v22, v5 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vmulh.vv v26, v26, v5 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. + // vmulh.vv v30, v30, v5 // ........................................................................................................................................................................................................................................................................*............................................................................................................................ + // vmulh.vv v19, v19, v5 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. + // vmulh.vv v23, v23, v5 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... + // vmulh.vv v27, v27, v5 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... + // vmulh.vv v31, v31, v5 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... + // vmulh.vx v8, v8, x5 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... + // vmulh.vx v9, v9, x5 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vmulh.vx v10, v10, x5 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... + // vmulh.vx v11, v11, x5 // .........................................................................................................................................................................................................................................................................*........................................................................................................................... + // vmulh.vx v12, v12, x5 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ + // vmulh.vx v13, v13, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vmulh.vx v14, v14, x5 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... + // vmulh.vx v15, v15, x5 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ + // vsub.vv v8, v18, v8 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... + // vsub.vv v9, v22, v9 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... + // vsub.vv v10, v26, v10 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... + // vsub.vv v11, v30, v11 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... + // vsub.vv v12, v19, v12 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. + // vsub.vv v13, v23, v13 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. + // vsub.vv v14, v27, v14 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... + // vsub.vv v15, v31, v15 // ............................................................................................................................................................................................................................................................................................*........................................................................................................ + // vsub.vv v18, v16, v8 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vsub.vv v22, v20, v9 // .................................................................................................................................................................................................................................................................................................*................................................................................................... + // vsub.vv v26, v24, v10 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. + // vsub.vv v30, v28, v11 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... + // vsub.vv v19, v17, v12 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... + // vsub.vv v23, v21, v13 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... + // vsub.vv v27, v25, v14 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ + // vsub.vv v31, v29, v15 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... + // vadd.vv v16, v16, v8 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. + // vadd.vv v20, v20, v9 // .................................................................................................................................................................................................................................................................................................*................................................................................................... + // vadd.vv v24, v24, v10 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ + // vadd.vv v28, v28, v11 // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vadd.vv v17, v17, v12 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. + // vadd.vv v21, v21, v13 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. + // vadd.vv v25, v25, v14 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... + // vadd.vv v29, v29, v15 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... + // addi x7, x11, _MASK_10325476*2 // .................................................................................................................................................................................................................................................................................*................................................................................................................... + // li x31, 0x55 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... + // vle16.v v1, (x7) // .................................................................................................................................................................................................................................................................................*................................................................................................................... + // vmv.s.x v0, x31 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vrgather.vv v8, v18, v1 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. + // vrgather.vv v9, v16, v1 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ + // vrgather.vv v10, v26, v1 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vrgather.vv v11, v24, v1 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ + // vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... + // vmerge.vvm v18, v18, v9, v0 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... + // vmerge.vvm v24, v10, v24, v0 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... + // vmerge.vvm v26, v26, v11, v0 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... + // vrgather.vv v8, v19, v1 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... + // vrgather.vv v9, v17, v1 // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vrgather.vv v10, v27, v1 // ............................................................................................................................................................................................................................................................................................*........................................................................................................ + // vrgather.vv v11, v25, v1 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. + // vmerge.vvm v17, v8, v17, v0 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vmerge.vvm v19, v19, v9, v0 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... + // vmerge.vvm v25, v10, v25, v0 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vmerge.vvm v27, v27, v11, v0 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... + // vl2re16.v v4, (x16) // ....................................................................................................................................................................................................................................................................................................*................................................................................................ + // addi x16, x16, 8*2*2 // ....................................................................................................................................................................................................................................................................................................*................................................................................................ + // vrgather.vv v8, v22, v1 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... + // vrgather.vv v9, v20, v1 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... + // vrgather.vv v10, v30, v1 // .................................................................................................................................................................................................................................................................................................................*................................................................................... + // vrgather.vv v11, v28, v1 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. + // vmerge.vvm v20, v8, v20, v0 // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vmerge.vvm v22, v22, v9, v0 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vmerge.vvm v28, v10, v28, v0 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... + // vmerge.vvm v30, v30, v11, v0 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ + // vrgather.vv v8, v23, v1 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vrgather.vv v9, v21, v1 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... + // vrgather.vv v10, v31, v1 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. + // vrgather.vv v11, v29, v1 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... + // vmerge.vvm v21, v8, v21, v0 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vmerge.vvm v23, v23, v9, v0 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vmerge.vvm v29, v10, v29, v0 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... + // vmul.vv v8, v17, v4 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... + // vmul.vv v9, v19, v4 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ + // vmul.vv v10, v21, v4 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ + // vmul.vv v11, v23, v4 // .................................................................................................................................................................................................................................................................................................................*................................................................................... + // vmul.vv v12, v25, v4 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... + // vmul.vv v13, v27, v4 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... + // vmul.vv v14, v29, v4 // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vmul.vv v15, v31, v4 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vmulh.vv v17, v17, v5 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vmulh.vv v19, v19, v5 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. + // vmulh.vv v21, v21, v5 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ + // vmulh.vv v23, v23, v5 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ + // vmulh.vv v25, v25, v5 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... + // vmulh.vv v27, v27, v5 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... + // vmulh.vv v29, v29, v5 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ + // vmulh.vv v31, v31, v5 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vmulh.vx v8, v8, x5 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. + // vmulh.vx v9, v9, x5 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vmulh.vx v10, v10, x5 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... + // vmulh.vx v11, v11, x5 // .......................................................................................................................................................................................................................................................................................................................*............................................................................. + // vmulh.vx v12, v12, x5 // .......................................................................................................................................................................................................................................................................................................................*............................................................................. + // vmulh.vx v13, v13, x5 // ........................................................................................................................................................................................................................................................................................................................*............................................................................ + // vmulh.vx v14, v14, x5 // ........................................................................................................................................................................................................................................................................................................................*............................................................................ + // vmulh.vx v15, v15, x5 // .........................................................................................................................................................................................................................................................................................................................*........................................................................... + // vsub.vv v8, v17, v8 // .........................................................................................................................................................................................................................................................................................................................*........................................................................... + // vsub.vv v9, v19, v9 // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... + // vsub.vv v10, v21, v10 // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... + // vsub.vv v11, v23, v11 // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... + // vsub.vv v12, v25, v12 // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... + // vsub.vv v13, v27, v13 // ............................................................................................................................................................................................................................................................................................................................*........................................................................ + // vsub.vv v14, v29, v14 // ............................................................................................................................................................................................................................................................................................................................*........................................................................ + // vsub.vv v15, v31, v15 // .............................................................................................................................................................................................................................................................................................................................*....................................................................... + // vsub.vv v17, v16, v8 // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... + // vsub.vv v19, v18, v9 // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... + // vsub.vv v21, v20, v10 // ................................................................................................................................................................................................................................................................................................................................*.................................................................... + // vsub.vv v23, v22, v11 // .................................................................................................................................................................................................................................................................................................................................*................................................................... + // vsub.vv v25, v24, v12 // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. + // vsub.vv v27, v26, v13 // ...................................................................................................................................................................................................................................................................................................................................*................................................................. + // vsub.vv v29, v28, v14 // ....................................................................................................................................................................................................................................................................................................................................*................................................................ + // vsub.vv v31, v30, v15 // .....................................................................................................................................................................................................................................................................................................................................*............................................................... + // vadd.vv v16, v16, v8 // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... + // vadd.vv v18, v18, v9 // ................................................................................................................................................................................................................................................................................................................................*.................................................................... + // vadd.vv v20, v20, v10 // .................................................................................................................................................................................................................................................................................................................................*................................................................... + // vadd.vv v22, v22, v11 // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. + // vadd.vv v24, v24, v12 // ...................................................................................................................................................................................................................................................................................................................................*................................................................. + // vadd.vv v26, v26, v13 // ....................................................................................................................................................................................................................................................................................................................................*................................................................ + // vadd.vv v28, v28, v14 // .....................................................................................................................................................................................................................................................................................................................................*............................................................... + // vadd.vv v30, v30, v15 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vl4re16.v v0, (x16) // .............................................................................................................................................................................................................................................................................................................................*....................................................................... + // addi x16, x16, 8*4*2 // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... + // vmul.vv v8, v24, v0 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. + // vmul.vv v9, v26, v0 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ + // vmul.vv v10, v28, v0 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... + // vmul.vv v11, v30, v0 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vmul.vv v12, v25, v2 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vmul.vv v13, v27, v2 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. + // vmul.vv v14, v29, v2 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ + // vmul.vv v15, v31, v2 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... + // vmulh.vv v24, v24, v1 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ + // vmulh.vv v26, v26, v1 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vmulh.vv v28, v28, v1 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... + // vmulh.vv v30, v30, v1 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ + // vmulh.vv v25, v25, v3 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... + // vmulh.vv v27, v27, v3 // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... + // vmulh.vv v29, v29, v3 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... + // vmulh.vv v31, v31, v3 // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... + // vmulh.vx v8, v8, x5 // ........................................................................................................................................................................................................................................................................................................................................................*............................................ + // vmulh.vx v9, v9, x5 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. + // vmulh.vx v10, v10, x5 // .................................................................................................................................................................................................................................................................................................................................................*................................................... + // vmulh.vx v11, v11, x5 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vmulh.vx v12, v12, x5 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... + // vmulh.vx v13, v13, x5 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vmulh.vx v14, v14, x5 // ........................................................................................................................................................................................................................................................................................................................................................*............................................ + // vmulh.vx v15, v15, x5 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vsub.vv v8, v24, v8 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vsub.vv v9, v26, v9 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... + // vsub.vv v10, v28, v10 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. + // vsub.vv v11, v30, v11 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vsub.vv v12, v25, v12 // .................................................................................................................................................................................................................................................................................................................................................*................................................... + // vsub.vv v13, v27, v13 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... + // vsub.vv v14, v29, v14 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vsub.vv v15, v31, v15 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... + // vsub.vv v24, v16, v8 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... + // vsub.vv v26, v18, v9 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. + // vsub.vv v28, v20, v10 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. + // vsub.vv v30, v22, v11 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ + // vsub.vv v25, v17, v12 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... + // vsub.vv v27, v19, v13 // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... + // vsub.vv v29, v21, v14 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ + // vsub.vv v31, v23, v15 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... + // vadd.vv v16, v16, v8 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... + // vadd.vv v18, v18, v9 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. + // vadd.vv v20, v20, v10 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. + // vadd.vv v22, v22, v11 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ + // vadd.vv v17, v17, v12 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... + // vadd.vv v19, v19, v13 // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... + // vadd.vv v21, v21, v14 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ + // vadd.vv v23, v23, v15 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... + // vl4re16.v v4, (x16) // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... + // addi x14, x10, (1*128)*2 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... + // addi x15, x10, (64+1*128)*2 // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... + // vmul.vv v8, v20, v4 // .................................................................................................................................................................................................................................................................................................................................................................*................................... + // vmul.vv v9, v22, v4 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vmul.vv v12, v28, v5 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... + // vmul.vv v13, v30, v5 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vmul.vx v8, v8, x6 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. + // vmul.vx v9, v9, x6 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vmul.vx v12, v12, x6 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmul.vx v13, v13, x6 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. + // vmulh.vv v20, v20, v4 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmulh.vv v22, v22, v4 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ + // vmulh.vv v28, v28, v5 // .................................................................................................................................................................................................................................................................................................................................................................*................................... + // vmulh.vv v30, v30, v5 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vmulh.vx v8, v8, x5 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vmulh.vx v9, v9, x5 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ + // vmulh.vx v12, v12, x5 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... + // vmulh.vx v13, v13, x5 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... + // vsub.vv v8, v20, v8 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... + // vsub.vv v9, v22, v9 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vsub.vv v12, v28, v12 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... + // vsub.vv v13, v30, v13 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ + // vsub.vv v10, v16, v8 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ + // vsub.vv v11, v18, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... + // vsub.vv v14, v24, v12 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... + // vsub.vv v15, v26, v13 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... + // vadd.vv v8, v16, v8 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ + // vadd.vv v9, v18, v9 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ + // vadd.vv v12, v24, v12 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... + // vadd.vv v13, v26, v13 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... + // vs8r.v v8, (x14) // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... + // vmul.vv v8, v21, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... + // vmul.vv v9, v23, v6 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... + // vmul.vv v12, v29, v7 // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... + // vmul.vv v13, v31, v7 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vmul.vx v8, v8, x6 // .................................................................................................................................................................................................................................................................................................................................................................................*................... + // vmul.vx v9, v9, x6 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vmul.vx v12, v12, x6 // .......................................................................................................................................................................................................................................................................................................................................................................................*............. + // vmul.vx v13, v13, x6 // ....................................................................................................................................................................................................................................................................................................................................................................................*................ + // vmulh.vv v21, v21, v6 // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vmulh.vv v23, v23, v6 // .....................................................................................................................................................................................................................................................................................................................................................................................*............... + // vmulh.vv v29, v29, v7 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vmulh.vv v31, v31, v7 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vmulh.vx v8, v8, x5 // .................................................................................................................................................................................................................................................................................................................................................................................*................... + // vmulh.vx v9, v9, x5 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vmulh.vx v12, v12, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... + // vmulh.vx v13, v13, x5 // ........................................................................................................................................................................................................................................................................................................................................................................................*............ + // vsub.vv v8, v21, v8 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vsub.vv v9, v23, v9 // ............................................................................................................................................................................................................................................................................................................................................................................................*........ + // vsub.vv v12, v29, v12 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vsub.vv v13, v31, v13 // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... + // vsub.vv v10, v17, v8 // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... + // vsub.vv v11, v19, v9 // .................................................................................................................................................................................................................................................................................................................................................................................................*... + // vsub.vv v14, v25, v12 // ...................................................................................................................................................................................................................................................................................................................................................................................................*. + // vsub.vv v15, v27, v13 // .................................................................................................................................................................................................................................................................................................................................................................................................*... + // vadd.vv v8, v17, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vadd.vv v9, v19, v9 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vadd.vv v12, v25, v12 // ...................................................................................................................................................................................................................................................................................................................................................................................................*. + // vadd.vv v13, v27, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................................* + // vs8r.v v8, (x15) // ....................................................................................................................................................................................................................................................................................................................................................................................................* + // ld x8, 0*8(x2) // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. + // ld x9, 1*8(x2) // ...................................................................................................................................................................................................................................................................................................................................................................................*................. + // ld x18, 2*8(x2) // ...................................................................................................................................................................................................................................................................................................................................................................................*................. + // ld x19, 3*8(x2) // ....................................................................................................................................................................................................................................................................................................................................................................................*................ + // ld x20, 4*8(x2) // .....................................................................................................................................................................................................................................................................................................................................................................................*............... + // ld x21, 5*8(x2) // .......................................................................................................................................................................................................................................................................................................................................................................................*............. + // ld x22, 6*8(x2) // ........................................................................................................................................................................................................................................................................................................................................................................................*............ + // ld x23, 7*8(x2) // .........................................................................................................................................................................................................................................................................................................................................................................................*........... + // ld x24, 8*8(x2) // .........................................................................................................................................................................................................................................................................................................................................................................................*........... + // ld x25, 9*8(x2) // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... + // ld x26, 10*8(x2) // ............................................................................................................................................................................................................................................................................................................................................................................................*........ + // ld x27, 11*8(x2) // .............................................................................................................................................................................................................................................................................................................................................................................................*....... + // ld x3, 12*8(x2) // .............................................................................................................................................................................................................................................................................................................................................................................................*....... + // ld x4, 13*8(x2) // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... + // ld x1, 14*8(x2) // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... + // addi x2, x2, 8*15 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... + + end: + +ret \ No newline at end of file diff --git a/examples/opt/riscv/ntt_kyber/ntt_kyber_rvv_vlen128_unfolded_opt_c908.s b/examples/opt/riscv/ntt_kyber/ntt_kyber_rvv_vlen128_unfolded_opt_c908.s new file mode 100644 index 000000000..7d4a034fa --- /dev/null +++ b/examples/opt/riscv/ntt_kyber/ntt_kyber_rvv_vlen128_unfolded_opt_c908.s @@ -0,0 +1,2465 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzeta1, vzeta2, vzeta3, vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 v16, v24, v18, v26, v20, v28, v22, v30, v17, v25, v19, v27, v21, v29, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v3, v2, v3, v2, v3, v2, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v16, v20, v18, v22, v24, v28, v26, v30, v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v17, v21, v19, v23, v25, v29, v27, v31, v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, vidx8_0122, vidx_low, vidx_high, x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +.globl ntt_rvv_vlen128 +.align 2 +ntt_rvv_vlen128_opt_c908: + start: + // Instructions: 778 + // Expected cycles: 389 + // Expected IPC: 2.00 + // + // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------- + addi x2, x2, -8*15 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + li x13, 8*8 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + sd x9, 1*8(x2) // .*................................................................................................................................................................................................................................................................................................................................................................................................... + vsetvli x17, x13, e16, m8, tu, mu // .*................................................................................................................................................................................................................................................................................................................................................................................................... + addi x29, x11, _MASK_01014545*2 // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + sd x25, 9*8(x2) // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + sd x18, 2*8(x2) // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + addi x17, x10, 128*2 // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + addi x18, x11, _ZETAS_EXP*2 // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + addi x12, x17, 64*2 // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + lh x31, 0*2(x18) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... + vle16.v v0, (x12) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + sd x8, 0*8(x2) // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + li x8, 0x0f // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + sd x27, 11*8(x2) // .......*............................................................................................................................................................................................................................................................................................................................................................................................. + li x6, -3327 // .......*............................................................................................................................................................................................................................................................................................................................................................................................. + sd x4, 13*8(x2) // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v24, v0, x31 // ........*............................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + sd x1, 14*8(x2) // .........*........................................................................................................................................................................................................................................................................................................................................................................................... + addi x16, x10, 64*2 // .........*........................................................................................................................................................................................................................................................................................................................................................................................... + sd x3, 12*8(x2) // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + li x5, 3329 // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + sd x19, 3*8(x2) // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + addi x19, x10, (64+0*128)*2 // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + sd x21, 5*8(x2) // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + addi x21, x11, _ZETAS_EXP_1TO6_P0_L1*2 // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + lh x27, 4*2(x21) // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + lh x4, 1*2(x18) // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + sd x26, 10*8(x2) // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + addi x26, x11, _MASK_45674567*2 // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + sd x20, 4*8(x2) // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v16, v0, x4 // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + sd x24, 8*8(x2) // ................*.................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v24, v24, x5 // ................*.................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + sd x22, 6*8(x2) // .................*................................................................................................................................................................................................................................................................................................................................................................................... + sd x23, 7*8(x2) // .................*................................................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v8, v16, v24 // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v16, (x17) // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v0, (x16) // ...................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v24, v16, x4 // ...................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + lh x1, 1*2(x21) // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + lh x22, 0*2(x21) // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + lh x15, 3*2(x21) // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + li x20, 8*8 // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + lh x30, 5*2(x21) // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + addi x25, x11, _MASK_01230123*2 // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + lh x7, 2*2(x21) // .......................*............................................................................................................................................................................................................................................................................................................................................................................. + li x21, 0x33 // .......................*............................................................................................................................................................................................................................................................................................................................................................................. + li x18, 8*4 // ........................*............................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v16, v16, x31 // ........................*............................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v16, v16, x5 // .........................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v16, v24, v16 // .........................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v24, v0, v8 // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v24, (x16) // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v24, v0, v8 // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v0, (x10) // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v8, v0, v16 // ............................*........................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v16, v0, v16 // ............................*........................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v24, (x12) // .............................*....................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v8, (x10) // .............................*....................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v16, (x17) // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsetvli x17, x20, e16, m8, tu, mu // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... + vle16.v v24, (x19) // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + addi x19, x10, (0*128)*2 // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... + vle16.v v16, (x19) // ................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v0, v24, x22 // ................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + addi x23, x11, _ZETAS_EXP_1TO6_P0_L3*2 // .................................*................................................................................................................................................................................................................................................................................................................................................................... + addi x16, x23, 8*2*2 // .................................*................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v8, v24, x1 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v24, v0, x5 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v24, v8, v24 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v8, v16, v24 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v0, v16, v24 // ....................................*................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vsetvli x18, x18, e16, m4, tu, mu // ....................................*................................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v16, v4, x15 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmul.vx v4, v4, x7 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + addi x7, x11, _MASK_23236767*2 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. + vmul.vx v20, v12, x27 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v24, v12, x30 // .......................................*............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + addi x18, x11, _MASK_10325476*2 // .......................................*............................................................................................................................................................................................................................................................................................................................................................. + li x19, 0x55 // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + vmulh.vx v4, v4, x5 // ........................................*............................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v20, v20, x5 // .........................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v24, v24, v20 // .........................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v20, v16, v4 // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v4, v0, v20 // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v28, v0, v20 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v12, v8, v24 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v20, v8, v24 // ............................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vsetivli x4, 8, e16, m1, tu, mu // ............................................*........................................................................................................................................................................................................................................................................................................................................................ + vle16.v v2, (x25) // .............................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x8 // .............................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v9, (x26) // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v21, v2 // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v5, v9 // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v17, v5, v0 // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v20, v2 // ................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v17, v4, v0 // ................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v4, v9 // .................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v22, v2 // .................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v17, v6, v0 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v19, v6, v9 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v23, v2 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v17, v7, v0 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v7, v9 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v14, v2 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v1, v17, v30, v0 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v30, v9 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v12, v2 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v17, v28, v0 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v28, v9 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v13, v2 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v4, v29, v0 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v29, v9 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v23, v6, v0 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v26, v15, v2 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v26, v31, v0 // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v2, (x7) // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v22, v19, v0 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v13, v4, v0 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v12, v17, v0 // ............................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v20, v10, v0 // ............................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v31, v9 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v21, v24, v0 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v16, (x29) // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v15, v17, v0 // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v4, v16 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v14, v7, v0 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x21 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v1, v16 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v23, v16 // .................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v17, v25, v0 // .................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v28, (x23) // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:sew=16 + vmerge.vvm v14, v13, v3, v0 // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v17, v28 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v3, v2 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v22, v17, v29 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v17, v14, v28 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v25, v2 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v1, v20, v0 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v10, v16 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v1, v25, v28 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v20, v18, v0 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v15, x5 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v18, v2 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v19, v25, v29 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v25, v7, v28 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v10, v20, v0 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v20, v7, v29 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v11, v2 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v1, v1, x5 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v6, v2 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v25, x5 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v22, v13 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v26, v7, v0 // .............................................................................*....................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v19, v1 // .............................................................................*....................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v8, v16 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v31, v17, x5 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v1, v14, v29 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v7, v5, v0 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v7, v18, v28 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v9, v0 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v3, v28 // .................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v27, v15, v0 // .................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v20, v25 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v30, v16 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v1, v1, v31 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v31, v7, x5 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v24, v21, v0 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v9, v9, x5 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v12, v2 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v20, v23, v28 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v15, v13, v1 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v30, v25, v0 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v3, v29 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v30, v26, v16 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v24, v22 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v3, v18, v29 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v6, v0 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v23, v23, v29 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v21, v2 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v24, v22 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v21, v30, v28 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v17, v12, v0 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v20, x5 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v5, v2 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v8, v20, v0 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v20, v21, x5 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v4, v6, v0 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v23, v17 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v27, v16 // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v3, v31 // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v1, v13, v1 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v17, v11, v0 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v16, (x18) // .................................................................................................*................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x15, x10, (64+0*128)*2 // .................................................................................................*................................................................................................................................................................................................................................................................................................... + addi x14, x10, (0*128)*2 // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. + vmv.s.x v0, x19 // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v2, (x16) // ...................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:sew=16 + addi x16, x16, 8*2*2 // ...................................................................................................*................................................................................................................................................................................................................................................................................................. + vadd.vv v21, v8, v10 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x12, x16, 8*4*2 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ + vrgather.vv v13, v1, v16 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v28, v31 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v17, v30, v29 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v26, v16 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v30, v22, v5 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v8, v10 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v4, v18, v0 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v22, v5 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v27, v16 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v22, v28, v31 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v7, v9 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v30, v16 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v17, v20 // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v14, v19 // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v8, v16 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v14, v19 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v4, v12, v2 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v29, v30, v0 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v24, v9 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v22, v16 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v19, v29, v3 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v8, v5, v0 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v4, v4, x5 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v27, v17, v0 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v27, v12, v3 // .................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v6, v22, v0 // .................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v8, v2 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v15, v16 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v7, v20, v2 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v17, v22, v2 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v1, v14, v0 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v14, v24, v9 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v13, v15, v0 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v1, v25, v31 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v6, v25, v31 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v7, x5 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v31, v17, x5 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v17, v22, v3 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v18, v16 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v5, v2 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v15, v2 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v26, v24, v0 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v15, v3 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v6, v16 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v17, v31 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v22, x5 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v25, v26, v2 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v15, v12, x5 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v1, v18, v0 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v29, v2 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v8, v3 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v17, v20, v3 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v14, v16 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v18, v26, v3 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v5, v5, v3 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v11, v20, v0 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v25, x5 // .................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v11, v16 // .................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v17, v7 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v3, v30, x5 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v21, v16 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v4, v27, v4 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v12, x5 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v10, v11, v0 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v22, v7 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v10, v16 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v22, v7 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v9, v15 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v8, (x16) // .......................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:sew=16 + vsub.vv v13, v5, v13 // .......................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v1, v16 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x19, x11, _ZETAS_EXP_1TO6_P1_L1*2 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ + li x18, 8*8 // .........................................................................................................................................*........................................................................................................................................................................................................................................................... + vmul.vv v7, v17, v8 // .........................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x16, x10, (64+1*128)*2 // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... + lh x29, 5*2(x19) // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... + lh x7, 1*2(x19) // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... + vmulh.vv v5, v17, v9 // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x23, 0*2(x19) // ............................................................................................................................................*........................................................................................................................................................................................................................................................ + vrgather.vv v17, v28, v16 // ............................................................................................................................................*........................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v18, v29 // .............................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v2, v3 // .............................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v20, v6, v0 // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v7, x5 // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v3, v26, v13 // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v19, v12 // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v23, v17, v0 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v6, v29, v24 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v1, v29, v24 // .................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v31, v30 // .................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v25, v14, v0 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v31, v30 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v23, v16 // ...................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v16, v5, v18 // ...................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v12, v4 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v6, v9 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v30, v12, v4 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v7, v28, v0 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v6, v8 // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v4, (x12) // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:sew=16 + vadd.vv v20, v17, v2 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v27, v21, v0 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v0, v1, v10 // ........................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v17, v2 // ........................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v17, v22, v10 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v14, v1, v11 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v23, v22, v11 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v21, v12, x5 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v26, v13 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v1, v0, x5 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + li x4, 0x0f // ............................................................................................................................................................*........................................................................................................................................................................................................................................ + addi x21, x11, _MASK_45674567*2 // ............................................................................................................................................................*........................................................................................................................................................................................................................................ + vsub.vv v22, v31, v21 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x12, x10, (1*128)*2 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... + vmulh.vv v31, v29, v11 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x25, x11, _MASK_01230123*2 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... + vsub.vv v28, v18, v19 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + li x8, 8*4 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... + vsub.vv v1, v14, v1 // ................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x22, 3*2(x19) // ................................................................................................................................................................*.................................................................................................................................................................................................................................... + vadd.vv v0, v18, v19 // .................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x17, 4*2(x19) // .................................................................................................................................................................*................................................................................................................................................................................................................................... + vmul.vv v12, v29, v10 // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + lh x19, 2*2(x19) // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. + vadd.vv v21, v20, v16 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v28, v1 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v29, v0, v22 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v12, x5 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v21, v4 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v13, v18, v6 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v19, v29, v4 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v31, v14 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v21, v21, v4 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v31, v13, x6 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v29, v4 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v4, v26, v14 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v17, x5 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v20, v16 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v28, v1 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v1, v30, v8 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v23, v29 // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v16, v30, v9 // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v29, v28, v7 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v20, v1, x5 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v30, v2, v23 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v1, v24, v8 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v24, v9 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v16, v16, v20 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x9, x11, _MASK_23236767*2 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... + vadd.vv v24, v27, v15 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v20, v19, x6 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x13, x11, _MASK_01014545*2 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... + vmul.vv v19, v28, v7 // .................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v30, v6 // .................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v24, v16 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v20, v20, x5 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v19, v19, x6 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v10, v25, v10 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v24, v16 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v13, v20 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v25, v11 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v10, x5 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v27, v15 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v16, v24 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v0, v22 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v17, v5 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v2, v23 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v0, v21, x6 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v20, v22, v5 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v23, v22, v5 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v19, v19, x5 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v11, v25 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v20, v20, x6 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v25, v2, v7 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v22, v0, x5 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v29, v19 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v20, v20, x5 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v2, v7 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v12, v22 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v27, v21 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v0, v23, v20 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v20, v1, x5 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v31, v31, x5 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v15, v19 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v18, v6 // .................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v20, v8, v20 // .................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v18, v17, v5 // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v17, v18, x6 // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v5, v9, x6 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v9, v25, x6 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v12, v28, v0 // ....................................................................................................................................................................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v17, x5 // ....................................................................................................................................................................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v25, v30, v6 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v3, v20 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v1, v26, v14 // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v13, v8 // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v30, v9, x5 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v11, v3, v20 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v5, x5 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v13, v23, v17 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v2, v30 // .........................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v15, v19 // .........................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v27, v21 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v6, v7, v31 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v9, v11, v29 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v8, v16, v24 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v25, v14 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v28, v0 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v11, v29 // .............................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v23, v17 // .............................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v5, v6 // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v5, v6 // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v1, v25 // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v4, v30 // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v1, v25 // ................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v4, v30 // ................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vs8r.v v8, (x14) // .................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:sew=16 + li x14, 0x33 // .................................................................................................................................................................................................................*................................................................................................................................................................................... + vs8r.v v16, (x15) // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:sew=16 + vsetvli x1, x18, e16, m8, tu, mu // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. + vle16.v v8, (x16) // ...................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v24, (x12) // ...................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v0, v8, x23 // ....................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v8, v8, x7 // ....................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v16, v0, x5 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v16, v8, v16 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v8, v24, v16 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + addi x12, x11, _ZETAS_EXP_1TO6_P1_L3*2 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. + addi x16, x12, 8*2*2 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. + vadd.vv v24, v24, v16 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsetvli x24, x8, e16, m4, tu, mu // ........................................................................................................................................................................................................................*............................................................................................................................................................................ + li x8, 0x55 // ........................................................................................................................................................................................................................*............................................................................................................................................................................ + vmulh.vx v20, v12, x29 // .........................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmul.vx v0, v28, x19 // .........................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + addi x19, x11, _MASK_10325476*2 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... + vmulh.vx v16, v0, x5 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v4, v28, x22 // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmul.vx v0, v12, x17 // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v12, v0, x5 // ............................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v0, v4, v16 // ............................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v4, v20, v12 // .............................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v20, v8, v4 // .............................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v8, v8, v4 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v12, v24, v0 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v24, v24, v0 // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsetivli x17, 8, e16, m1, tu, mu // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... + vle16.v v1, (x13) // ................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x4 // ................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v3, (x21) // .................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v2, (x25) // .................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v24, v3 // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v20, v5, v0 // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v21, v2 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v17, v25, v0 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v8, v2 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v28, v12, v0 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v15, v3 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v30, v25, v3 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v26, v3 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v19, v14, v3 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v12, v3 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v16, v23, v2 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v11, v17, v0 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v22, v2 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v17, v26, v0 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v10, v2 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v8, v6, v0 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v10, v19, v0 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v27, v3 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v26, v11, v2 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v21, v30, v0 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v22, v28, v0 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v13, v3 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v9, v18, v0 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v9, v2 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v20, v2 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v23, v17, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v16, v27, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v10, v24, v0 // ................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v5, v14, v0 // ................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v26, v15, v0 // .................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v28, v13, v0 // .................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v24, (x9) // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x14 // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v19, v18, v1 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v20, v24 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v19, v30, v0 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v9, v27, v0 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v2, (x12) // .....................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:sew=16 + vrgather.vv v15, v9, v1 // .....................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v19, v2 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v30, v24 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v19, v19, v3 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v18, v5, v0 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v26, x5 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v30, v25, v1 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v26, v23, v1 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v19, v18 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v22, v0 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v15, v20, v0 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v26, v12, v0 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v29, v1 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v5, v30, v2 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v8, v2 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v31, v1 // .............................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v19, v30, v3 // .............................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v9, v17, v0 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v5, x5 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v26, v22, v24 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v20, v2 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v5, v9, v2 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v10, v1 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v30, v9, v3 // .................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v19, v18 // .................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v17, v24 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v5, v5, x5 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v25, v26, v0 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v31, v9, v0 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v9, v15, x5 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v7, v24 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v22, v2 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v17, v2 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v10, v25, v0 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v27, x5 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v6, v1 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v25, v17, v3 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v10, v26, x5 // ........................................................................................................................................................................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x19) // ........................................................................................................................................................................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v20, v20, v3 // .........................................................................................................................................................................................................................................................................*........................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v26, v16, v24 // .........................................................................................................................................................................................................................................................................*........................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v31, x5 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v22, v3 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v29, v26, v0 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v15, v21 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v26, v12, v24 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v20, v9 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v25, v17 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v28, v7, v0 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v8, v3 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v18, v4, v0 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v31, v10 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v25, v29, v1 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v17, v9 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x27, x16, 8*2*2 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... + vrgather.vv v31, v4, v24 // .................................................................................................................................................................................................................................................................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v20, v8, v19 // .................................................................................................................................................................................................................................................................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v13, v12 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v23, v26, v0 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v30, v5 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v6, v31, v0 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v13, v12 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v14, v16, v0 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x8 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v20, v1 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v4, v7, v27 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v14, v15, v21 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v24, v1 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v7, v23, v2 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v23, v3 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v13, v6, v0 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v13, v1 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v15, v17, v9 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v5, v28 // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v30, (x16) // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:sew=16 + addi x16, x27, 8*4*2 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... + vmulh.vx v7, v7, x5 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v14, v1 // ............................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v11, v26 // ............................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v8, v8, v19 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v25, v14, v0 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v6, v5, v28 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v29, v21, v0 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v12, v4 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v15, v1 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v28, v25, v30 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v2, v7 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v10, v21, v0 // .................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v25, v25, v31 // .................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v10, v1 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v11, v26 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v21, v14, v30 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v29, v15, v0 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x12, x10, (1*128)*2 // ....................................................................................................................................................................................................................................................................................................*................................................................................................ + vrgather.vv v15, v13, v1 // ....................................................................................................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v16, v22, v2 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x15, x10, (64+1*128)*2 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... + vmul.vv v11, v7, v30 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v15, v17, v0 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v29, v7, v31 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v17, v1 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v19, v22, v2 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v26, v30 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v13, v7, v0 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v2, v11, x5 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v17, v5, v1 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v12, v4 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v13, v30 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v16, v1 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v4, v15, x5 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v29, v2 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v3, v24, v0 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v28, v28, x5 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v11, v17, v0 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v27, v31 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v18, v8, v0 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v24, v22, v30 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v19, v1 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v17, v22, v31 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v18, v26, v31 // .................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v8, v1 // .................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v25, v28 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v27, v30 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v7, v19, v0 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v31 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v6, v1 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v7, v21, x5 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v21, v12, x5 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v23, v1 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v4, v18, v4 // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v18, v14, v31 // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v28, v26, x5 // .......................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + ld x4, 13*8(x2) // .......................................................................................................................................................................................................................................................................................................................*............................................................................. + vrgather.vv v19, v11, v1 // ........................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + ld x20, 4*8(x2) // ........................................................................................................................................................................................................................................................................................................................*............................................................................ + ld x18, 2*8(x2) // .........................................................................................................................................................................................................................................................................................................................*........................................................................... + vmul.vv v26, v9, v30 // .........................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x3, 12*8(x2) // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... + vmulh.vx v24, v24, x5 // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x25, 9*8(x2) // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... + vmerge.vvm v1, v20, v22, v0 // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x1, 14*8(x2) // ............................................................................................................................................................................................................................................................................................................................*........................................................................ + vsub.vv v28, v15, v28 // ............................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + ld x26, 10*8(x2) // .............................................................................................................................................................................................................................................................................................................................*....................................................................... + vmerge.vvm v20, v16, v29, v0 // .............................................................................................................................................................................................................................................................................................................................*....................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x9, 1*8(x2) // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... + ld x19, 3*8(x2) // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... + vsub.vv v22, v13, v21 // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v23, v27, v0 // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x8, 0*8(x2) // ................................................................................................................................................................................................................................................................................................................................*.................................................................... + ld x23, 7*8(x2) // ................................................................................................................................................................................................................................................................................................................................*.................................................................... + vmulh.vv v11, v9, v31 // .................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v12, v6, v0 // .................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x22, 6*8(x2) // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. + vmulh.vx v27, v26, x5 // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=16 + ld x21, 5*8(x2) // ...................................................................................................................................................................................................................................................................................................................................*................................................................. + vl4re16.v v12, (x27) // ...................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:sew=16 + ld x24, 8*8(x2) // ....................................................................................................................................................................................................................................................................................................................................*................................................................ + vsub.vv v23, v17, v24 // ....................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=16 + ld x27, 11*8(x2) // .....................................................................................................................................................................................................................................................................................................................................*............................................................... + vsub.vv v17, v16, v28 // .....................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x2, x2, 8*15 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. + vsub.vv v24, v18, v7 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v6, v16, v28 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v10, v2 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v29, v25, v8 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v11, v27 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v10, v2 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v21, v23 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v1, v22 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v28, v3, v4 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v19, v5, v0 // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v0, v3, v4 // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v30, v6, v13 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v6, v12 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v7, v11 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v3, v7, v11 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v20, v24 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v28, v13 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v4, (x16) // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:sew=16 + vmul.vv v28, v28, v12 // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v19, v26, x5 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v26, v1, v22 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v9, v20, v24 // .................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v22, v16, v13 // .................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v1, v30, v19 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v19, v26, v12 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v24, v26, v13 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v20, v28, x5 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v0, v14 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v19, v19, x5 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v9, v1 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v11, v20 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v13, v16, v12 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v24, v19 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v16, v28, v5 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v26, x5 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v25, v8 // ........................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v20, v13, x5 // ........................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v26, v16, x6 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v21, v23 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v16, v3, v30 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v22, v20 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v18, v19 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v23, v26, x5 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v20, v0, v15 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v13, v29, v25 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v21, v15 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v19, v18, v19 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v18, v21, v14 // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v9, v9, v1 // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v0, v17, v14 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v21, v17, v15 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v18, x5 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v1, v9, v4 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v0, v0, x5 // .................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v20, v12 // .................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v11, v18 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v17, v1, x6 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v21, v0 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v1, v10, v15 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v15, v24, v11 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v17, x5 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v0, v9, v4 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v20, v31, v8 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v15, v6 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v26, v28, v5 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v18, v15, v6 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v20, v7 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v15, v9, x6 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v9, v26, v23 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v0, v17 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v24, v11 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v0, v15, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v22, v9 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v19, v26 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v2, v12 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v18, v0 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v18, v13, v4 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v29, v25 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v2, v12 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v0, v24, v17 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v18, v18, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v24, v17 // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v25, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v3, v3, v30 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v18, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v24, v21, v7 // .................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v10, v14 // .................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v14, v31, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v10, v24, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v4, v12, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v18, v14, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v13, v17 // ....................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v10, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v4, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v4, v25, v5 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v20, v7 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v20, v29, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v29, v14, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v4, v17 // ........................................................................................................................................................................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v3, v24 // ........................................................................................................................................................................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v5, v12, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................*........... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v1, v20 // .........................................................................................................................................................................................................................................................................................................................................................................................*........... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v16, v25 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v21, v7 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v31, v18, x6 // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v27, v17 // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v5, v5, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v4, v7, v13 // ............................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v13, v22, v9 // .............................................................................................................................................................................................................................................................................................................................................................................................*....... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v22, v31, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................*....... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v12, v16, v25 // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v25, v27, v17 // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v20, v28, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v29, v22 // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v8, v3, v24 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v9, v19, v26 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v18, v20 // .................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v1, v25, v17 // .................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v25, v17 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v6, v23, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v18, v20 // ...................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v4, v23, v4 // ...................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:lmul=1 // @slothy:sew=16 + vs8r.v v8, (x12) // ....................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:sew=16 + vs8r.v v0, (x15) // ....................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:sew=16 + + // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------- + // addi x2, x2, -8*15 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + // sd x8, 0*8(x2) // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + // sd x9, 1*8(x2) // .*................................................................................................................................................................................................................................................................................................................................................................................................... + // sd x18, 2*8(x2) // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + // sd x19, 3*8(x2) // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + // sd x20, 4*8(x2) // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... + // sd x21, 5*8(x2) // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + // sd x22, 6*8(x2) // .................*................................................................................................................................................................................................................................................................................................................................................................................... + // sd x23, 7*8(x2) // .................*................................................................................................................................................................................................................................................................................................................................................................................... + // sd x24, 8*8(x2) // ................*.................................................................................................................................................................................................................................................................................................................................................................................... + // sd x25, 9*8(x2) // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + // sd x26, 10*8(x2) // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + // sd x27, 11*8(x2) // .......*............................................................................................................................................................................................................................................................................................................................................................................................. + // sd x3, 12*8(x2) // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + // sd x4, 13*8(x2) // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + // sd x1, 14*8(x2) // .........*........................................................................................................................................................................................................................................................................................................................................................................................... + // li x5, 3329 // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + // li x6, -3327 // .......*............................................................................................................................................................................................................................................................................................................................................................................................. + // li x17, 8*8 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x16, x11, _ZETAS_EXP*2 // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + // vsetvli x17, x17, e16, m8, tu, mu // .*................................................................................................................................................................................................................................................................................................................................................................................................... + // lh x28, 0*2(x16) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... + // lh x7, 1*2(x16) // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + // addi x15, x10, 128*2 // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + // vle16.v v16, (x10) // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v24, (x15) // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v24, x28 // ........................*............................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v8, v24, x7 // ...................*................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .........................*........................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v8, v0 // .........................*........................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v24, v16, v0 // ............................*........................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ............................*........................................................................................................................................................................................................................................................................................................................................................................ + // vse16.v v16, (x10) // .............................*....................................................................................................................................................................................................................................................................................................................................................................... + // vse16.v v24, (x15) // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... + // addi x14, x10, 64*2 // .........*........................................................................................................................................................................................................................................................................................................................................................................................... + // addi x15, x15, 64*2 // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + // vle16.v v16, (x14) // ...................*................................................................................................................................................................................................................................................................................................................................................................................. + // vle16.v v24, (x15) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x28 // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v8, v24, x7 // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ................*.................................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v8, v0 // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v24, v16, v0 // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vse16.v v16, (x14) // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vse16.v v24, (x15) // .............................*....................................................................................................................................................................................................................................................................................................................................................................... + // li x17, 8*8 // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + // addi x16, x11, _ZETAS_EXP_1TO6_P0_L1*2 // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + // vsetvli x17, x17, e16, m8, tu, mu // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... + // addi x14, x10, (0*128)*2 // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... + // addi x15, x10, (64+0*128)*2 // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + // lh x28, 0*2(x16) // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + // lh x7, 1*2(x16) // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + // vle16.v v16, (x14) // ................................*.................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v24, (x15) // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x28 // ................................*.................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v24, x7 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v8, v0 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v24, v16, v0 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ....................................*................................................................................................................................................................................................................................................................................................................................................................ + // li x17, 8*4 // ........................*............................................................................................................................................................................................................................................................................................................................................................................ + // lh x28, 2*2(x16) // .......................*............................................................................................................................................................................................................................................................................................................................................................................. + // lh x7, 3*2(x16) // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + // vsetvli x17, x17, e16, m4, tu, mu // ....................................*................................................................................................................................................................................................................................................................................................................................................................ + // lh x30, 4*2(x16) // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + // lh x29, 5*2(x16) // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v20, x28 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v8, v28, x30 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v20, x7 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v28, x29 // .......................................*............................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v8, v8, x5 // .........................................*........................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v4, v0 // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v12, v8 // .........................................*........................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v16, v0 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v28, v24, v8 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ............................................*........................................................................................................................................................................................................................................................................................................................................................ + // vsetivli x17, 8, e16, m1, tu, mu // ............................................*........................................................................................................................................................................................................................................................................................................................................................ + // addi x7, x11, _MASK_01230123*2 // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + // addi x28, x11, _MASK_45674567*2 // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + // li x31, 0x0f // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + // vle16.v v1, (x7) // .............................................*....................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v2, (x28) // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x31 // .............................................*....................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v24, v1 // ................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // .................................................*................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v25, v1 // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v17, v2 // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v24, v9, v0 // ............................................................*........................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v17, v10, v17, v0 // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v11, v0 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v26, v1 // .................................................*................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v18, v2 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v27, v1 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v19, v2 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v18, v8, v18, v0 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v26, v26, v9, v0 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v10, v19, v0 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v27, v27, v11, v0 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v28, v1 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v20, v2 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v29, v1 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v21, v2 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v20, v8, v20, v0 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v28, v28, v9, v0 // ............................................................*........................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v21, v10, v21, v0 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v29, v29, v11, v0 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v30, v1 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v9, v22, v2 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v31, v1 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v23, v2 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v8, v22, v0 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v30, v9, v0 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v23, v10, v23, v0 // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... + // addi x7, x11, _MASK_01014545*2 // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + // addi x28, x11, _MASK_23236767*2 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. + // li x31, 0x33 // .......................*............................................................................................................................................................................................................................................................................................................................................................................. + // vle16.v v1, (x7) // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... + // vle16.v v2, (x28) // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x31 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v20, v1 // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v28, v1 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v24, v2 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v20, v9, v0 // .................................................................................*................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v10, v24, v0 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v28, v28, v11, v0 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v21, v1 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v17, v2 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ + // vrgather.vv v10, v29, v1 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v25, v2 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v8, v17, v0 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v21, v21, v9, v0 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v10, v25, v0 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v29, v29, v11, v0 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... + // addi x16, x11, _ZETAS_EXP_1TO6_P0_L3*2 // .................................*................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v22, v1 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v18, v2 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v30, v1 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v26, v2 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v18, v8, v18, v0 // .................................................................*................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v22, v9, v0 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v10, v26, v0 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v30, v11, v0 // .............................................................................*....................................................................................................................................................................................................................................................................................................................... + // vl2re16.v v4, (x16) // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. + // addi x16, x16, 8*2*2 // .................................*................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v23, v1 // .................................................................*................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v19, v2 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v31, v1 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v27, v2 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v19, v8, v19, v0 // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v23, v23, v9, v0 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v10, v27, v0 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v31, v31, v11, v0 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... + // vmul.vv v8, v18, v4 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v9, v22, v4 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vmul.vv v10, v26, v4 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... + // vmul.vv v11, v30, v4 // .................................................................................*................................................................................................................................................................................................................................................................................................................... + // vmul.vv v12, v19, v4 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ + // vmul.vv v13, v23, v4 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmul.vv v14, v27, v4 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... + // vmul.vv v15, v31, v4 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v18, v18, v5 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v22, v22, v5 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v26, v26, v5 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vmulh.vv v30, v30, v5 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. + // vmulh.vv v19, v19, v5 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v23, v23, v5 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... + // vmulh.vv v27, v27, v5 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v31, v31, v5 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmulh.vx v8, v8, x5 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v9, v9, x5 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v11, x5 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v13, x5 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ + // vmulh.vx v14, v14, x5 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ + // vmulh.vx v15, v15, x5 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. + // vsub.vv v8, v18, v8 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ + // vsub.vv v9, v22, v9 // .............................................................................*....................................................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v26, v10 // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... + // vsub.vv v11, v30, v11 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v19, v12 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. + // vsub.vv v13, v23, v13 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... + // vsub.vv v14, v27, v14 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vsub.vv v15, v31, v15 // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... + // vsub.vv v18, v16, v8 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. + // vsub.vv v22, v20, v9 // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v24, v10 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v11 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... + // vsub.vv v19, v17, v12 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vsub.vv v23, v21, v13 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ + // vsub.vv v27, v25, v14 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ + // vsub.vv v31, v29, v15 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v8 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ + // vadd.vv v20, v20, v9 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ + // vadd.vv v24, v24, v10 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v11 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vadd.vv v17, v17, v12 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vadd.vv v21, v21, v13 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. + // vadd.vv v25, v25, v14 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v15 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... + // addi x7, x11, _MASK_10325476*2 // .......................................*............................................................................................................................................................................................................................................................................................................................................................. + // li x31, 0x55 // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + // vle16.v v1, (x7) // .................................................................................................*................................................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x31 // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v18, v1 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v1 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v26, v1 // .................................................................................................................................*................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v24, v1 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. + // vmerge.vvm v18, v18, v9, v0 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ + // vmerge.vvm v24, v10, v24, v0 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. + // vmerge.vvm v26, v26, v11, v0 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v19, v1 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v17, v1 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v27, v1 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v25, v1 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ + // vmerge.vvm v17, v8, v17, v0 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v19, v9, v0 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ + // vmerge.vvm v25, v10, v25, v0 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ + // vmerge.vvm v27, v27, v11, v0 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... + // vl2re16.v v4, (x16) // ...................................................................................................*................................................................................................................................................................................................................................................................................................. + // addi x16, x16, 8*2*2 // ...................................................................................................*................................................................................................................................................................................................................................................................................................. + // vrgather.vv v8, v22, v1 // ...................................................................................................................................................*................................................................................................................................................................................................................................................. + // vrgather.vv v9, v20, v1 // ............................................................................................................................................*........................................................................................................................................................................................................................................................ + // vrgather.vv v10, v30, v1 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ + // vrgather.vv v11, v28, v1 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v8, v20, v0 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... + // vmerge.vvm v22, v22, v9, v0 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... + // vmerge.vvm v28, v10, v28, v0 // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v30, v11, v0 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v23, v1 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ + // vrgather.vv v9, v21, v1 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v31, v1 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v29, v1 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... + // vmerge.vvm v21, v8, v21, v0 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... + // vmerge.vvm v23, v23, v9, v0 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v10, v29, v0 // .................................................................................................................*................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vmul.vv v8, v17, v4 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... + // vmul.vv v9, v19, v4 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ + // vmul.vv v10, v21, v4 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... + // vmul.vv v11, v23, v4 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vmul.vv v12, v25, v4 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... + // vmul.vv v13, v27, v4 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ + // vmul.vv v14, v29, v4 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. + // vmul.vv v15, v31, v4 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. + // vmulh.vv v17, v17, v5 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... + // vmulh.vv v19, v19, v5 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vmulh.vv v21, v21, v5 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... + // vmulh.vv v23, v23, v5 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmulh.vv v25, v25, v5 // .................................................................................................................*................................................................................................................................................................................................................................................................................... + // vmulh.vv v27, v27, v5 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmulh.vv v29, v29, v5 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. + // vmulh.vv v31, v31, v5 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ + // vmulh.vx v9, v9, x5 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ + // vmulh.vx v11, v11, x5 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vmulh.vx v12, v12, x5 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vmulh.vx v13, v13, x5 // .................................................................................................................................*................................................................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. + // vmulh.vx v15, v15, x5 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vsub.vv v8, v17, v8 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vsub.vv v9, v19, v9 // .......................................................................................................................................*............................................................................................................................................................................................................................................................. + // vsub.vv v10, v21, v10 // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... + // vsub.vv v11, v23, v11 // .............................................................................................................................................*....................................................................................................................................................................................................................................................... + // vsub.vv v12, v25, v12 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. + // vsub.vv v13, v27, v13 // .............................................................................................................................................*....................................................................................................................................................................................................................................................... + // vsub.vv v14, v29, v14 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... + // vsub.vv v15, v31, v15 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vsub.vv v17, v16, v8 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vsub.vv v19, v18, v9 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... + // vsub.vv v21, v20, v10 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v11 // ........................................................................................................................................................*............................................................................................................................................................................................................................................ + // vsub.vv v25, v24, v12 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ + // vsub.vv v27, v26, v13 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. + // vsub.vv v29, v28, v14 // .................................................................................................................................................*................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v15 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v8 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... + // vadd.vv v18, v18, v9 // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... + // vadd.vv v20, v20, v10 // .................................................................................................................................................................*................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v11 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. + // vadd.vv v24, v24, v12 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... + // vadd.vv v26, v26, v13 // .................................................................................................................................................*................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v14 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v15 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... + // vl4re16.v v0, (x16) // .......................................................................................................................................*............................................................................................................................................................................................................................................................. + // addi x16, x16, 8*4*2 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ + // vmul.vv v8, v24, v0 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vmul.vv v9, v26, v0 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... + // vmul.vv v10, v28, v0 // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. + // vmul.vv v11, v30, v0 // .........................................................................................................................................*........................................................................................................................................................................................................................................................... + // vmul.vv v12, v25, v2 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. + // vmul.vv v13, v27, v2 // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vmul.vv v14, v29, v2 // ........................................................................................................................................................*............................................................................................................................................................................................................................................ + // vmul.vv v15, v31, v2 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... + // vmulh.vv v24, v24, v1 // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... + // vmulh.vv v26, v26, v1 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... + // vmulh.vv v28, v28, v1 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ + // vmulh.vv v30, v30, v1 // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... + // vmulh.vv v25, v25, v3 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... + // vmulh.vv v27, v27, v3 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... + // vmulh.vv v29, v29, v3 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... + // vmulh.vv v31, v31, v3 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ + // vmulh.vx v9, v9, x5 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vmulh.vx v11, v11, x5 // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... + // vmulh.vx v13, v13, x5 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ + // vmulh.vx v14, v14, x5 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... + // vmulh.vx v15, v15, x5 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... + // vsub.vv v8, v24, v8 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... + // vsub.vv v9, v26, v9 // .................................................................................................................................................................................................*................................................................................................................................................................................................... + // vsub.vv v10, v28, v10 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... + // vsub.vv v11, v30, v11 // ...................................................................................................................................................*................................................................................................................................................................................................................................................. + // vsub.vv v12, v25, v12 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... + // vsub.vv v13, v27, v13 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vsub.vv v14, v29, v14 // ................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vsub.vv v15, v31, v15 // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... + // vsub.vv v24, v16, v8 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vsub.vv v26, v18, v9 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... + // vsub.vv v28, v20, v10 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. + // vsub.vv v30, v22, v11 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... + // vsub.vv v25, v17, v12 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... + // vsub.vv v27, v19, v13 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ + // vsub.vv v29, v21, v14 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vsub.vv v31, v23, v15 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ + // vadd.vv v16, v16, v8 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ + // vadd.vv v18, v18, v9 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. + // vadd.vv v20, v20, v10 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ + // vadd.vv v22, v22, v11 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. + // vadd.vv v17, v17, v12 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vadd.vv v19, v19, v13 // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vadd.vv v21, v21, v14 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. + // vadd.vv v23, v23, v15 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... + // vl4re16.v v4, (x16) // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. + // addi x14, x10, (0*128)*2 // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. + // addi x15, x10, (64+0*128)*2 // .................................................................................................*................................................................................................................................................................................................................................................................................................... + // vmul.vv v8, v20, v4 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vmul.vv v9, v22, v4 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. + // vmul.vv v12, v28, v5 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... + // vmul.vv v13, v30, v5 // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmul.vx v8, v8, x6 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... + // vmul.vx v9, v9, x6 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ + // vmul.vx v12, v12, x6 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... + // vmul.vx v13, v13, x6 // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmulh.vv v20, v20, v4 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ + // vmulh.vv v22, v22, v4 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... + // vmulh.vv v28, v28, v5 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... + // vmulh.vv v30, v30, v5 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vmulh.vx v9, v9, x5 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... + // vmulh.vx v13, v13, x5 // ....................................................................................................................................................................................................*................................................................................................................................................................................................ + // vsub.vv v8, v20, v8 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ + // vsub.vv v9, v22, v9 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... + // vsub.vv v12, v28, v12 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... + // vsub.vv v13, v30, v13 // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vsub.vv v10, v16, v8 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vsub.vv v11, v18, v9 // .............................................................................................................................................................................................................*....................................................................................................................................................................................... + // vsub.vv v14, v24, v12 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ + // vsub.vv v15, v26, v13 // .............................................................................................................................................................................................................*....................................................................................................................................................................................... + // vadd.vv v8, v16, v8 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... + // vadd.vv v9, v18, v9 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... + // vadd.vv v12, v24, v12 // ....................................................................................................................................................................................................*................................................................................................................................................................................................ + // vadd.vv v13, v26, v13 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ + // vs8r.v v8, (x14) // .................................................................................................................................................................................................................*................................................................................................................................................................................... + // vmul.vv v8, v21, v6 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... + // vmul.vv v9, v23, v6 // .................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmul.vv v12, v29, v7 // .................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmul.vv v13, v31, v7 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... + // vmul.vx v8, v8, x6 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. + // vmul.vx v9, v9, x6 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. + // vmul.vx v12, v12, x6 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. + // vmul.vx v13, v13, x6 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. + // vmulh.vv v21, v21, v6 // .................................................................................................................................................................................................*................................................................................................................................................................................................... + // vmulh.vv v23, v23, v6 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... + // vmulh.vv v29, v29, v7 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ + // vmulh.vv v31, v31, v7 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vmulh.vx v9, v9, x5 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... + // vmulh.vx v13, v13, x5 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. + // vsub.vv v8, v21, v8 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vsub.vv v9, v23, v9 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ + // vsub.vv v12, v29, v12 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ + // vsub.vv v13, v31, v13 // .........................................................................................................................................................................................................*........................................................................................................................................................................................... + // vsub.vv v10, v17, v8 // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... + // vsub.vv v11, v19, v9 // ................................................................................................................................................................................................................*.................................................................................................................................................................................... + // vsub.vv v14, v25, v12 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vsub.vv v15, v27, v13 // ................................................................................................................................................................................................................*.................................................................................................................................................................................... + // vadd.vv v8, v17, v8 // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... + // vadd.vv v9, v19, v9 // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... + // vadd.vv v12, v25, v12 // .........................................................................................................................................................................................................*........................................................................................................................................................................................... + // vadd.vv v13, v27, v13 // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... + // vs8r.v v8, (x15) // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. + // li x17, 8*8 // .........................................................................................................................................*........................................................................................................................................................................................................................................................... + // addi x16, x11, _ZETAS_EXP_1TO6_P1_L1*2 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ + // vsetvli x17, x17, e16, m8, tu, mu // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. + // addi x14, x10, (1*128)*2 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... + // addi x15, x10, (64+1*128)*2 // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... + // lh x28, 0*2(x16) // ............................................................................................................................................*........................................................................................................................................................................................................................................................ + // lh x7, 1*2(x16) // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... + // vle16.v v16, (x14) // ...................................................................................................................................................................................................................*................................................................................................................................................................................. + // vle16.v v24, (x15) // ...................................................................................................................................................................................................................*................................................................................................................................................................................. + // vmul.vx v0, v24, x28 // ....................................................................................................................................................................................................................*................................................................................................................................................................................ + // vmulh.vx v8, v24, x7 // ....................................................................................................................................................................................................................*................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... + // vsub.vv v0, v8, v0 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... + // vsub.vv v24, v16, v0 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. + // vadd.vv v16, v16, v0 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. + // li x17, 8*4 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... + // lh x28, 2*2(x16) // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. + // lh x7, 3*2(x16) // ................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vsetvli x17, x17, e16, m4, tu, mu // ........................................................................................................................................................................................................................*............................................................................................................................................................................ + // lh x30, 4*2(x16) // .................................................................................................................................................................*................................................................................................................................................................................................................................... + // lh x29, 5*2(x16) // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... + // vmul.vx v0, v20, x28 // .........................................................................................................................................................................................................................*........................................................................................................................................................................... + // vmul.vx v8, v28, x30 // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... + // vmulh.vx v4, v20, x7 // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... + // vmulh.vx v12, v28, x29 // .........................................................................................................................................................................................................................*........................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ............................................................................................................................................................................................................................*........................................................................................................................................................................ + // vsub.vv v0, v4, v0 // ............................................................................................................................................................................................................................*........................................................................................................................................................................ + // vsub.vv v8, v12, v8 // .............................................................................................................................................................................................................................*....................................................................................................................................................................... + // vsub.vv v20, v16, v0 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... + // vsub.vv v28, v24, v8 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... + // vadd.vv v24, v24, v8 // .............................................................................................................................................................................................................................*....................................................................................................................................................................... + // vsetivli x17, 8, e16, m1, tu, mu // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... + // addi x7, x11, _MASK_01230123*2 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... + // addi x28, x11, _MASK_45674567*2 // ............................................................................................................................................................*........................................................................................................................................................................................................................................ + // li x31, 0x0f // ............................................................................................................................................................*........................................................................................................................................................................................................................................ + // vle16.v v1, (x7) // .................................................................................................................................................................................................................................*................................................................................................................................................................... + // vle16.v v2, (x28) // .................................................................................................................................................................................................................................*................................................................................................................................................................... + // vmv.s.x v0, x31 // ................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vrgather.vv v8, v24, v1 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. + // vrgather.vv v10, v25, v1 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. + // vrgather.vv v11, v17, v2 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vmerge.vvm v24, v24, v9, v0 // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. + // vmerge.vvm v17, v10, v17, v0 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. + // vmerge.vvm v25, v25, v11, v0 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ + // vrgather.vv v8, v26, v1 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ + // vrgather.vv v9, v18, v2 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vrgather.vv v10, v27, v1 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. + // vrgather.vv v11, v19, v2 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... + // vmerge.vvm v18, v8, v18, v0 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... + // vmerge.vvm v26, v26, v9, v0 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ + // vmerge.vvm v19, v10, v19, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... + // vrgather.vv v8, v28, v1 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ + // vrgather.vv v9, v20, v2 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. + // vrgather.vv v10, v29, v1 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... + // vrgather.vv v11, v21, v2 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... + // vmerge.vvm v20, v8, v20, v0 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ + // vmerge.vvm v28, v28, v9, v0 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... + // vmerge.vvm v21, v10, v21, v0 // .................................................................................................................................................................................................................................................*................................................................................................................................................... + // vmerge.vvm v29, v29, v11, v0 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... + // vrgather.vv v8, v30, v1 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... + // vrgather.vv v9, v22, v2 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vrgather.vv v10, v31, v1 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... + // vrgather.vv v11, v23, v2 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... + // vmerge.vvm v22, v8, v22, v0 // ................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vmerge.vvm v30, v30, v9, v0 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... + // vmerge.vvm v23, v10, v23, v0 // .................................................................................................................................................................................................................................................*................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ + // addi x7, x11, _MASK_01014545*2 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... + // addi x28, x11, _MASK_23236767*2 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... + // li x31, 0x33 // .................................................................................................................................................................................................................*................................................................................................................................................................................... + // vle16.v v1, (x7) // ................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vle16.v v2, (x28) // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vmv.s.x v0, x31 // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vrgather.vv v8, v20, v1 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... + // vrgather.vv v9, v16, v2 // .........................................................................................................................................................................................................................................................................*........................................................................................................................... + // vrgather.vv v10, v28, v1 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. + // vrgather.vv v11, v24, v2 // .................................................................................................................................................................................................................................................................................*................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ + // vmerge.vvm v20, v20, v9, v0 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... + // vmerge.vvm v24, v10, v24, v0 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... + // vmerge.vvm v28, v28, v11, v0 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. + // vrgather.vv v8, v21, v1 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vrgather.vv v9, v17, v2 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ + // vrgather.vv v10, v29, v1 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. + // vrgather.vv v11, v25, v2 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vmerge.vvm v17, v8, v17, v0 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... + // vmerge.vvm v21, v21, v9, v0 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vmerge.vvm v25, v10, v25, v0 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ + // vmerge.vvm v29, v29, v11, v0 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. + // addi x16, x11, _ZETAS_EXP_1TO6_P1_L3*2 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. + // vrgather.vv v8, v22, v1 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... + // vrgather.vv v9, v18, v2 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ + // vrgather.vv v10, v30, v1 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ + // vrgather.vv v11, v26, v2 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... + // vmerge.vvm v18, v8, v18, v0 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... + // vmerge.vvm v22, v22, v9, v0 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. + // vmerge.vvm v26, v10, v26, v0 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vmerge.vvm v30, v30, v11, v0 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. + // vl2re16.v v4, (x16) // .....................................................................................................................................................................................................................................................*............................................................................................................................................... + // addi x16, x16, 8*2*2 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. + // vrgather.vv v8, v23, v1 // .....................................................................................................................................................................................................................................................*............................................................................................................................................... + // vrgather.vv v9, v19, v2 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. + // vrgather.vv v10, v31, v1 // .............................................................................................................................................................................................................................................................*....................................................................................................................................... + // vrgather.vv v11, v27, v2 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vmerge.vvm v19, v8, v19, v0 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vmerge.vvm v23, v23, v9, v0 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ + // vmerge.vvm v27, v10, v27, v0 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. + // vmul.vv v8, v18, v4 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ + // vmul.vv v9, v22, v4 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. + // vmul.vv v10, v26, v4 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ + // vmul.vv v11, v30, v4 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... + // vmul.vv v12, v19, v4 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... + // vmul.vv v13, v23, v4 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vmul.vv v14, v27, v4 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vmul.vv v15, v31, v4 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... + // vmulh.vv v18, v18, v5 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... + // vmulh.vv v22, v22, v5 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ + // vmulh.vv v26, v26, v5 // .............................................................................................................................................................................................................................................................*....................................................................................................................................... + // vmulh.vv v30, v30, v5 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... + // vmulh.vv v19, v19, v5 // .........................................................................................................................................................................................................................................................................*........................................................................................................................... + // vmulh.vv v23, v23, v5 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. + // vmulh.vv v27, v27, v5 // .................................................................................................................................................................................................................................................................*................................................................................................................................... + // vmulh.vv v31, v31, v5 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. + // vmulh.vx v8, v8, x5 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vmulh.vx v9, v9, x5 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... + // vmulh.vx v10, v10, x5 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... + // vmulh.vx v11, v11, x5 // ........................................................................................................................................................................................................................................................................*............................................................................................................................ + // vmulh.vx v12, v12, x5 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ + // vmulh.vx v13, v13, x5 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ + // vmulh.vx v14, v14, x5 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vmulh.vx v15, v15, x5 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... + // vsub.vv v8, v18, v8 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vsub.vv v9, v22, v9 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... + // vsub.vv v10, v26, v10 // .................................................................................................................................................................................................................................................................*................................................................................................................................... + // vsub.vv v11, v30, v11 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... + // vsub.vv v12, v19, v12 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ + // vsub.vv v13, v23, v13 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... + // vsub.vv v14, v27, v14 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. + // vsub.vv v15, v31, v15 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... + // vsub.vv v18, v16, v8 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vsub.vv v22, v20, v9 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... + // vsub.vv v26, v24, v10 // .................................................................................................................................................................................................................................................................................*................................................................................................................... + // vsub.vv v30, v28, v11 // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vsub.vv v19, v17, v12 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vsub.vv v23, v21, v13 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... + // vsub.vv v27, v25, v14 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vsub.vv v31, v29, v15 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ + // vadd.vv v16, v16, v8 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... + // vadd.vv v20, v20, v9 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ + // vadd.vv v24, v24, v10 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... + // vadd.vv v28, v28, v11 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... + // vadd.vv v17, v17, v12 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... + // vadd.vv v21, v21, v13 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vadd.vv v25, v25, v14 // ............................................................................................................................................................................................................................................................................................*........................................................................................................ + // vadd.vv v29, v29, v15 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. + // addi x7, x11, _MASK_10325476*2 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... + // li x31, 0x55 // ........................................................................................................................................................................................................................*............................................................................................................................................................................ + // vle16.v v1, (x7) // ........................................................................................................................................................................................................................................................................*............................................................................................................................ + // vmv.s.x v0, x31 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... + // vrgather.vv v8, v18, v1 // ........................................................................................................................................................................................................................................................................................................................*............................................................................ + // vrgather.vv v9, v16, v1 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vrgather.vv v10, v26, v1 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... + // vrgather.vv v11, v24, v1 // .................................................................................................................................................................................................................................................................................................................*................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... + // vmerge.vvm v18, v18, v9, v0 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... + // vmerge.vvm v24, v10, v24, v0 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... + // vmerge.vvm v26, v26, v11, v0 // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... + // vrgather.vv v8, v19, v1 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vrgather.vv v9, v17, v1 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... + // vrgather.vv v10, v27, v1 // ....................................................................................................................................................................................................................................................................................................*................................................................................................ + // vrgather.vv v11, v25, v1 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. + // vmerge.vvm v17, v8, v17, v0 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. + // vmerge.vvm v19, v19, v9, v0 // .................................................................................................................................................................................................................................................................................................*................................................................................................... + // vmerge.vvm v25, v10, v25, v0 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vmerge.vvm v27, v27, v11, v0 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... + // vl2re16.v v4, (x16) // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... + // addi x16, x16, 8*2*2 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vrgather.vv v8, v22, v1 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... + // vrgather.vv v9, v20, v1 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vrgather.vv v10, v30, v1 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... + // vrgather.vv v11, v28, v1 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ + // vmerge.vvm v20, v8, v20, v0 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. + // vmerge.vvm v22, v22, v9, v0 // .............................................................................................................................................................................................................................................................................................................................*....................................................................... + // vmerge.vvm v28, v10, v28, v0 // .................................................................................................................................................................................................................................................................................................................................*................................................................... + // vmerge.vvm v30, v30, v11, v0 // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... + // vrgather.vv v8, v23, v1 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... + // vrgather.vv v9, v21, v1 // ............................................................................................................................................................................................................................................................................................*........................................................................................................ + // vrgather.vv v10, v31, v1 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... + // vrgather.vv v11, v29, v1 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. + // vmerge.vvm v21, v8, v21, v0 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... + // vmerge.vvm v23, v23, v9, v0 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... + // vmerge.vvm v29, v10, v29, v0 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ + // vmul.vv v8, v17, v4 // .........................................................................................................................................................................................................................................................................................................................*........................................................................... + // vmul.vv v9, v19, v4 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vmul.vv v10, v21, v4 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... + // vmul.vv v11, v23, v4 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. + // vmul.vv v12, v25, v4 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ + // vmul.vv v13, v27, v4 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... + // vmul.vv v14, v29, v4 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... + // vmul.vv v15, v31, v4 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vmulh.vv v17, v17, v5 // .................................................................................................................................................................................................................................................................................................................................*................................................................... + // vmulh.vv v19, v19, v5 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. + // vmulh.vv v21, v21, v5 // .................................................................................................................................................................................................................................................................................................*................................................................................................... + // vmulh.vv v23, v23, v5 // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vmulh.vv v25, v25, v5 // .................................................................................................................................................................................................................................................................................................................*................................................................................... + // vmulh.vv v27, v27, v5 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. + // vmulh.vv v29, v29, v5 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vmulh.vv v31, v31, v5 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... + // vmulh.vx v8, v8, x5 // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. + // vmulh.vx v9, v9, x5 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... + // vmulh.vx v10, v10, x5 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... + // vmulh.vx v11, v11, x5 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ + // vmulh.vx v12, v12, x5 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ + // vmulh.vx v13, v13, x5 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... + // vmulh.vx v14, v14, x5 // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... + // vmulh.vx v15, v15, x5 // .......................................................................................................................................................................................................................................................................................................................*............................................................................. + // vsub.vv v8, v17, v8 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ + // vsub.vv v9, v19, v9 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ + // vsub.vv v10, v21, v10 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vsub.vv v11, v23, v11 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vsub.vv v12, v25, v12 // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vsub.vv v13, v27, v13 // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... + // vsub.vv v14, v29, v14 // ....................................................................................................................................................................................................................................................................................................................................*................................................................ + // vsub.vv v15, v31, v15 // ............................................................................................................................................................................................................................................................................................................................*........................................................................ + // vsub.vv v17, v16, v8 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... + // vsub.vv v19, v18, v9 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... + // vsub.vv v21, v20, v10 // ........................................................................................................................................................................................................................................................................................................................................................*............................................ + // vsub.vv v23, v22, v11 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... + // vsub.vv v25, v24, v12 // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... + // vsub.vv v27, v26, v13 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vsub.vv v29, v28, v14 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... + // vsub.vv v31, v30, v15 // .....................................................................................................................................................................................................................................................................................................................................*............................................................... + // vadd.vv v16, v16, v8 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... + // vadd.vv v18, v18, v9 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. + // vadd.vv v20, v20, v10 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ + // vadd.vv v22, v22, v11 // .................................................................................................................................................................................................................................................................................................................................................*................................................... + // vadd.vv v24, v24, v12 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vadd.vv v26, v26, v13 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vadd.vv v28, v28, v14 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... + // vadd.vv v30, v30, v15 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. + // vl4re16.v v0, (x16) // ...................................................................................................................................................................................................................................................................................................................................*................................................................. + // addi x16, x16, 8*4*2 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... + // vmul.vv v8, v24, v0 // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... + // vmul.vv v9, v26, v0 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vmul.vv v10, v28, v0 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. + // vmul.vv v11, v30, v0 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ + // vmul.vv v12, v25, v2 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ + // vmul.vv v13, v27, v2 // .................................................................................................................................................................................................................................................................................................................................................................................*................... + // vmul.vv v14, v29, v2 // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... + // vmul.vv v15, v31, v2 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... + // vmulh.vv v24, v24, v1 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... + // vmulh.vv v26, v26, v1 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. + // vmulh.vv v28, v28, v1 // .................................................................................................................................................................................................................................................................................................................................................*................................................... + // vmulh.vv v30, v30, v1 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ + // vmulh.vv v25, v25, v3 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ + // vmulh.vv v27, v27, v3 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. + // vmulh.vv v29, v29, v3 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... + // vmulh.vv v31, v31, v3 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... + // vmulh.vx v8, v8, x5 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. + // vmulh.vx v9, v9, x5 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ + // vmulh.vx v10, v10, x5 // ........................................................................................................................................................................................................................................................................................................................................................*............................................ + // vmulh.vx v11, v11, x5 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vmulh.vx v12, v12, x5 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. + // vmulh.vx v13, v13, x5 // .......................................................................................................................................................................................................................................................................................................................................................................................*............. + // vmulh.vx v14, v14, x5 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vmulh.vx v15, v15, x5 // .................................................................................................................................................................................................................................................................................................................................................................*................................... + // vsub.vv v8, v24, v8 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... + // vsub.vv v9, v26, v9 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. + // vsub.vv v10, v28, v10 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vsub.vv v11, v30, v11 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vsub.vv v12, v25, v12 // .................................................................................................................................................................................................................................................................................................................................................................*................................... + // vsub.vv v13, v27, v13 // .........................................................................................................................................................................................................................................................................................................................................................................................*........... + // vsub.vv v14, v29, v14 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vsub.vv v15, v31, v15 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. + // vsub.vv v24, v16, v8 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vsub.vv v26, v18, v9 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... + // vsub.vv v28, v20, v10 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... + // vsub.vv v30, v22, v11 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... + // vsub.vv v25, v17, v12 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... + // vsub.vv v27, v19, v13 // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... + // vsub.vv v29, v21, v14 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... + // vsub.vv v31, v23, v15 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... + // vadd.vv v16, v16, v8 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vadd.vv v18, v18, v9 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... + // vadd.vv v20, v20, v10 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ + // vadd.vv v22, v22, v11 // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... + // vadd.vv v17, v17, v12 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... + // vadd.vv v19, v19, v13 // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... + // vadd.vv v21, v21, v14 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ + // vadd.vv v23, v23, v15 // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vl4re16.v v4, (x16) // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... + // addi x14, x10, (1*128)*2 // ....................................................................................................................................................................................................................................................................................................*................................................................................................ + // addi x15, x10, (64+1*128)*2 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... + // vmul.vv v8, v20, v4 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ + // vmul.vv v9, v22, v4 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vmul.vv v12, v28, v5 // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... + // vmul.vv v13, v30, v5 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. + // vmul.vx v8, v8, x6 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... + // vmul.vx v9, v9, x6 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vmul.vx v12, v12, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................*................. + // vmul.vx v13, v13, x6 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... + // vmulh.vv v20, v20, v4 // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vmulh.vv v22, v22, v4 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... + // vmulh.vv v28, v28, v5 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vmulh.vv v30, v30, v5 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vmulh.vx v8, v8, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vmulh.vx v9, v9, x5 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ + // vmulh.vx v12, v12, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................*............... + // vmulh.vx v13, v13, x5 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... + // vsub.vv v8, v20, v8 // ....................................................................................................................................................................................................................................................................................................................................................................................*................ + // vsub.vv v9, v22, v9 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... + // vsub.vv v12, v28, v12 // ........................................................................................................................................................................................................................................................................................................................................................................................*............ + // vsub.vv v13, v30, v13 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ + // vsub.vv v10, v16, v8 // ........................................................................................................................................................................................................................................................................................................................................................................................*............ + // vsub.vv v11, v18, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... + // vsub.vv v14, v24, v12 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vsub.vv v15, v26, v13 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... + // vadd.vv v8, v16, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vadd.vv v9, v18, v9 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vadd.vv v12, v24, v12 // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... + // vadd.vv v13, v26, v13 // .............................................................................................................................................................................................................................................................................................................................................................................................*....... + // vs8r.v v8, (x14) // ....................................................................................................................................................................................................................................................................................................................................................................................................* + // vmul.vv v8, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vmul.vv v9, v23, v6 // ....................................................................................................................................................................................................................................................................................................................................................................................*................ + // vmul.vv v12, v29, v7 // .................................................................................................................................................................................................................................................................................................................................................................................*................... + // vmul.vv v13, v31, v7 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vmul.vx v8, v8, x6 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ + // vmul.vx v9, v9, x6 // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... + // vmul.vx v12, v12, x6 // ...................................................................................................................................................................................................................................................................................................................................................................................*................. + // vmul.vx v13, v13, x6 // .........................................................................................................................................................................................................................................................................................................................................................................................*........... + // vmulh.vv v21, v21, v6 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmulh.vv v23, v23, v6 // .......................................................................................................................................................................................................................................................................................................................................................................................*............. + // vmulh.vv v29, v29, v7 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vmulh.vv v31, v31, v7 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmulh.vx v8, v8, x5 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... + // vmulh.vx v9, v9, x5 // .............................................................................................................................................................................................................................................................................................................................................................................................*....... + // vmulh.vx v12, v12, x5 // .....................................................................................................................................................................................................................................................................................................................................................................................*............... + // vmulh.vx v13, v13, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................*........ + // vsub.vv v8, v21, v8 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ + // vsub.vv v9, v23, v9 // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... + // vsub.vv v12, v29, v12 // ............................................................................................................................................................................................................................................................................................................................................................................................*........ + // vsub.vv v13, v31, v13 // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... + // vsub.vv v10, v17, v8 // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... + // vsub.vv v11, v19, v9 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vsub.vv v14, v25, v12 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vsub.vv v15, v27, v13 // ...................................................................................................................................................................................................................................................................................................................................................................................................*. + // vadd.vv v8, v17, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... + // vadd.vv v9, v19, v9 // .................................................................................................................................................................................................................................................................................................................................................................................................*... + // vadd.vv v12, v25, v12 // ...................................................................................................................................................................................................................................................................................................................................................................................................*. + // vadd.vv v13, v27, v13 // .................................................................................................................................................................................................................................................................................................................................................................................................*... + // vs8r.v v8, (x15) // ....................................................................................................................................................................................................................................................................................................................................................................................................* + // ld x8, 0*8(x2) // ................................................................................................................................................................................................................................................................................................................................*.................................................................... + // ld x9, 1*8(x2) // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... + // ld x18, 2*8(x2) // .........................................................................................................................................................................................................................................................................................................................*........................................................................... + // ld x19, 3*8(x2) // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... + // ld x20, 4*8(x2) // ........................................................................................................................................................................................................................................................................................................................*............................................................................ + // ld x21, 5*8(x2) // ...................................................................................................................................................................................................................................................................................................................................*................................................................. + // ld x22, 6*8(x2) // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. + // ld x23, 7*8(x2) // ................................................................................................................................................................................................................................................................................................................................*.................................................................... + // ld x24, 8*8(x2) // ....................................................................................................................................................................................................................................................................................................................................*................................................................ + // ld x25, 9*8(x2) // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... + // ld x26, 10*8(x2) // .............................................................................................................................................................................................................................................................................................................................*....................................................................... + // ld x27, 11*8(x2) // .....................................................................................................................................................................................................................................................................................................................................*............................................................... + // ld x3, 12*8(x2) // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... + // ld x4, 13*8(x2) // .......................................................................................................................................................................................................................................................................................................................*............................................................................. + // ld x1, 14*8(x2) // ............................................................................................................................................................................................................................................................................................................................*........................................................................ + // addi x2, x2, 8*15 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. + + end: + + +ret \ No newline at end of file diff --git a/examples/opt/riscv/ntt_kyber/ntt_kyber_rvv_vlen128_unfolded_opt_c908_oldconfig.s b/examples/opt/riscv/ntt_kyber/ntt_kyber_rvv_vlen128_unfolded_opt_c908_oldconfig.s new file mode 100644 index 000000000..b5dc1aad4 --- /dev/null +++ b/examples/opt/riscv/ntt_kyber/ntt_kyber_rvv_vlen128_unfolded_opt_c908_oldconfig.s @@ -0,0 +1,2465 @@ +#ifndef KYBER_NTT_RVV_VLEN128_CONSTS_H +#define KYBER_NTT_RVV_VLEN128_CONSTS_H + +#define _MASK_45674567 0 +#define _MASK_01230123 8 +#define _MASK_01014545 16 +#define _MASK_23236767 24 +#define _MASK_10325476 32 +#define _REJ_UNIFORM_IDX8 40 +#define _REJ_UNIFORM_MASK_01 48 +#define _CBD2_MASK_E8_01 56 +#define _CBD2_IDX8_LOW 64 +#define _CBD2_IDX8_HIGH 72 +#define _CBD3_MASK_E8_0122 80 +#define _CBD3_IDX16_HIGH 88 +#define _CBD3_MASK_E16_1100 96 +#define _CBD3_IDX16_LOW 104 +#define _ZETAS_EXP 112 +#define _ZETAS_EXP_1TO6_P0_L1 114 +#define _ZETAS_EXP_1TO6_P0_L2 116 +#define _ZETAS_EXP_1TO6_P0_L3 120 +#define _ZETAS_EXP_1TO6_P0_L4 136 +#define _ZETAS_EXP_1TO6_P0_L5 152 +#define _ZETAS_EXP_1TO6_P0_L6 184 +#define _ZETAS_EXP_1TO6_P1_L1 216 +#define _ZETAS_EXP_1TO6_P1_L2 218 +#define _ZETAS_EXP_1TO6_P1_L3 224 +#define _ZETAS_EXP_1TO6_P1_L4 240 +#define _ZETAS_EXP_1TO6_P1_L5 256 +#define _ZETAS_EXP_1TO6_P1_L6 288 +#define _ZETAS_BASEMUL 320 +#define _ZETA_EXP_INTT_0TO5_P0_L0 448 +#define _ZETA_EXP_INTT_0TO5_P0_L1 480 +#define _ZETA_EXP_INTT_0TO5_P0_L2 512 +#define _ZETA_EXP_INTT_0TO5_P0_L3 528 +#define _ZETA_EXP_INTT_0TO5_P0_L4 544 +#define _ZETA_EXP_INTT_0TO5_P0_L5 560 +#define _ZETA_EXP_INTT_0TO5_P1_L0 568 +#define _ZETA_EXP_INTT_0TO5_P1_L1 600 +#define _ZETA_EXP_INTT_0TO5_P1_L2 632 +#define _ZETA_EXP_INTT_0TO5_P1_L3 648 +#define _ZETA_EXP_INTT_0TO5_P1_L4 664 +#define _ZETA_EXP_INTT_0TO5_P1_L5 680 +#define _ZETA_EXP_INTT_L6 682 + +#endif + +// shuffle4 +// [a0~a3, a4~a7],[a8~a11, a12~a15] -> +// [a0~a3, a8~a11],[a4~a7, a12~a15] +// shuffle2 +// [a0~a1,a2~a3,a8~a9,a10~a11],[a4~a5,a6~a7,a12~a13,a14~a15] -> +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] +// shuffle1 +// [a0~a1,a4~a5,a8~a9,a12~a13],[a2~a3,a6~a7,a10~a11,a14~a15] -> +// [a0,a2,a4,a6,a8,a10,a12,a14],[a1,a3,a5,a7,a9,a11,a13,a15] +.macro shuffle_x2 in0_0, in0_1, in1_0, in1_1, tm0_0, tm0_1, tm1_0, tm1_1, vm0, vm1 + vrgather.vv \tm0_0, \in0_1, \vm0 + vrgather.vv \tm0_1, \in0_0, \vm1 + vrgather.vv \tm1_0, \in1_1, \vm0 + vrgather.vv \tm1_1, \in1_0, \vm1 + vmerge.vvm \in0_0, \tm0_0, \in0_0, v0 + vmerge.vvm \in0_1, \in0_1, \tm0_1, v0 + vmerge.vvm \in1_0, \tm1_0, \in1_0, v0 + vmerge.vvm \in1_1, \in1_1, \tm1_1, v0 +.endm + +.macro shuffle_o_x2 ou0_0, ou0_1, ou1_0, ou1_1, in0_0, in0_1, in1_0, in1_1, vm0, vm1 + vrgather.vv \ou0_0, \in0_1, \vm0 + vrgather.vv \ou1_0, \in1_1, \vm0 + vrgather.vv \ou0_1, \in0_0, \vm1 + vrgather.vv \ou1_1, \in1_0, \vm1 + vmerge.vvm \ou0_0, \ou0_0, \in0_0, v0 + vmerge.vvm \ou1_0, \ou1_0, \in1_0, v0 + vmerge.vvm \ou0_1, \in0_1, \ou0_1, v0 + vmerge.vvm \ou1_1, \in1_1, \ou1_1, v0 +.endm + +.macro barrettRdc in, vt0, const_v, const_q + vmulh.vx \vt0, \in, \const_v + vssra.vi \vt0, \vt0, 10 + vmul.vx \vt0, \vt0, \const_q + vsub.vv \in, \in, \vt0 +.endm + +.macro barrettRdcX2 in0, in1, vt0, vt1, const_v, const_q + vmulh.vx \vt0, \in0, \const_v + vmulh.vx \vt1, \in1, \const_v + vssra.vi \vt0, \vt0, 10 + vssra.vi \vt1, \vt1, 10 + vmul.vx \vt0, \vt0, \const_q + vmul.vx \vt1, \vt1, \const_q + vsub.vv \in0, \in0, \vt0 + vsub.vv \in1, \in1, \vt1 +.endm + +.macro ct_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt0_0, \vt0_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vadd.vv \va0_0, \va0_0, \vt0_0 +.endm + +.macro ct_bfu_vx_x2 va0_0, va0_1, va1_0, va1_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xq, vt0_0, vt0_1, vt1_0, vt1_1 + vmul.vx \vt0_0, \va0_1, \xzetaqinv0 + vmul.vx \vt1_0, \va1_1, \xzetaqinv1 + vmulh.vx \vt0_1, \va0_1, \xzeta0 + vmulh.vx \vt1_1, \va1_1, \xzeta1 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vsub.vv \vt0_0, \vt0_1, \vt0_0 + vsub.vv \vt1_0, \vt1_1, \vt1_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 +.endm + +.macro ct_bfu_vv_ref_x4 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, vzeta0, vzeta1, vzeta2, vzeta3, xq, xqinv + vmul.vv \vo0_0, \va0_1, \vzeta0 + vmul.vv \vo1_0, \va1_1, \vzeta1 + vmul.vv \vo2_0, \va2_1, \vzeta2 + vmul.vv \vo3_0, \va3_1, \vzeta3 + vmul.vx \vo0_0, \vo0_0, \xqinv + vmul.vx \vo1_0, \vo1_0, \xqinv + vmul.vx \vo2_0, \vo2_0, \xqinv + vmul.vx \vo3_0, \vo3_0, \xqinv + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vx \vo0_0, \vo0_0, \xq + vmulh.vx \vo1_0, \vo1_0, \xq + vmulh.vx \vo2_0, \vo2_0, \xq + vmulh.vx \vo3_0, \vo3_0, \xq + vsub.vv \vo0_0, \va0_1, \vo0_0 + vsub.vv \vo1_0, \va1_1, \vo1_0 + vsub.vv \vo2_0, \va2_1, \vo2_0 + vsub.vv \vo3_0, \va3_1, \vo3_0 + vsub.vv \vo0_1, \va0_0, \vo0_0 + vsub.vv \vo1_1, \va1_0, \vo1_0 + vsub.vv \vo2_1, \va2_0, \vo2_0 + vsub.vv \vo3_1, \va3_0, \vo3_0 + vadd.vv \vo0_0, \va0_0, \vo0_0 + vadd.vv \vo1_0, \va1_0, \vo1_0 + vadd.vv \vo2_0, \va2_0, \vo2_0 + vadd.vv \vo3_0, \va3_0, \vo3_0 +.endm + +.macro ct_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vmul.vv \vt0_0, \va0_1, \vzetaqinv0 + vmul.vv \vt1_0, \va1_1, \vzetaqinv1 + vmul.vv \vt2_0, \va2_1, \vzetaqinv2 + vmul.vv \vt3_0, \va3_1, \vzetaqinv3 + vmul.vv \vt4_0, \va4_1, \vzetaqinv4 + vmul.vv \vt5_0, \va5_1, \vzetaqinv5 + vmul.vv \vt6_0, \va6_1, \vzetaqinv6 + vmul.vv \vt7_0, \va7_1, \vzetaqinv7 + vmulh.vv \va0_1, \va0_1, \vzeta0 + vmulh.vv \va1_1, \va1_1, \vzeta1 + vmulh.vv \va2_1, \va2_1, \vzeta2 + vmulh.vv \va3_1, \va3_1, \vzeta3 + vmulh.vv \va4_1, \va4_1, \vzeta4 + vmulh.vv \va5_1, \va5_1, \vzeta5 + vmulh.vv \va6_1, \va6_1, \vzeta6 + vmulh.vv \va7_1, \va7_1, \vzeta7 + vmulh.vx \vt0_0, \vt0_0, \xq + vmulh.vx \vt1_0, \vt1_0, \xq + vmulh.vx \vt2_0, \vt2_0, \xq + vmulh.vx \vt3_0, \vt3_0, \xq + vmulh.vx \vt4_0, \vt4_0, \xq + vmulh.vx \vt5_0, \vt5_0, \xq + vmulh.vx \vt6_0, \vt6_0, \xq + vmulh.vx \vt7_0, \vt7_0, \xq + vsub.vv \vt0_0, \va0_1, \vt0_0 + vsub.vv \vt1_0, \va1_1, \vt1_0 + vsub.vv \vt2_0, \va2_1, \vt2_0 + vsub.vv \vt3_0, \va3_1, \vt3_0 + vsub.vv \vt4_0, \va4_1, \vt4_0 + vsub.vv \vt5_0, \va5_1, \vt5_0 + vsub.vv \vt6_0, \va6_1, \vt6_0 + vsub.vv \vt7_0, \va7_1, \vt7_0 + vsub.vv \va0_1, \va0_0, \vt0_0 + vsub.vv \va1_1, \va1_0, \vt1_0 + vsub.vv \va2_1, \va2_0, \vt2_0 + vsub.vv \va3_1, \va3_0, \vt3_0 + vsub.vv \va4_1, \va4_0, \vt4_0 + vsub.vv \va5_1, \va5_0, \vt5_0 + vsub.vv \va6_1, \va6_0, \vt6_0 + vsub.vv \va7_1, \va7_0, \vt7_0 + vadd.vv \va0_0, \va0_0, \vt0_0 + vadd.vv \va1_0, \va1_0, \vt1_0 + vadd.vv \va2_0, \va2_0, \vt2_0 + vadd.vv \va3_0, \va3_0, \vt3_0 + vadd.vv \va4_0, \va4_0, \vt4_0 + vadd.vv \va5_0, \va5_0, \vt5_0 + vadd.vv \va6_0, \va6_0, \vt6_0 + vadd.vv \va7_0, \va7_0, \vt7_0 +.endm + +.macro gs_bfu_vx va0_0, va0_1, xzeta0, xzetaqinv0, xq, vt0_0, vt0_1 + vsub.vv \vt0_0, \va0_0, \va0_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vmul.vx \va0_1, \vt0_0, \xzetaqinv0 + vmulh.vx \vt0_1, \vt0_0, \xzeta0 + vmulh.vx \va0_1, \va0_1, \xq + vsub.vv \va0_1, \vt0_1, \va0_1 +.endm + +.macro gs_bfu_vx_x8 vo0_0, vo0_1, vo1_0, vo1_1, vo2_0, vo2_1, vo3_0, vo3_1, vo4_0, vo4_1, vo5_0, vo5_1, vo6_0, vo6_1, vo7_0, vo7_1, va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, xzeta0, xzetaqinv0, xzeta1, xzetaqinv1, xzeta2, xzetaqinv2, xzeta3, xzetaqinv3, xzeta4, xzetaqinv4, xzeta5, xzetaqinv5, xzeta6, xzetaqinv6, xzeta7, xzetaqinv7, xq + vsub.vv \vo0_1, \va0_0, \va0_1 + vsub.vv \vo1_1, \va1_0, \va1_1 + vsub.vv \vo2_1, \va2_0, \va2_1 + vsub.vv \vo3_1, \va3_0, \va3_1 + vsub.vv \vo4_1, \va4_0, \va4_1 + vsub.vv \vo5_1, \va5_0, \va5_1 + vsub.vv \vo6_1, \va6_0, \va6_1 + vsub.vv \vo7_1, \va7_0, \va7_1 + vadd.vv \vo0_0, \va0_0, \va0_1 + vadd.vv \vo1_0, \va1_0, \va1_1 + vadd.vv \vo2_0, \va2_0, \va2_1 + vadd.vv \vo3_0, \va3_0, \va3_1 + vadd.vv \vo4_0, \va4_0, \va4_1 + vadd.vv \vo5_0, \va5_0, \va5_1 + vadd.vv \vo6_0, \va6_0, \va6_1 + vadd.vv \vo7_0, \va7_0, \va7_1 + vmul.vx \va0_1, \vo0_1, \xzetaqinv0 + vmul.vx \va1_1, \vo1_1, \xzetaqinv1 + vmul.vx \va2_1, \vo2_1, \xzetaqinv2 + vmul.vx \va3_1, \vo3_1, \xzetaqinv3 + vmul.vx \va4_1, \vo4_1, \xzetaqinv4 + vmul.vx \va5_1, \vo5_1, \xzetaqinv5 + vmul.vx \va6_1, \vo6_1, \xzetaqinv6 + vmul.vx \va7_1, \vo7_1, \xzetaqinv7 + vmulh.vx \vo0_1, \vo0_1, \xzeta0 + vmulh.vx \vo1_1, \vo1_1, \xzeta1 + vmulh.vx \vo2_1, \vo2_1, \xzeta2 + vmulh.vx \vo3_1, \vo3_1, \xzeta3 + vmulh.vx \vo4_1, \vo4_1, \xzeta4 + vmulh.vx \vo5_1, \vo5_1, \xzeta5 + vmulh.vx \vo6_1, \vo6_1, \xzeta6 + vmulh.vx \vo7_1, \vo7_1, \xzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \vo0_1, \vo0_1, \va0_1 + vsub.vv \vo1_1, \vo1_1, \va1_1 + vsub.vv \vo2_1, \vo2_1, \va2_1 + vsub.vv \vo3_1, \vo3_1, \va3_1 + vsub.vv \vo4_1, \vo4_1, \va4_1 + vsub.vv \vo5_1, \vo5_1, \va5_1 + vsub.vv \vo6_1, \vo6_1, \va6_1 + vsub.vv \vo7_1, \vo7_1, \va7_1 +.endm + +.macro gs_bfu_vv_ref_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzeta1, vzeta2, vzeta3, vzeta4, vzeta5, vzeta6, vzeta7, xq, xqinv, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzeta0 + vmul.vv \va1_1, \vt1_0, \vzeta1 + vmul.vv \va2_1, \vt2_0, \vzeta2 + vmul.vv \va3_1, \vt3_0, \vzeta3 + vmul.vv \va4_1, \vt4_0, \vzeta4 + vmul.vv \va5_1, \vt5_0, \vzeta5 + vmul.vv \va6_1, \vt6_0, \vzeta6 + vmul.vv \va7_1, \vt7_0, \vzeta7 + vmul.vx \va0_1, \va0_1, \xqinv + vmul.vx \va1_1, \va1_1, \xqinv + vmul.vx \va2_1, \va2_1, \xqinv + vmul.vx \va3_1, \va3_1, \xqinv + vmul.vx \va4_1, \va4_1, \xqinv + vmul.vx \va5_1, \va5_1, \xqinv + vmul.vx \va6_1, \va6_1, \xqinv + vmul.vx \va7_1, \va7_1, \xqinv + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro gs_bfu_vv_x8 va0_0, va0_1, va1_0, va1_1, va2_0, va2_1, va3_0, va3_1, va4_0, va4_1, va5_0, va5_1, va6_0, va6_1, va7_0, va7_1, vzeta0, vzetaqinv0, vzeta1, vzetaqinv1, vzeta2, vzetaqinv2, vzeta3, vzetaqinv3, vzeta4, vzetaqinv4, vzeta5, vzetaqinv5, vzeta6, vzetaqinv6, vzeta7, vzetaqinv7, xq, vt0_0, vt1_0, vt2_0, vt3_0, vt4_0, vt5_0, vt6_0, vt7_0 + vsub.vv \vt0_0, \va0_0, \va0_1 + vsub.vv \vt1_0, \va1_0, \va1_1 + vsub.vv \vt2_0, \va2_0, \va2_1 + vsub.vv \vt3_0, \va3_0, \va3_1 + vsub.vv \vt4_0, \va4_0, \va4_1 + vsub.vv \vt5_0, \va5_0, \va5_1 + vsub.vv \vt6_0, \va6_0, \va6_1 + vsub.vv \vt7_0, \va7_0, \va7_1 + vadd.vv \va0_0, \va0_0, \va0_1 + vadd.vv \va1_0, \va1_0, \va1_1 + vadd.vv \va2_0, \va2_0, \va2_1 + vadd.vv \va3_0, \va3_0, \va3_1 + vadd.vv \va4_0, \va4_0, \va4_1 + vadd.vv \va5_0, \va5_0, \va5_1 + vadd.vv \va6_0, \va6_0, \va6_1 + vadd.vv \va7_0, \va7_0, \va7_1 + vmul.vv \va0_1, \vt0_0, \vzetaqinv0 + vmul.vv \va1_1, \vt1_0, \vzetaqinv1 + vmul.vv \va2_1, \vt2_0, \vzetaqinv2 + vmul.vv \va3_1, \vt3_0, \vzetaqinv3 + vmul.vv \va4_1, \vt4_0, \vzetaqinv4 + vmul.vv \va5_1, \vt5_0, \vzetaqinv5 + vmul.vv \va6_1, \vt6_0, \vzetaqinv6 + vmul.vv \va7_1, \vt7_0, \vzetaqinv7 + vmulh.vv \vt0_0, \vt0_0, \vzeta0 + vmulh.vv \vt1_0, \vt1_0, \vzeta1 + vmulh.vv \vt2_0, \vt2_0, \vzeta2 + vmulh.vv \vt3_0, \vt3_0, \vzeta3 + vmulh.vv \vt4_0, \vt4_0, \vzeta4 + vmulh.vv \vt5_0, \vt5_0, \vzeta5 + vmulh.vv \vt6_0, \vt6_0, \vzeta6 + vmulh.vv \vt7_0, \vt7_0, \vzeta7 + vmulh.vx \va0_1, \va0_1, \xq + vmulh.vx \va1_1, \va1_1, \xq + vmulh.vx \va2_1, \va2_1, \xq + vmulh.vx \va3_1, \va3_1, \xq + vmulh.vx \va4_1, \va4_1, \xq + vmulh.vx \va5_1, \va5_1, \xq + vmulh.vx \va6_1, \va6_1, \xq + vmulh.vx \va7_1, \va7_1, \xq + vsub.vv \va0_1, \vt0_0, \va0_1 + vsub.vv \va1_1, \vt1_0, \va1_1 + vsub.vv \va2_1, \vt2_0, \va2_1 + vsub.vv \va3_1, \vt3_0, \va3_1 + vsub.vv \va4_1, \vt4_0, \va4_1 + vsub.vv \va5_1, \vt5_0, \va5_1 + vsub.vv \va6_1, \vt6_0, \va6_1 + vsub.vv \va7_1, \vt7_0, \va7_1 +.endm + +.macro montmul_const vr0, va0, xzeta, xzetaqinv, xq, vt0 + vmul.vx \vr0, \va0, \xzetaqinv + vmulh.vx \vt0, \va0, \xzeta + vmulh.vx \vr0, \vr0, \xq + vsub.vv \vr0, \vt0, \vr0 +.endm + +.macro montmul_x4 vr0, vr1, vr2, vr3, va0, va1, va2, va3, vb0, vb1, vb2, vb3, xq, xqinv, vt0, vt1, vt2, vt3 + vmul.vv \vr0, \va0, \vb0 + vmul.vv \vr1, \va1, \vb1 + vmul.vv \vr2, \va2, \vb2 + vmul.vv \vr3, \va3, \vb3 + vmul.vx \vr0, \vr0, \xqinv + vmul.vx \vr1, \vr1, \xqinv + vmul.vx \vr2, \vr2, \xqinv + vmul.vx \vr3, \vr3, \xqinv + vmulh.vv \vt0, \va0, \vb0 + vmulh.vv \vt1, \va1, \vb1 + vmulh.vv \vt2, \va2, \vb2 + vmulh.vv \vt3, \va3, \vb3 + vmulh.vx \vr0, \vr0, \xq + vmulh.vx \vr1, \vr1, \xq + vmulh.vx \vr2, \vr2, \xq + vmulh.vx \vr3, \vr3, \xq + vsub.vv \vr0, \vt0, \vr0 + vsub.vv \vr1, \vt1, \vr1 + vsub.vv \vr2, \vt2, \vr2 + vsub.vv \vr3, \vt3, \vr3 +.endm + +.macro ntt_rvv_level0 + li a7, 8*8 + addi a6, a1, _ZETAS_EXP*2 + vsetvli a7, a7, e16, m8, tu, mu + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[128-191] + addi a5, a0, 128*2 + vle16.v v16, (a0) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a0) + vse16.v v24, (a5) + addi a4, a0, 64*2 + addi a5, a5, 64*2 + vle16.v v16, (a4) + vle16.v v24, (a5) + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + vse16.v v16, (a4) + vse16.v v24, (a5) +.endm + +.macro ntt_rvv_level1to6 off, ZETAS_EXP_1TO6_L1, ZETAS_EXP_1TO6_L3 + li a7, 8*8 + addi a6, a1, \ZETAS_EXP_1TO6_L1*2 + vsetvli a7, a7, e16, m8, tu, mu + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + lh t3, 0*2(a6) + lh t2, 1*2(a6) + // a[0-63] & a[64-127] or a[128-191] & a[192-255] + vle16.v v16, (a4) + vle16.v v24, (a5) + // level 1 + ct_bfu_vx v16, v24, t2, t3, t0, v0, v8 + // level 2 + li a7, 8*4 + lh t3, 2*2(a6) + lh t2, 3*2(a6) + vsetvli a7, a7, e16, m4, tu, mu + lh t5, 4*2(a6) + lh t4, 5*2(a6) + ct_bfu_vx_x2 v16, v20, v24, v28, t2, t3, t4, t5, t0, v0, v4, v8, v12 + vsetivli a7, 8, e16, m1, tu, mu + // shuffle4 + addi t2, a1, _MASK_01230123*2 + addi t3, a1, _MASK_45674567*2 + li t6, 0x0f + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v24, v17, v25, v8, v9, v10, v11, v1, v2 + shuffle_x2 v18, v26, v19, v27, v8, v9, v10, v11, v1, v2 + shuffle_x2 v20, v28, v21, v29, v8, v9, v10, v11, v1, v2 + shuffle_x2 v22, v30, v23, v31, v8, v9, v10, v11, v1, v2 + // shuffle2 + addi t2, a1, _MASK_01014545*2 + addi t3, a1, _MASK_23236767*2 + li t6, 0x33 + vle16.v v1, (t2) + vle16.v v2, (t3) + vmv.s.x v0, t6 + shuffle_x2 v16, v20, v24, v28, v8, v9, v10, v11, v1, v2 + shuffle_x2 v17, v21, v25, v29, v8, v9, v10, v11, v1, v2 + addi a6, a1, \ZETAS_EXP_1TO6_L3*2 + shuffle_x2 v18, v22, v26, v30, v8, v9, v10, v11, v1, v2 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v19, v23, v27, v31, v8, v9, v10, v11, v1, v2 + // level 3 + ct_bfu_vv_x8 v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // shuffle1 + addi t2, a1, _MASK_10325476*2 + li t6, 0x55 + vle16.v v1, (t2) + vmv.s.x v0, t6 + shuffle_x2 v16, v18, v24, v26, v8, v9, v10, v11, v1, v1 + shuffle_x2 v17, v19, v25, v27, v8, v9, v10, v11, v1, v1 + vl2re16.v v4, (a6) + addi a6, a6, 8*2*2 + shuffle_x2 v20, v22, v28, v30, v8, v9, v10, v11, v1, v1 + shuffle_x2 v21, v23, v29, v31, v8, v9, v10, v11, v1, v1 + // level 4 + ct_bfu_vv_x8 v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, v5, v4, t0, v8, v9, v10, v11, v12, v13, v14, v15 + vl4re16.v v0, (a6) + addi a6, a6, 8*4*2 + // level 5 + ct_bfu_vv_x8 v16, v24, v18, v26, v20, v28, v22, v30, v17, v25, v19, v27, v21, v29, v23, v31, v1, v0, v1, v0, v1, v0, v1, v0, v3, v2, v3, v2, v3, v2, v3, v2, t0, v8, v9, v10, v11, v12, v13, v14, v15 + // level 6 + vl4re16.v v4, (a6) + addi a4, a0, (\off*128)*2 + addi a5, a0, (64+\off*128)*2 + // polynomial coefficients will be redirected to v8-v15 + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v16, v20, v18, v22, v24, v28, v26, v30, v4, v4, v5, v5, t0, t1 + vs8r.v v8, (a4) + ct_bfu_vv_ref_x4 v8, v10, v9, v11, v12, v14, v13, v15, v17, v21, v19, v23, v25, v29, v27, v31, v6, v6, v7, v7, t0, t1 + vs8r.v v8, (a5) +.endm + +.macro rej_core vr0, vf0, vt0, vidx, x0xfff, xq + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + addi a1, a1, 12 + vrgather.vv \vt0, \vf0, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vcpop.m t2, \vf0 + vcompress.vm \vr0, \vt0, \vf0 + vse16.v \vr0, (a0) + add t2, t2, t2 + add a0, a0, t2 +.endm + +.macro rej_core_x2 vr0, vr1, vf0, vf1, vt0, vt1, vidx, x0xfff, xq + addi t2, a1, 12 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + addi a1, a1, 12*2 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + + add a0, a0, t2 + vse16.v \vr1, (a0) + add a0, a0, t3 +.endm + +.macro rej_core_x4 vr0, vr1, vr2, vr3, vf0, vf1, vf2, vf3, vt0, vt1, vt2, vt3, vidx, x0xfff, xq + addi t2, a1, 12 + addi t3, a1, 24 + addi t4, a1, 36 + vsetivli a7, 16, e8, m1, tu, mu + vle8.v \vf0, (a1) + vle8.v \vf1, (t2) + vle8.v \vf2, (t3) + vle8.v \vf3, (t4) + addi a1, a1, 12*4 + vrgather.vv \vt0, \vf0, \vidx + vrgather.vv \vt1, \vf1, \vidx + vrgather.vv \vt2, \vf2, \vidx + vrgather.vv \vt3, \vf3, \vidx + vsetivli a7, 8, e16, m1, tu, mu + vsrl.vi \vt0, \vt0, 4, v0.t + vsrl.vi \vt1, \vt1, 4, v0.t + vsrl.vi \vt2, \vt2, 4, v0.t + vsrl.vi \vt3, \vt3, 4, v0.t + vand.vx \vt0, \vt0, \x0xfff + vand.vx \vt1, \vt1, \x0xfff + vand.vx \vt2, \vt2, \x0xfff + vand.vx \vt3, \vt3, \x0xfff + vmsltu.vx \vf0, \vt0, \xq + vmsltu.vx \vf1, \vt1, \xq + vmsltu.vx \vf2, \vt2, \xq + vmsltu.vx \vf3, \vt3, \xq + vcpop.m t2, \vf0 + vcpop.m t3, \vf1 + vcpop.m t4, \vf2 + vcpop.m t5, \vf3 + vcompress.vm \vr0, \vt0, \vf0 + vcompress.vm \vr1, \vt1, \vf1 + vcompress.vm \vr2, \vt2, \vf2 + vcompress.vm \vr3, \vt3, \vf3 + vse16.v \vr0, (a0) + add t2, t2, t2 + add t3, t3, t3 + add a0, a0, t2 + add t4, t4, t4 + vse16.v \vr1, (a0) + add a0, a0, t3 + vse16.v \vr2, (a0) + add a0, a0, t4 + add t5, t5, t5 + vse16.v \vr3, (a0) + add a0, a0, t5 +.endm + +.macro cbd2_core_x4 vf0_0, vf0_1, vf1_0, vf1_1, vf2_0, vf2_1, vf3_0, vf3_1, vt0_0, vt0_1, vt0_2, vt0_3, vt1_0, vt1_1, vt1_2, vt1_3, vt2_0, vt2_1, vt2_2, vt2_3, vt3_0, vt3_1, vt3_2, vt3_3, vidx_low, vidx_high, x0x55, x0x33 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 16 + addi t3, a1, 16*2 + addi t4, a1, 16*3 + vle8.v \vf0_0, (a1) + vle8.v \vf1_0, (t2) + vle8.v \vf2_0, (t3) + vle8.v \vf3_0, (t4) + addi a1, a1, 16*4 + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf3_1, \vf3_0, 1 + vand.vx \vf0_0, \vf0_0, \x0x55 + vand.vx \vf0_1, \vf0_1, \x0x55 + vand.vx \vf1_0, \vf1_0, \x0x55 + vand.vx \vf1_1, \vf1_1, \x0x55 + vand.vx \vf2_0, \vf2_0, \x0x55 + vand.vx \vf2_1, \vf2_1, \x0x55 + vand.vx \vf3_0, \vf3_0, \x0x55 + vand.vx \vf3_1, \vf3_1, \x0x55 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x33 + vand.vx \vf1_0, \vf1_0, \x0x33 + vand.vx \vf2_0, \vf2_0, \x0x33 + vand.vx \vf3_0, \vf3_0, \x0x33 + vand.vx \vf0_1, \vf0_1, \x0x33 + vand.vx \vf1_1, \vf1_1, \x0x33 + vand.vx \vf2_1, \vf2_1, \x0x33 + vand.vx \vf3_1, \vf3_1, \x0x33 + vadd.vx \vf0_0, \vf0_0, \x0x33 + vadd.vx \vf1_0, \vf1_0, \x0x33 + vadd.vx \vf2_0, \vf2_0, \x0x33 + vadd.vx \vf3_0, \vf3_0, \x0x33 + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsrl.vi \vf0_1, \vf0_0, 4 + vsrl.vi \vf1_1, \vf1_0, 4 + + vsrl.vi \vf2_1, \vf2_0, 4 + vsrl.vi \vf3_1, \vf3_0, 4 + + vand.vi \vf0_0, \vf0_0, 0xf + vand.vi \vf1_0, \vf1_0, 0xf + vand.vi \vf2_0, \vf2_0, 0xf + vand.vi \vf3_0, \vf3_0, 0xf + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vrgather.vv \vt0_0, \vf0_0, \vidx_low + vrgather.vv \vt0_1, \vf0_1, \vidx_low + vrgather.vv \vt0_2, \vf0_0, \vidx_high + vrgather.vv \vt0_3, \vf0_1, \vidx_high + vrgather.vv \vt1_0, \vf1_0, \vidx_low + vrgather.vv \vt1_1, \vf1_1, \vidx_low + vrgather.vv \vt1_2, \vf1_0, \vidx_high + vrgather.vv \vt1_3, \vf1_1, \vidx_high + vrgather.vv \vt2_0, \vf2_0, \vidx_low + vrgather.vv \vt2_1, \vf2_1, \vidx_low + vrgather.vv \vt2_2, \vf2_0, \vidx_high + vrgather.vv \vt2_3, \vf2_1, \vidx_high + vrgather.vv \vt3_0, \vf3_0, \vidx_low + vrgather.vv \vt3_1, \vf3_1, \vidx_low + vrgather.vv \vt3_2, \vf3_0, \vidx_high + vrgather.vv \vt3_3, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vt0_0, \vt0_1, v0 + vmerge.vvm \vf0_1, \vt0_2, \vt0_3, v0 + vmerge.vvm \vf1_0, \vt1_0, \vt1_1, v0 + vmerge.vvm \vf1_1, \vt1_2, \vt1_3, v0 + vmerge.vvm \vf2_0, \vt2_0, \vt2_1, v0 + vmerge.vvm \vf2_1, \vt2_2, \vt2_3, v0 + vmerge.vvm \vf3_0, \vt3_0, \vt3_1, v0 + vmerge.vvm \vf3_1, \vt3_2, \vt3_3, v0 + vsetivli a7, 16, e16, m2, tu, mu + vsext.vf2 \vt0_0, \vf0_0 + vsext.vf2 \vt0_2, \vf0_1 + vsext.vf2 \vt1_0, \vf1_0 + vsext.vf2 \vt1_2, \vf1_1 + vsext.vf2 \vt2_0, \vf2_0 + vsext.vf2 \vt2_2, \vf2_1 + vsext.vf2 \vt3_0, \vf3_0 + vsext.vf2 \vt3_2, \vf3_1 + addi t2, a0, 16*2 + addi t3, a0, 16*4 + addi t4, a0, 16*6 + vse16.v \vt0_0, (a0) + vse16.v \vt0_2, (t2) + vse16.v \vt1_0, (t3) + vse16.v \vt1_2, (t4) + addi t2, a0, 16*8 + addi t3, a0, 16*10 + addi t4, a0, 16*12 + addi t5, a0, 16*14 + vse16.v \vt2_0, (t2) + vse16.v \vt2_2, (t3) + vse16.v \vt3_0, (t4) + vse16.v \vt3_2, (t5) + addi a0, a0, 16*16 +.endm + +.macro cbd3_core_x4 vf0_0, vf0_1, vf0_2, vf0_3, vt0_0, vt0_1, vf1_0, vf1_1, vf1_2, vf1_3, vt1_0, vt1_1, vf2_0, vf2_1, vf2_2, vf2_3, vt2_0, vt2_1, vf3_0, vf3_1, vf3_2, vf3_3, vt3_0, vt3_1, vidx8_0122, vidx_low, vidx_high, x0x249, x0x6DB, x0x70000 + vsetivli a7, 16, e8, m1, tu, mu + addi t2, a1, 12 + addi t3, a1, 12*2 + addi t4, a1, 12*3 + vle8.v \vf0_1, (a1) + vle8.v \vf1_1, (t2) + vle8.v \vf2_1, (t3) + vle8.v \vf3_1, (t4) + addi a1, a1, 12*4 + vrgather.vv \vf0_0, \vf0_1, \vidx8_0122 + vrgather.vv \vf1_0, \vf1_1, \vidx8_0122 + vrgather.vv \vf2_0, \vf2_1, \vidx8_0122 + vrgather.vv \vf3_0, \vf3_1, \vidx8_0122 + vsetivli a7, 4, e32, m1, tu, mu + vsrl.vi \vf0_1, \vf0_0, 1 + vsrl.vi \vf0_2, \vf0_0, 2 + vsrl.vi \vf1_1, \vf1_0, 1 + vsrl.vi \vf1_2, \vf1_0, 2 + vsrl.vi \vf2_1, \vf2_0, 1 + vsrl.vi \vf2_2, \vf2_0, 2 + vsrl.vi \vf3_1, \vf3_0, 1 + vsrl.vi \vf3_2, \vf3_0, 2 + vand.vx \vf0_0, \vf0_0, \x0x249 + vand.vx \vf0_1, \vf0_1, \x0x249 + vand.vx \vf0_2, \vf0_2, \x0x249 + vand.vx \vf1_0, \vf1_0, \x0x249 + vand.vx \vf1_1, \vf1_1, \x0x249 + vand.vx \vf1_2, \vf1_2, \x0x249 + vand.vx \vf2_0, \vf2_0, \x0x249 + vand.vx \vf2_1, \vf2_1, \x0x249 + vand.vx \vf2_2, \vf2_2, \x0x249 + vand.vx \vf3_0, \vf3_0, \x0x249 + vand.vx \vf3_1, \vf3_1, \x0x249 + vand.vx \vf3_2, \vf3_2, \x0x249 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf0_0, \vf0_0, \vf0_2 + vadd.vv \vf1_0, \vf1_0, \vf1_2 + vadd.vv \vf2_0, \vf2_0, \vf2_2 + vadd.vv \vf3_0, \vf3_0, \vf3_2 + vsrl.vi \vf0_1, \vf0_0, 3 + vsrl.vi \vf1_1, \vf1_0, 3 + vsrl.vi \vf2_1, \vf2_0, 3 + vsrl.vi \vf3_1, \vf3_0, 3 + vadd.vx \vf0_0, \vf0_0, \x0x6DB + vadd.vx \vf1_0, \vf1_0, \x0x6DB + vadd.vx \vf2_0, \vf2_0, \x0x6DB + vadd.vx \vf3_0, \vf3_0, \x0x6DB + vsub.vv \vf0_0, \vf0_0, \vf0_1 + vsub.vv \vf1_0, \vf1_0, \vf1_1 + vsub.vv \vf2_0, \vf2_0, \vf2_1 + vsub.vv \vf3_0, \vf3_0, \vf3_1 + vsll.vi \vf0_1, \vf0_0, 10 + vsrl.vi \vf0_2, \vf0_0, 12 + vsrl.vi \vf0_3, \vf0_0, 2 + vsll.vi \vf1_1, \vf1_0, 10 + vsrl.vi \vf1_2, \vf1_0, 12 + vsrl.vi \vf1_3, \vf1_0, 2 + vsll.vi \vf2_1, \vf2_0, 10 + vsrl.vi \vf2_2, \vf2_0, 12 + vsrl.vi \vf2_3, \vf2_0, 2 + vsll.vi \vf3_1, \vf3_0, 10 + vsrl.vi \vf3_2, \vf3_0, 12 + vsrl.vi \vf3_3, \vf3_0, 2 + vand.vi \vf0_0, \vf0_0, 7 + vand.vx \vf0_1, \vf0_1, \x0x70000 + vand.vi \vf0_2, \vf0_2, 7 + vand.vx \vf0_3, \vf0_3, \x0x70000 + vand.vi \vf1_0, \vf1_0, 7 + vand.vx \vf1_1, \vf1_1, \x0x70000 + vand.vi \vf1_2, \vf1_2, 7 + vand.vx \vf1_3, \vf1_3, \x0x70000 + vand.vi \vf2_0, \vf2_0, 7 + vand.vx \vf2_1, \vf2_1, \x0x70000 + vand.vi \vf2_2, \vf2_2, 7 + vand.vx \vf2_3, \vf2_3, \x0x70000 + vand.vi \vf3_0, \vf3_0, 7 + vand.vx \vf3_1, \vf3_1, \x0x70000 + vand.vi \vf3_2, \vf3_2, 7 + vand.vx \vf3_3, \vf3_3, \x0x70000 + vadd.vv \vf0_0, \vf0_0, \vf0_1 + vadd.vv \vf0_1, \vf0_2, \vf0_3 + vadd.vv \vf1_0, \vf1_0, \vf1_1 + vadd.vv \vf1_1, \vf1_2, \vf1_3 + vadd.vv \vf2_0, \vf2_0, \vf2_1 + vadd.vv \vf2_1, \vf2_2, \vf2_3 + vadd.vv \vf3_0, \vf3_0, \vf3_1 + vadd.vv \vf3_1, \vf3_2, \vf3_3 + vsetivli a7, 8, e16, m1, tu, mu + vadd.vi \vf0_0, \vf0_0, -3 + vadd.vi \vf0_1, \vf0_1, -3 + vadd.vi \vf1_0, \vf1_0, -3 + vadd.vi \vf1_1, \vf1_1, -3 + vadd.vi \vf2_0, \vf2_0, -3 + vadd.vi \vf2_1, \vf2_1, -3 + vadd.vi \vf3_0, \vf3_0, -3 + vadd.vi \vf3_1, \vf3_1, -3 + vrgather.vv \vf0_2, \vf0_0, \vidx_low + vrgather.vv \vf0_3, \vf0_1, \vidx_low + vrgather.vv \vt0_0, \vf0_0, \vidx_high + vrgather.vv \vt0_1, \vf0_1, \vidx_high + vrgather.vv \vf1_2, \vf1_0, \vidx_low + vrgather.vv \vf1_3, \vf1_1, \vidx_low + vrgather.vv \vt1_0, \vf1_0, \vidx_high + vrgather.vv \vt1_1, \vf1_1, \vidx_high + vrgather.vv \vf2_2, \vf2_0, \vidx_low + vrgather.vv \vf2_3, \vf2_1, \vidx_low + vrgather.vv \vt2_0, \vf2_0, \vidx_high + vrgather.vv \vt2_1, \vf2_1, \vidx_high + vrgather.vv \vf3_2, \vf3_0, \vidx_low + vrgather.vv \vf3_3, \vf3_1, \vidx_low + vrgather.vv \vt3_0, \vf3_0, \vidx_high + vrgather.vv \vt3_1, \vf3_1, \vidx_high + vmerge.vvm \vf0_0, \vf0_3, \vf0_2, v0 + vmerge.vvm \vf0_1, \vt0_1, \vt0_0, v0 + vmerge.vvm \vf1_0, \vf1_3, \vf1_2, v0 + vmerge.vvm \vf1_1, \vt1_1, \vt1_0, v0 + vmerge.vvm \vf2_0, \vf2_3, \vf2_2, v0 + vmerge.vvm \vf2_1, \vt2_1, \vt2_0, v0 + vmerge.vvm \vf3_0, \vf3_3, \vf3_2, v0 + vmerge.vvm \vf3_1, \vt3_1, \vt3_0, v0 + addi t2, a0, 8*2 + addi t3, a0, 8*4 + addi t4, a0, 8*6 + vse16.v \vf0_0, (a0) + vse16.v \vf0_1, (t2) + vse16.v \vf1_0, (t3) + vse16.v \vf1_1, (t4) + addi t2, a0, 8*8 + addi t3, a0, 8*10 + addi t4, a0, 8*12 + addi t5, a0, 8*14 + vse16.v \vf2_0, (t2) + vse16.v \vf2_1, (t3) + vse16.v \vf3_0, (t4) + vse16.v \vf3_1, (t5) + addi a0, a0, 8*16 +.endm + +.macro save_regs + addi sp, sp, -8*15 + sd s0, 0*8(sp) + sd s1, 1*8(sp) + sd s2, 2*8(sp) + sd s3, 3*8(sp) + sd s4, 4*8(sp) + sd s5, 5*8(sp) + sd s6, 6*8(sp) + sd s7, 7*8(sp) + sd s8, 8*8(sp) + sd s9, 9*8(sp) + sd s10, 10*8(sp) + sd s11, 11*8(sp) + sd gp, 12*8(sp) + sd tp, 13*8(sp) + sd ra, 14*8(sp) +.endm + +.macro restore_regs + ld s0, 0*8(sp) + ld s1, 1*8(sp) + ld s2, 2*8(sp) + ld s3, 3*8(sp) + ld s4, 4*8(sp) + ld s5, 5*8(sp) + ld s6, 6*8(sp) + ld s7, 7*8(sp) + ld s8, 8*8(sp) + ld s9, 9*8(sp) + ld s10, 10*8(sp) + ld s11, 11*8(sp) + ld gp, 12*8(sp) + ld tp, 13*8(sp) + ld ra, 14*8(sp) + addi sp, sp, 8*15 +.endm + +.globl ntt_rvv_vlen128 +.align 2 +ntt_rvv_vlen128_opt_c908: + start: + // Instructions: 778 + // Expected cycles: 389 + // Expected IPC: 2.00 + // + // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------- + addi x29, x11, _MASK_01014545*2 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + li x28, 8*8 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + vsetvli x16, x28, e16, m8, tu, mu // .*................................................................................................................................................................................................................................................................................................................................................................................................... + addi x6, x11, _ZETAS_EXP_1TO6_P0_L1*2 // .*................................................................................................................................................................................................................................................................................................................................................................................................... + addi x2, x2, -8*15 // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + lh x15, 4*2(x6) // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + sd x18, 2*8(x2) // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + addi x30, x11, _ZETAS_EXP*2 // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + addi x17, x10, 128*2 // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + lh x28, 5*2(x6) // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + vle16.v v0, (x10) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + lh x18, 2*2(x6) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... + li x31, 8*4 // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + lh x12, 0*2(x30) // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + vle16.v v24, (x17) // .......*............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + sd x25, 9*8(x2) // .......*............................................................................................................................................................................................................................................................................................................................................................................................. + sd x21, 5*8(x2) // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + addi x14, x10, 64*2 // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + sd x4, 13*8(x2) // .........*........................................................................................................................................................................................................................................................................................................................................................................................... + vle16.v v16, (x14) // .........*........................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + li x7, 0x0f // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + addi x4, x11, _MASK_23236767*2 // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v8, v24, x12 // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + sd x1, 14*8(x2) // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + li x5, 3329 // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + lh x1, 1*2(x30) // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + sd x26, 10*8(x2) // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + li x30, 8*8 // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + sd x27, 11*8(x2) // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + sd x19, 3*8(x2) // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + sd x22, 6*8(x2) // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... + addi x22, x17, 64*2 // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... + sd x23, 7*8(x2) // ................*.................................................................................................................................................................................................................................................................................................................................................................................... + sd x20, 4*8(x2) // ................*.................................................................................................................................................................................................................................................................................................................................................................................... + li x20, 0x33 // .................*................................................................................................................................................................................................................................................................................................................................................................................... + sd x8, 0*8(x2) // .................*................................................................................................................................................................................................................................................................................................................................................................................... + vmulh.vx v24, v24, x1 // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + sd x9, 1*8(x2) // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. + sd x24, 8*8(x2) // ...................*................................................................................................................................................................................................................................................................................................................................................................................. + lh x13, 3*2(x6) // ...................*................................................................................................................................................................................................................................................................................................................................................................................. + vmulh.vx v8, v8, x5 // ....................*................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + lh x8, 0*2(x6) // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + lh x23, 1*2(x6) // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + li x6, -3327 // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + sd x3, 12*8(x2) // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + vsub.vv v8, v24, v8 // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v24, v0, v8 // .......................*............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v0, v0, v8 // .......................*............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v0, (x17) // ........................*............................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vle16.v v8, (x22) // ........................*............................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v24, (x10) // .........................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmul.vx v0, v8, x12 // .........................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v24, v0, x5 // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v0, v8, x1 // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v8, v0, v24 // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v0, v16, v8 // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v8, v16, v8 // ............................*........................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v8, (x22) // ............................*........................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vse16.v v0, (x14) // .............................*....................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vsetvli x1, x30, e16, m8, tu, mu // .............................*....................................................................................................................................................................................................................................................................................................................................................................... + addi x1, x10, (64+0*128)*2 // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... + vle16.v v16, (x1) // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + addi x1, x10, (0*128)*2 // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... + vle16.v v24, (x1) // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v0, v16, x23 // ................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + addi x30, x11, _ZETAS_EXP_1TO6_P0_L3*2 // ................................*.................................................................................................................................................................................................................................................................................................................................................................... + addi x16, x30, 8*2*2 // .................................*................................................................................................................................................................................................................................................................................................................................................................... + vmul.vx v8, v16, x8 // .................................*................................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v8, v8, x5 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v0, v0, v8 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v16, v24, v0 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v0, v24, v0 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsetvli x1, x31, e16, m4, tu, mu // ....................................*................................................................................................................................................................................................................................................................................................................................................................ + vmul.vx v8, v4, x18 // ....................................*................................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v4, v4, x13 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v24, v8, x5 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmul.vx v8, v20, x15 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v8, v8, x5 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v28, v20, x28 // .......................................*............................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=4 // @slothy:sew=16 + addi x14, x11, _MASK_45674567*2 // .......................................*............................................................................................................................................................................................................................................................................................................................................................. + addi x22, x11, _MASK_01230123*2 // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + addi x1, x11, _MASK_10325476*2 // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + li x21, 0x55 // .........................................*........................................................................................................................................................................................................................................................................................................................................................... + vsub.vv v8, v28, v8 // .........................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v24, v4, v24 // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v12, v16, v8 // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v28, v16, v8 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v16, v0, v24 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v24, v0, v24 // ............................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vsetivli x9, 8, e16, m1, tu, mu // ............................................*........................................................................................................................................................................................................................................................................................................................................................ + vle16.v v3, (x14) // .............................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x7 // .............................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v27, v3 // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v31, v8, v0 // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v5, (x4) // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v2, (x29) // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v6, (x30) // ................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:sew=16 + vle16.v v8, (x22) // ................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v19, v3 // .................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v15, v4, v0 // .................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v15, v8 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v16, v3 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v12, v22, v0 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v12, v8 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v1, v17, v3 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v13, v1, v0 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v1, v13, v8 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v18, v3 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v14, v13, v0 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v14, v8 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v31, v8 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v31, v24, v3 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v31, v28, v31, v0 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v28, v8 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v25, v3 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v29, v28, v0 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v29, v8 // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v26, v3 // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v3, v30, v8 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v3, v26, v0 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v30, v29, v0 // ............................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v22, v16, v0 // ............................................................*........................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v1, v17, v0 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v15, v18, v0 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v4, v19, v0 // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v11, v24, v0 // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v20, v25, v0 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v14, v27, v0 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x20 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v10, v2 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v27, v9, v0 // .................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v9, v5 // .................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v1, v10, v29, v0 // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v8, v2 // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v29, v13, v0 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v26, v13, v5 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v31, v2 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v13, v21, v0 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v21, v5 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v31, v29, v0 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v28, v2 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v29, v12, v0 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v12, v5 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v28, v29, v0 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v16, v5 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v17, v5 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v31, v18, v5 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v4, v5 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v24, v2 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v5, v19, v2 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v15, v3, v2 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v14, v2 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v3, v31, v0 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v8, v26, v0 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v15, v18, v0 // .............................................................................*....................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v11, v4, v0 // .............................................................................*....................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v14, v9, v0 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x31, x16, 8*2*2 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... + vmulh.vv v8, v26, v7 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v18, v26, v6 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v26, v22, v7 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v22, v6 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v30, v7 // .................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v30, v6 // .................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v27, v7 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v27, v6 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v11, v1, v7 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v1, v1, v6 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v30, v3, v7 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v3, v3, v6 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v4, v7 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v7, v14, v7 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v4, v4, v6 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v14, v14, v6 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v10, v16, v0 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v5, v17, v0 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v24, v28, v0 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v19, v12, v0 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v18, x5 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v10, v22, x5 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v27, x5 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v28, v1, x5 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v8, v18 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v26, v10 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v15, v27 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v11, v28 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v21, v8 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v1, v21, v8 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v19, v13, v18 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v13, v18 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v20, (x16) // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:sew=16 + addi x16, x31, 8*4*2 // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... + vsub.vv v10, v25, v27 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v13, v25, v27 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v9, x5 // .................................................................................................*................................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x15, x10, (64+0*128)*2 // .................................................................................................*................................................................................................................................................................................................................................................................................................... + vsub.vv v27, v29, v28 // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x14, x10, (0*128)*2 // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. + vadd.vv v29, v29, v28 // ...................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v3, v3, x5 // ...................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v4, x5 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v14, x5 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v31, v8 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v30, v3 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v2, v25 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v7, v14 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v16, v8 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v16, v8 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v17, v25 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v25 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v24, v3 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v3, v24, v3 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v4, v5, v14 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v14, v5, v14 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v5, (x1) // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x21 // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v22, v5 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v12, v24, v1, v0 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v1, v5 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v22, v24, v0 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v19, v5 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v18, v24, v0 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v18, v5 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v24, v19, v0 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v13, v5 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v10, v18, v0 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v10, v5 // .................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v10, v22, v13, v0 // .................................................................................................................*................................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v29, v5 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v27, v13, v0 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v27, v5 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v13, v29, v0 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v17, v5 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v8, v13, v0 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v29, v8, v5 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v29, v17, v0 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v17, v10, v20 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v10, v10, v21 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v18, v20 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v18, v18, v21 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v25, v27, v20 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v27, v27, v21 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v9, v20 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v1, v9, v21 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v9, v4, v5 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v9, v14, v0 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v19, v14, v5 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v4, v19, v0 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v19, v13, v20 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v8, v20 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v11, v14, v20 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v30, v9, v20 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v21 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v8, v21 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v14, v14, v21 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v9, v21 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v31, v5 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v8, v16, v0 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v16, v5 // .................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v31, v8, v0 // .................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v3, v5 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v7, v5 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v4, v3, v0 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v7, v8, v0 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v8, v17, x5 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v29, x5 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v25, x5 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v22, x5 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v10, v8 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v18, v17 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v27, v29 // .......................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v1, v25 // .......................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x22, x11, _ZETAS_EXP_1TO6_P1_L1*2 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ + vmulh.vx v22, v30, x5 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v28, v17 // .........................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x20, 0*2(x22) // .........................................................................................................................................*........................................................................................................................................................................................................................................................... + vsub.vv v6, v12, v18 // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x9, 2*2(x22) // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... + vmulh.vx v10, v15, x5 // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x30, 1*2(x22) // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... + vmulh.vx v4, v19, x5 // ............................................................................................................................................*........................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + li x1, 8*8 // ............................................................................................................................................*........................................................................................................................................................................................................................................................ + vsub.vv v29, v9, v22 // .............................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x12, 3*2(x22) // .............................................................................................................................................*....................................................................................................................................................................................................................................................... + lh x28, 4*2(x22) // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... + vadd.vv v23, v12, v18 // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v2, v10 // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + lh x29, 5*2(x22) // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... + vsub.vv v31, v13, v4 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x4, x10, (1*128)*2 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... + vadd.vv v12, v3, v29 // .................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v3, v29 // .................................................................................................................................................*................................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v4, v21, v10 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v24, v8 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v0, (x31) // ...................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:sew=16 + vsub.vv v24, v24, v8 // ...................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v20, v1 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v16, v31 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v11, x5 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v8, v24, v2 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v7, v16, v31 // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v24, v24, v3 // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v14, v13 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v8, x5 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v11, v28, v17 // ........................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v16, (x16) // ........................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:sew=16 + addi x16, x10, (64+1*128)*2 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... + vsub.vv v8, v24, v29 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v5, v14 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v23, v0 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v11, v1 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v24, v23, v1 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + li x22, 8*4 // ............................................................................................................................................................*........................................................................................................................................................................................................................................ + vadd.vv v28, v26, v27 // ............................................................................................................................................................*........................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v26, v27 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v29, x5 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v20, v0 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v1, v28, v1 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v11, v0 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v28, v28, v0 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v14, v5, v14 // ................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v21, v10 // ................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v10, v25, v2 // .................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v25, v25, v3 // .................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v21, v27, v2 // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v11, v6, v2 // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v6, v6, v3 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v3, v27, v3 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v24, v29 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v26, x5 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v31, x5 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v10, v10, x5 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v26, v12, v24 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v12, v24 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v12, v9, v27 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v13, v29 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v28, x5 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v25, v10 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v21, x5 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v7, v13 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v7, v13 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v22, v10 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v22, v22, v10 // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v3, v25 // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v1, v29 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v10, v26, v16 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v1, v26, v16 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v26, v15, v3 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v15, v3 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v29, v14, v13 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v14, v13 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x21, x11, _MASK_01014545*2 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... + vmul.vv v13, v24, v17 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + addi x24, x11, _MASK_23236767*2 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... + vmulh.vv v24, v24, v17 // .................................................................................................................................................................................*................................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + li x31, 0x0f // .................................................................................................................................................................................*................................................................................................................................................................................................................... + vmulh.vv v25, v29, v16 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x8, x11, _MASK_01230123*2 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. + vmul.vv v16, v29, v16 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x19, x11, _MASK_45674567*2 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. + vadd.vv v29, v4, v8 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v4, v8 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v4, v11, x5 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v14, v17 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v14, v14, v17 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v17, v10, x6 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v5, v12 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v12, v5, v12 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v6, v4 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v4, v26, v18 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v26, v26, v18 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v3, v19 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v3, v3, v19 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v30, v5 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v30, v5 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v17, x5 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v14, v14, x6 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v21, v18 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v18, v21, v18 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v1, v17 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v30, v5, v19 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v6, v5, v19 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v14, x5 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v17, v16, x6 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v5, v4, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v3, v3, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v31, v14 // .................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v17, x5 // .................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v5, v5, x5 // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v3, v3, x5 // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + addi x25, x11, _ZETAS_EXP_1TO6_P1_L3*2 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. + vsub.vv v5, v26, v5 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v25, v17 // ....................................................................................................................................................................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v16, v15, x6 // ....................................................................................................................................................................................................*................................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v9, v3 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v4, v6, x6 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v13, v13, x6 // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v28, v14 // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v28, v14 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v1, v22, v5 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v22, v5 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v20, v17 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v20, v17 // .........................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v27, v25 // .........................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v27, v25 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v16, x5 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v4, x5 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v13, x5 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v12, v11 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v18, v14 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v12, v11 // .............................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v30, v27 // .............................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v24, v13 // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v0, v29, v14 // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v29, v14 // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v4, v8, v27 // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v6, v8, v27 // ................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v10, v13 // ................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v10, v13 // .................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vs8r.v v0, (x15) // .................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:sew=16 + vs8r.v v16, (x14) // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:sew=16 + vsetvli x1, x1, e16, m8, tu, mu // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. + vle16.v v8, (x16) // ...................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + addi x16, x25, 8*2*2 // ...................................................................................................................................................................................................................*................................................................................................................................................................................. + vle16.v v24, (x4) // ....................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v16, v8, x30 // ....................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + li x30, 0x33 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... + vmul.vx v8, v8, x20 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:lmul=8 // @slothy:sew=16 + vmulh.vx v8, v8, x5 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + addi x1, x11, _MASK_10325476*2 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. + li x14, 0x55 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. + vsub.vv v8, v16, v8 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:lmul=8 // @slothy:sew=16 + vsub.vv v0, v24, v8 // ........................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vadd.vv v8, v24, v8 // ........................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:lmul=8 // @slothy:sew=16 + vsetvli x22, x22, e16, m4, tu, mu // .........................................................................................................................................................................................................................*........................................................................................................................................................................... + vmul.vx v24, v4, x28 // .........................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v16, v4, x29 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v24, v24, x5 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v24, v16, v24 // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v4, v0, v24 // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v20, v0, v24 // ............................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v24, v12, x12 // ............................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:lmul=4 // @slothy:sew=16 + vmul.vx v16, v12, x9 // .............................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vmulh.vx v16, v16, x5 // .............................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v24, v24, v16 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsub.vv v12, v8, v24 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vadd.vv v8, v8, v24 // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:lmul=4 // @slothy:sew=16 + vsetivli x17, 8, e16, m1, tu, mu // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... + vle16.v v3, (x8) // ................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x31 // ................................................................................................................................................................................................................................*.................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v24, (x19) // .................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v1, (x21) // .................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v25, (x24) // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v30, (x25) // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. // @slothy:sew=16 + vrgather.vv v17, v20, v3 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v17, v17, v12, v0 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v8, v24 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v4, v18, v0 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v4, v3 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v16, v10, v24 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v29, v6, v16, v0 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v6, v3 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v16, v11, v24 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v26, v7, v16, v0 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v16, v7, v3 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v4, v9, v24 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v19, v5, v3 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v6, v12, v24 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v20, v6, v0 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v22, v3 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v2, v20, v14, v0 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v5, v4, v0 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v7, v14, v24 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v14, v15, v24 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v13, v24 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v20, v23, v3 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v21, v3 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v27, v8, v0 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v19, v9, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v23, v14, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v20, v15, v0 // ................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v22, v7, v0 // ................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v7, v24, v13, v0 // .................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v28, v10, v0 // .................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v16, v11, v0 // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v2, v1 // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v22, v26, v25 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v20, v21, v12, v0 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v12, v29, v25 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v28, v25 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v19, v11, v25 // .....................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v14, v1 // .....................................................................................................................................................................................................................................................*............................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v23, v15, v1 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x30 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v5, v1 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v21, v11, v0 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v3, v2, v8, v0 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v23, v29, v0 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v28, v24, v28, v0 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v21, v8, v30 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v5, v19, v0 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v5, v15, v12, v0 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v2, v14, v22, v0 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v10, v26, v0 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v5, v30 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v28, v30 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v5, v31 // .............................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v24, v11, v30 // .............................................................................................................................................................................................................................................................*....................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v5, v11, v31 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v10, v14, v30 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v14, v14, v31 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v2, v30 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v12, v2, v31 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v19, v3, v30 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v16, v30 // .................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v3, v3, v31 // .................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v16, v16, v31 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v8, v8, v31 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v28, v31 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v29, x5 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v31, v21, x5 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v22, v22, x5 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v21, v18, v25 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v6, v21, v0 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v6, v1 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v18, v11, v18, v0 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v11, v7, v1 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v11, v9, v0 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v30, v9, v25 // ........................................................................................................................................................................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v9, v7, v30, v0 // ........................................................................................................................................................................................................................................................................*............................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vl2re16.v v6, (x16) // .........................................................................................................................................................................................................................................................................*........................................................................................................................... // @slothy:sew=16 + addi x16, x16, 8*2*2 // .........................................................................................................................................................................................................................................................................*........................................................................................................................... + vrgather.vv v30, v17, v1 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v2, v20, v1 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v1, v30, v27, v0 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v30, v27, v25 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v27, v4, v25 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v2, v4, v0 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v4, v17, v30, v0 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v27, v20, v27, v0 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v13, v22 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v24, v24, x5 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v17, v10, x5 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v10, v26, x5 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v22, v19, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v5, v24 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v14, v17 // .................................................................................................................................................................................................................................................................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v12, v10 // .................................................................................................................................................................................................................................................................................*................................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v5, v15, x5 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v3, v22 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v8, v31 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v28, v29 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v16, v5 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v21, v13 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v19, v21, v13 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v18, v8 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v18, v18, v8 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v11, v5 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v13, v11, v5 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v9, v24 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v24, v9, v24 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v16, v27, v17 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v27, v17 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v25, v14 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v14, v25, v14 // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v1, v10 // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v1, v1, v10 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v2, v4, v3 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v3, v4, v3 // ............................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vle16.v v20, (x1) // ............................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmv.s.x v0, x14 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v13, v20 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v25, v8, v10, v0 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v10, v8, v20 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v10, v13, v0 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v24, v20 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v22, v5, v13, v0 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v13, v5, v20 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v13, v13, v24, v0 // .................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v17, v20 // .................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v16, v24, v0 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v16, v20 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v16, v24, v17, v0 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v24, v14, v20 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v24, v27, v24, v0 // ....................................................................................................................................................................................................................................................................................................*................................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + addi x15, x10, (64+1*128)*2 // ....................................................................................................................................................................................................................................................................................................*................................................................................................ + addi x19, x10, (1*128)*2 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... + vrgather.vv v17, v27, v20 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v14, v17, v14, v0 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v17, v13, v6 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v13, v7 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v5, v22, v6 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v10, v22, v7 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v16, v6 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v16, v16, v7 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v25, v6 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v25, v25, v7 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v4, v8, v6 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v22, v8, v7 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v26, v14, v6 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v24, v6 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v31, v15, v6 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v15, v7 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v24, v24, v7 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v14, v14, v7 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v28, v20 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v11, v8, v19, v0 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v19, v20 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v19, v28, v8, v0 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v21, v20 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v15, v8, v18, v0 // .................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v8, v18, v20 // .................................................................................................................................................................................................................................................................................................................*................................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v8, v21, v8, v0 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v30, v20 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v21, v18, v1, v0 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v1, v20 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v30, v30, v18, v0 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v18, v3, v20 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vrgather.vv v28, v2, v20 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v6, v28, v3, v0 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmerge.vvm v23, v2, v18, v0 // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v0, (x16) // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. // @slothy:sew=16 + addi x7, x16, 8*4*2 // .......................................................................................................................................................................................................................................................................................................................*............................................................................. + vmulh.vx v28, v31, x5 // .......................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v26, x5 // ........................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:lmul=1 // @slothy:sew=16 + ld x4, 13*8(x2) // ........................................................................................................................................................................................................................................................................................................................*............................................................................ + ld x25, 9*8(x2) // .........................................................................................................................................................................................................................................................................................................................*........................................................................... + vmulh.vx v17, v17, x5 // .........................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x22, 6*8(x2) // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... + vmulh.vx v26, v12, x5 // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v28, v9, v28 // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x27, 11*8(x2) // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... + ld x23, 7*8(x2) // ............................................................................................................................................................................................................................................................................................................................*........................................................................ + vsub.vv v31, v14, v18 // ............................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v13, v17 // .............................................................................................................................................................................................................................................................................................................................*....................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x18, 2*8(x2) // .............................................................................................................................................................................................................................................................................................................................*....................................................................... + ld x24, 8*8(x2) // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... + vmulh.vx v12, v5, x5 // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v5, v19, v28 // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x3, 12*8(x2) // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... + vsub.vv v20, v15, v31 // ................................................................................................................................................................................................................................................................................................................................*.................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x20, 4*8(x2) // ................................................................................................................................................................................................................................................................................................................................*.................................................................... + vadd.vv v15, v15, v31 // .................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x21, 5*8(x2) // .................................................................................................................................................................................................................................................................................................................................*................................................................... + vsub.vv v9, v10, v12 // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:lmul=1 // @slothy:sew=16 + ld x9, 1*8(x2) // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. + vmul.vv v17, v5, v0 // ...................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:lmul=1 // @slothy:sew=16 + ld x8, 0*8(x2) // ...................................................................................................................................................................................................................................................................................................................................*................................................................. + vmulh.vx v18, v27, x5 // ....................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:lmul=1 // @slothy:sew=16 + ld x26, 10*8(x2) // ....................................................................................................................................................................................................................................................................................................................................*................................................................ + vmulh.vx v10, v29, x5 // .....................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v29, v5, v1 // .....................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v17, x5 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v7, v16, v18 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v25, v10 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v23, v9 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v29, v13 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v13, v4, x5 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v31, v30, v25 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v10, v30, v25 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v30, v17, v29 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v22, v13 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:lmul=1 // @slothy:sew=16 + ld x1, 14*8(x2) // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... + vsub.vv v18, v19, v28 // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v15, v1 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v27, v15, v0 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v5, v11, v7 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v25, v11, v7 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v24, v26 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v21, v13 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v21, v13 // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v13, v6, v14 // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v14, v6, v14 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v26, v20, v3 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v20, v2 // .................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v17, v29 // .................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v29, v8, v24 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v8, v24 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v23, v9 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v9, v25, v1 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v1, v29, v1 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v15, v18, v2 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v11, v5, v2 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v19, v8, v2 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v18, v18, v3 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v2, v5, v3 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v3, v8, v3 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v8, v29, v0 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v25, v0 // ........................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:lmul=1 // @slothy:sew=16 + vl4re16.v v4, (x7) // ........................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:sew=16 + vmulh.vx v8, v8, x5 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v20, v30, v5 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v30, v30, v5 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v19, x5 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v1, v8 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v27, v27, x5 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v1, v12, x5 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v3, v25 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v0, v10, v8 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v10, v10, v8 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v11, x5 // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v11, v31, v3 // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v3, v31, v3 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v29, x5 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v26, v1 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v2, v25 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v12, v15, x5 // .................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v9, v29 // .................................................................................................................................................................................................................................................................................................................................................................*................................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v2, v22, v8 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v26, v22, v8 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v22, v17, v4 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v9, v14, v29 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v31, v13, v25 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v18, v12 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v14, v29 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v29, v9, v4 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v21, v13, v25 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v13, v24, v18 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v24, v18 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v29, v29, x6 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v27, v28, v27 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v1, v13, v6 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v28, v14, v5 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v29, v29, x5 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v16, v27 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v27, v16, v27 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v18, v14, v5 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v14, v13, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v25, v20, x6 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v19, v17, v4 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v4, v9, v4 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v9, v21, v7 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v13, v21, v7 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v15, v24, v7 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v24, v24, v7 // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vv v12, v31, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v25, v25, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v14, v14, x6 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v22, v22, x6 // .................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v18, v18, x6 // .................................................................................................................................................................................................................................................................................................................................................................................*................... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v25, v30, v25 // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v5, v14, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v22, v22, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v18, v18, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................*................. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v21, v0, v25 // ....................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v23, v0, v25 // ....................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v17, v19, v22 // .....................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v28, v18 // .....................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vv v31, v31, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v29, v4, v29 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v19, v10, v17 // .......................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v22, v8, v14 // .......................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v24, v24, x6 // ........................................................................................................................................................................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v20, v8, v14 // ........................................................................................................................................................................................................................................................................................................................................................................................*............ // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v18, v27, v29 // .........................................................................................................................................................................................................................................................................................................................................................................................*........... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v16, v27, v29 // .........................................................................................................................................................................................................................................................................................................................................................................................*........... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v14, v9, x6 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v17, v10, v17 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v1, v5 // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v24, v24, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:lmul=1 // @slothy:sew=16 + vmul.vx v25, v12, x6 // ............................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v14, v14, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v9, v11, v8 // .............................................................................................................................................................................................................................................................................................................................................................................................*....... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v24, v15, v24 // .............................................................................................................................................................................................................................................................................................................................................................................................*....... // @slothy:lmul=1 // @slothy:sew=16 + vmulh.vx v5, v25, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v11, v11, v8 // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v13, v14 // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v15, v3, v24 // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v8, v31, v5 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v13, v3, v24 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v12, v26, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v14, v26, v14 // .................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:lmul=1 // @slothy:sew=16 + vsub.vv v10, v2, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=16 + vadd.vv v8, v2, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:lmul=1 // @slothy:sew=16 + vs8r.v v16, (x19) // ...................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:sew=16 + ld x19, 3*8(x2) // ...................................................................................................................................................................................................................................................................................................................................................................................................*. + addi x2, x2, 8*15 // ....................................................................................................................................................................................................................................................................................................................................................................................................* + vs8r.v v8, (x15) // ....................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:sew=16 + + // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------- + // addi x2, x2, -8*15 // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + // sd x8, 0*8(x2) // .................*................................................................................................................................................................................................................................................................................................................................................................................... + // sd x9, 1*8(x2) // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. + // sd x18, 2*8(x2) // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + // sd x19, 3*8(x2) // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + // sd x20, 4*8(x2) // ................*.................................................................................................................................................................................................................................................................................................................................................................................... + // sd x21, 5*8(x2) // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + // sd x22, 6*8(x2) // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... + // sd x23, 7*8(x2) // ................*.................................................................................................................................................................................................................................................................................................................................................................................... + // sd x24, 8*8(x2) // ...................*................................................................................................................................................................................................................................................................................................................................................................................. + // sd x25, 9*8(x2) // .......*............................................................................................................................................................................................................................................................................................................................................................................................. + // sd x26, 10*8(x2) // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + // sd x27, 11*8(x2) // ..............*...................................................................................................................................................................................................................................................................................................................................................................................... + // sd x3, 12*8(x2) // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + // sd x4, 13*8(x2) // .........*........................................................................................................................................................................................................................................................................................................................................................................................... + // sd x1, 14*8(x2) // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + // li x5, 3329 // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + // li x6, -3327 // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + // li x17, 8*8 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x16, x11, _ZETAS_EXP*2 // ...*................................................................................................................................................................................................................................................................................................................................................................................................. + // vsetvli x17, x17, e16, m8, tu, mu // .*................................................................................................................................................................................................................................................................................................................................................................................................... + // lh x28, 0*2(x16) // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + // lh x7, 1*2(x16) // ............*........................................................................................................................................................................................................................................................................................................................................................................................ + // addi x15, x10, 128*2 // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + // vle16.v v16, (x10) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v24, (x15) // .......*............................................................................................................................................................................................................................................................................................................................................................................................. + // vmul.vx v0, v24, x28 // ...........*......................................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v24, x7 // ..................*.................................................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v0, v8, v0 // ......................*.............................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v24, v16, v0 // .......................*............................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // .......................*............................................................................................................................................................................................................................................................................................................................................................................. + // vse16.v v16, (x10) // .........................*........................................................................................................................................................................................................................................................................................................................................................................... + // vse16.v v24, (x15) // ........................*............................................................................................................................................................................................................................................................................................................................................................................ + // addi x14, x10, 64*2 // ........*............................................................................................................................................................................................................................................................................................................................................................................................ + // addi x15, x15, 64*2 // ...............*..................................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v16, (x14) // .........*........................................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v24, (x15) // ........................*............................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v0, v24, x28 // .........................*........................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v24, x7 // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ..........................*.......................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v0, v8, v0 // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v24, v16, v0 // ............................*........................................................................................................................................................................................................................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...........................*......................................................................................................................................................................................................................................................................................................................................................................... + // vse16.v v16, (x14) // .............................*....................................................................................................................................................................................................................................................................................................................................................................... + // vse16.v v24, (x15) // ............................*........................................................................................................................................................................................................................................................................................................................................................................ + // li x17, 8*8 // .............*....................................................................................................................................................................................................................................................................................................................................................................................... + // addi x16, x11, _ZETAS_EXP_1TO6_P0_L1*2 // .*................................................................................................................................................................................................................................................................................................................................................................................................... + // vsetvli x17, x17, e16, m8, tu, mu // .............................*....................................................................................................................................................................................................................................................................................................................................................................... + // addi x14, x10, (0*128)*2 // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... + // addi x15, x10, (64+0*128)*2 // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... + // lh x28, 0*2(x16) // ....................*................................................................................................................................................................................................................................................................................................................................................................................ + // lh x7, 1*2(x16) // .....................*............................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v16, (x14) // ...............................*..................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v24, (x15) // ..............................*...................................................................................................................................................................................................................................................................................................................................................................... + // vmul.vx v0, v24, x28 // .................................*................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v24, x7 // ................................*.................................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v8, v0 // ..................................*.................................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v24, v16, v0 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v0 // ...................................*................................................................................................................................................................................................................................................................................................................................................................. + // li x17, 8*4 // ......*.............................................................................................................................................................................................................................................................................................................................................................................................. + // lh x28, 2*2(x16) // .....*............................................................................................................................................................................................................................................................................................................................................................................................... + // lh x7, 3*2(x16) // ...................*................................................................................................................................................................................................................................................................................................................................................................................. + // vsetvli x17, x17, e16, m4, tu, mu // ....................................*................................................................................................................................................................................................................................................................................................................................................................ + // lh x30, 4*2(x16) // ..*.................................................................................................................................................................................................................................................................................................................................................................................................. + // lh x29, 5*2(x16) // ....*................................................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v0, v20, x28 // ....................................*................................................................................................................................................................................................................................................................................................................................................................ + // vmul.vx v8, v28, x30 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v4, v20, x7 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v28, x29 // .......................................*............................................................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v0, v0, x5 // .....................................*............................................................................................................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ......................................*.............................................................................................................................................................................................................................................................................................................................................................. + // vsub.vv v0, v4, v0 // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v12, v8 // .........................................*........................................................................................................................................................................................................................................................................................................................................................... + // vsub.vv v20, v16, v0 // ............................................*........................................................................................................................................................................................................................................................................................................................................................ + // vsub.vv v28, v24, v8 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v0 // ...........................................*......................................................................................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ..........................................*.......................................................................................................................................................................................................................................................................................................................................................... + // vsetivli x17, 8, e16, m1, tu, mu // ............................................*........................................................................................................................................................................................................................................................................................................................................................ + // addi x7, x11, _MASK_01230123*2 // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + // addi x28, x11, _MASK_45674567*2 // .......................................*............................................................................................................................................................................................................................................................................................................................................................. + // li x31, 0x0f // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v1, (x7) // ................................................*.................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v2, (x28) // .............................................*....................................................................................................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x31 // .............................................*....................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v24, v1 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v16, v2 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v25, v1 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v17, v2 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v16, v8, v16, v0 // ............................................................*........................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v24, v24, v9, v0 // ...................................................*................................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v17, v10, v17, v0 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v25, v25, v11, v0 // ....................................................*................................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v8, v26, v1 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v18, v2 // .....................................................*............................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ..................................................*.................................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v19, v2 // .................................................*................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v18, v8, v18, v0 // .............................................................*....................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v26, v9, v0 // ......................................................*.............................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v19, v10, v19, v0 // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // .................................................*................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v28, v1 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v9, v20, v2 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v29, v1 // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v21, v2 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v8, v20, v0 // ..............................................................*...................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v28, v28, v9, v0 // ........................................................*............................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v21, v10, v21, v0 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v29, v11, v0 // .........................................................*........................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v30, v1 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v22, v2 // ..........................................................*.......................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v31, v1 // .......................................................*............................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v23, v2 // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v8, v22, v0 // ...........................................................*......................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v30, v30, v9, v0 // ............................................................*........................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v23, v10, v23, v0 // ...............................................................*..................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ..............................................*...................................................................................................................................................................................................................................................................................................................................................... + // addi x7, x11, _MASK_01014545*2 // *.................................................................................................................................................................................................................................................................................................................................................................................................... + // addi x28, x11, _MASK_23236767*2 // ..........*.......................................................................................................................................................................................................................................................................................................................................................................................... + // li x31, 0x33 // .................*................................................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v1, (x7) // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v2, (x28) // ...............................................*..................................................................................................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x31 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v20, v1 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v10, v28, v1 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v24, v2 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v20, v20, v9, v0 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v24, v10, v24, v0 // ....................................................................*................................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v28, v28, v11, v0 // .....................................................................*............................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v21, v1 // ..........................................................................*.......................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v17, v2 // ........................................................................*............................................................................................................................................................................................................................................................................................................................ + // vrgather.vv v10, v29, v1 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v25, v2 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v17, v8, v17, v0 // .......................................................................................*............................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v21, v21, v9, v0 // ........................................................................................*............................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v25, v10, v25, v0 // ......................................................................*.............................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v29, v29, v11, v0 // .......................................................................*............................................................................................................................................................................................................................................................................................................................. + // addi x16, x11, _ZETAS_EXP_1TO6_P0_L3*2 // ................................*.................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v22, v1 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v18, v2 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v30, v1 // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v26, v2 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v18, v8, v18, v0 // .............................................................................*....................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v22, v22, v9, v0 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ + // vmerge.vvm v26, v10, v26, v0 // ...................................................................*................................................................................................................................................................................................................................................................................................................................. + // vmerge.vvm v30, v30, v11, v0 // ............................................................................*........................................................................................................................................................................................................................................................................................................................ + // vl2re16.v v4, (x16) // ................................................*.................................................................................................................................................................................................................................................................................................................................................... + // addi x16, x16, 8*2*2 // .................................*................................................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v23, v1 // ...........................................................................*......................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v19, v2 // .........................................................................*........................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v31, v1 // ................................................................*.................................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v27, v2 // .................................................................*................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v8, v19, v0 // .............................................................................*....................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v23, v23, v9, v0 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v10, v27, v0 // .................................................................*................................................................................................................................................................................................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ..................................................................*.................................................................................................................................................................................................................................................................................................................................. + // vmul.vv v8, v18, v4 // .................................................................................*................................................................................................................................................................................................................................................................................................................... + // vmul.vv v9, v22, v4 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmul.vv v10, v26, v4 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... + // vmul.vv v11, v30, v4 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... + // vmul.vv v12, v19, v4 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vmul.vv v13, v23, v4 // ......................................................................................*.............................................................................................................................................................................................................................................................................................................. + // vmul.vv v14, v27, v4 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vmul.vv v15, v31, v4 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v18, v18, v5 // .................................................................................*................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v22, v22, v5 // ....................................................................................*................................................................................................................................................................................................................................................................................................................ + // vmulh.vv v26, v26, v5 // ................................................................................*.................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v30, v30, v5 // ...............................................................................*..................................................................................................................................................................................................................................................................................................................... + // vmulh.vv v19, v19, v5 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmulh.vv v23, v23, v5 // .....................................................................................*............................................................................................................................................................................................................................................................................................................... + // vmulh.vv v27, v27, v5 // ..................................................................................*.................................................................................................................................................................................................................................................................................................................. + // vmulh.vv v31, v31, v5 // ...................................................................................*................................................................................................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // .................................................................................................*................................................................................................................................................................................................................................................................................................... + // vmulh.vx v9, v9, x5 // ...................................................................................................*................................................................................................................................................................................................................................................................................................. + // vmulh.vx v10, v10, x5 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... + // vmulh.vx v11, v11, x5 // .........................................................................................*........................................................................................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ + // vmulh.vx v13, v13, x5 // ....................................................................................................*................................................................................................................................................................................................................................................................................................ + // vmulh.vx v14, v14, x5 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vmulh.vx v15, v15, x5 // ..........................................................................................*.......................................................................................................................................................................................................................................................................................................... + // vsub.vv v8, v18, v8 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... + // vsub.vv v9, v22, v9 // .....................................................................................................*............................................................................................................................................................................................................................................................................................... + // vsub.vv v10, v26, v10 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... + // vsub.vv v11, v30, v11 // ...........................................................................................*......................................................................................................................................................................................................................................................................................................... + // vsub.vv v12, v19, v12 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vsub.vv v13, v23, v13 // ......................................................................................................*.............................................................................................................................................................................................................................................................................................. + // vsub.vv v14, v27, v14 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ + // vsub.vv v15, v31, v15 // ............................................................................................*........................................................................................................................................................................................................................................................................................................ + // vsub.vv v18, v16, v8 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. + // vsub.vv v22, v20, v9 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... + // vsub.vv v26, v24, v10 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... + // vsub.vv v30, v28, v11 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... + // vsub.vv v19, v17, v12 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ + // vsub.vv v23, v21, v13 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... + // vsub.vv v27, v25, v14 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vsub.vv v31, v29, v15 // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. + // vadd.vv v16, v16, v8 // .......................................................................................................*............................................................................................................................................................................................................................................................................................. + // vadd.vv v20, v20, v9 // .........................................................................................................*........................................................................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v10 // ..............................................................................................*...................................................................................................................................................................................................................................................................................................... + // vadd.vv v28, v28, v11 // .............................................................................................*....................................................................................................................................................................................................................................................................................................... + // vadd.vv v17, v17, v12 // ........................................................................................................*............................................................................................................................................................................................................................................................................................ + // vadd.vv v21, v21, v13 // ..........................................................................................................*.......................................................................................................................................................................................................................................................................................... + // vadd.vv v25, v25, v14 // ................................................................................................*.................................................................................................................................................................................................................................................................................................... + // vadd.vv v29, v29, v15 // ...................................................................................................*................................................................................................................................................................................................................................................................................................. + // addi x7, x11, _MASK_10325476*2 // ........................................*............................................................................................................................................................................................................................................................................................................................................................ + // li x31, 0x55 // .........................................*........................................................................................................................................................................................................................................................................................................................................................... + // vle16.v v1, (x7) // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... + // vmv.s.x v0, x31 // ...........................................................................................................*......................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v18, v1 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v16, v1 // .................................................................................................................................*................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v26, v1 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v24, v1 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ................................................................................................................................*.................................................................................................................................................................................................................................................................... + // vmerge.vvm v18, v18, v9, v0 // .................................................................................................................................*................................................................................................................................................................................................................................................................... + // vmerge.vvm v24, v10, v24, v0 // ...............................................................................................................*..................................................................................................................................................................................................................................................................................... + // vmerge.vvm v26, v26, v11, v0 // ..............................................................................................................*...................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v19, v1 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v17, v1 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ + // vrgather.vv v10, v27, v1 // .................................................................................................................*................................................................................................................................................................................................................................................................................... + // vrgather.vv v11, v25, v1 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vmerge.vvm v17, v8, v17, v0 // .....................................................................................................................*............................................................................................................................................................................................................................................................................... + // vmerge.vvm v19, v19, v9, v0 // ....................................................................................................................*................................................................................................................................................................................................................................................................................ + // vmerge.vvm v25, v10, v25, v0 // .................................................................................................................*................................................................................................................................................................................................................................................................................... + // vmerge.vvm v27, v27, v11, v0 // ................................................................................................................*.................................................................................................................................................................................................................................................................................... + // vl2re16.v v4, (x16) // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... + // addi x16, x16, 8*2*2 // ..............................................................................*...................................................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v22, v1 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vrgather.vv v9, v20, v1 // ..................................................................................................................................*.................................................................................................................................................................................................................................................................. + // vrgather.vv v10, v30, v1 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ + // vrgather.vv v11, v28, v1 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... + // vmerge.vvm v20, v8, v20, v0 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. + // vmerge.vvm v22, v22, v9, v0 // ...................................................................................................................................*................................................................................................................................................................................................................................................................. + // vmerge.vvm v28, v10, v28, v0 // ............................................................................................................*........................................................................................................................................................................................................................................................................................ + // vmerge.vvm v30, v30, v11, v0 // .............................................................................................................*....................................................................................................................................................................................................................................................................................... + // vrgather.vv v8, v23, v1 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... + // vrgather.vv v9, v21, v1 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... + // vrgather.vv v10, v31, v1 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. + // vrgather.vv v11, v29, v1 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vmerge.vvm v21, v8, v21, v0 // ..........................................................................................................................*.......................................................................................................................................................................................................................................................................... + // vmerge.vvm v23, v23, v9, v0 // ...........................................................................................................................*......................................................................................................................................................................................................................................................................... + // vmerge.vvm v29, v10, v29, v0 // ...................................................................................................................*................................................................................................................................................................................................................................................................................. + // vmerge.vvm v31, v31, v11, v0 // ..................................................................................................................*.................................................................................................................................................................................................................................................................................. + // vmul.vv v8, v17, v4 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ + // vmul.vv v9, v19, v4 // ............................................................................................................................*........................................................................................................................................................................................................................................................................ + // vmul.vv v10, v21, v4 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... + // vmul.vv v11, v23, v4 // .............................................................................................................................*....................................................................................................................................................................................................................................................................... + // vmul.vv v12, v25, v4 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vmul.vv v13, v27, v4 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. + // vmul.vv v14, v29, v4 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ + // vmul.vv v15, v31, v4 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... + // vmulh.vv v17, v17, v5 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmulh.vv v19, v19, v5 // ..............................................................................................................................*...................................................................................................................................................................................................................................................................... + // vmulh.vv v21, v21, v5 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmulh.vv v23, v23, v5 // ...............................................................................................................................*..................................................................................................................................................................................................................................................................... + // vmulh.vv v25, v25, v5 // ......................................................................................................................*.............................................................................................................................................................................................................................................................................. + // vmulh.vv v27, v27, v5 // .......................................................................................................................*............................................................................................................................................................................................................................................................................. + // vmulh.vv v29, v29, v5 // ........................................................................................................................*............................................................................................................................................................................................................................................................................ + // vmulh.vv v31, v31, v5 // .........................................................................................................................*........................................................................................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... + // vmulh.vx v9, v9, x5 // ............................................................................................................................................*........................................................................................................................................................................................................................................................ + // vmulh.vx v10, v10, x5 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ + // vmulh.vx v11, v11, x5 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ + // vmulh.vx v13, v13, x5 // ....................................................................................................................................*................................................................................................................................................................................................................................................................ + // vmulh.vx v14, v14, x5 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... + // vmulh.vx v15, v15, x5 // .....................................................................................................................................*............................................................................................................................................................................................................................................................... + // vsub.vv v8, v17, v8 // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... + // vsub.vv v9, v19, v9 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... + // vsub.vv v10, v21, v10 // .............................................................................................................................................*....................................................................................................................................................................................................................................................... + // vsub.vv v11, v23, v11 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. + // vsub.vv v12, v25, v12 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vsub.vv v13, v27, v13 // ......................................................................................................................................*.............................................................................................................................................................................................................................................................. + // vsub.vv v14, v29, v14 // .......................................................................................................................................*............................................................................................................................................................................................................................................................. + // vsub.vv v15, v31, v15 // .......................................................................................................................................*............................................................................................................................................................................................................................................................. + // vsub.vv v17, v16, v8 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. + // vsub.vv v19, v18, v9 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ + // vsub.vv v21, v20, v10 // .................................................................................................................................................*................................................................................................................................................................................................................................................... + // vsub.vv v23, v22, v11 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vsub.vv v25, v24, v12 // ...................................................................................................................................................*................................................................................................................................................................................................................................................. + // vsub.vv v27, v26, v13 // .........................................................................................................................................*........................................................................................................................................................................................................................................................... + // vsub.vv v29, v28, v14 // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... + // vsub.vv v31, v30, v15 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... + // vadd.vv v16, v16, v8 // ................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vadd.vv v18, v18, v9 // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. + // vadd.vv v20, v20, v10 // .................................................................................................................................................*................................................................................................................................................................................................................................................... + // vadd.vv v22, v22, v11 // ................................................................................................................................................................*.................................................................................................................................................................................................................................... + // vadd.vv v24, v24, v12 // ..................................................................................................................................................*.................................................................................................................................................................................................................................................. + // vadd.vv v26, v26, v13 // ........................................................................................................................................................*............................................................................................................................................................................................................................................ + // vadd.vv v28, v28, v14 // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... + // vadd.vv v30, v30, v15 // ............................................................................................................................................................*........................................................................................................................................................................................................................................ + // vl4re16.v v0, (x16) // ...................................................................................................................................................*................................................................................................................................................................................................................................................. + // addi x16, x16, 8*4*2 // ...............................................................................................*..................................................................................................................................................................................................................................................................................................... + // vmul.vv v8, v24, v0 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... + // vmul.vv v9, v26, v0 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... + // vmul.vv v10, v28, v0 // ..........................................................................................................................................................*.......................................................................................................................................................................................................................................... + // vmul.vv v11, v30, v0 // ...............................................................................................................................................................*..................................................................................................................................................................................................................................... + // vmul.vv v12, v25, v2 // .....................................................................................................................................................*............................................................................................................................................................................................................................................... + // vmul.vv v13, v27, v2 // .................................................................................................................................................................*................................................................................................................................................................................................................................... + // vmul.vv v14, v29, v2 // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vmul.vv v15, v31, v2 // ..................................................................................................................................................................*.................................................................................................................................................................................................................................. + // vmulh.vv v24, v24, v1 // ....................................................................................................................................................*................................................................................................................................................................................................................................................ + // vmulh.vv v26, v26, v1 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... + // vmulh.vv v28, v28, v1 // ...........................................................................................................................................................*......................................................................................................................................................................................................................................... + // vmulh.vv v30, v30, v1 // ..............................................................................................................................................................*...................................................................................................................................................................................................................................... + // vmulh.vv v25, v25, v3 // ......................................................................................................................................................*.............................................................................................................................................................................................................................................. + // vmulh.vv v27, v27, v3 // .................................................................................................................................................................*................................................................................................................................................................................................................................... + // vmulh.vv v29, v29, v3 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. + // vmulh.vv v31, v31, v3 // ...................................................................................................................................................................*................................................................................................................................................................................................................................. + // vmulh.vx v8, v8, x5 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ + // vmulh.vx v9, v9, x5 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... + // vmulh.vx v10, v10, x5 // .............................................................................................................................................................*....................................................................................................................................................................................................................................... + // vmulh.vx v11, v11, x5 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ + // vmulh.vx v12, v12, x5 // .......................................................................................................................................................*............................................................................................................................................................................................................................................. + // vmulh.vx v13, v13, x5 // .....................................................................................................................................................................*............................................................................................................................................................................................................................... + // vmulh.vx v14, v14, x5 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... + // vmulh.vx v15, v15, x5 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... + // vsub.vv v8, v24, v8 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. + // vsub.vv v9, v26, v9 // .......................................................................................................................................................................*............................................................................................................................................................................................................................. + // vsub.vv v10, v28, v10 // ....................................................................................................................................................................*................................................................................................................................................................................................................................ + // vsub.vv v11, v30, v11 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ + // vsub.vv v12, v25, v12 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... + // vsub.vv v13, v27, v13 // ........................................................................................................................................................................*............................................................................................................................................................................................................................ + // vsub.vv v14, v29, v14 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ + // vsub.vv v15, v31, v15 // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... + // vsub.vv v24, v16, v8 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. + // vsub.vv v26, v18, v9 // .........................................................................................................................................................................*........................................................................................................................................................................................................................... + // vsub.vv v28, v20, v10 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vsub.vv v30, v22, v11 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... + // vsub.vv v25, v17, v12 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ + // vsub.vv v27, v19, v13 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vsub.vv v29, v21, v14 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... + // vsub.vv v31, v23, v15 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... + // vadd.vv v16, v16, v8 // .......................................................................................................................................................................................*............................................................................................................................................................................................................. + // vadd.vv v18, v18, v9 // ..........................................................................................................................................................................*.......................................................................................................................................................................................................................... + // vadd.vv v20, v20, v10 // ......................................................................................................................................................................*.............................................................................................................................................................................................................................. + // vadd.vv v22, v22, v11 // ..............................................................................................................................................................................*...................................................................................................................................................................................................................... + // vadd.vv v17, v17, v12 // ....................................................................................................................................................................................*................................................................................................................................................................................................................ + // vadd.vv v19, v19, v13 // ...........................................................................................................................................................................*......................................................................................................................................................................................................................... + // vadd.vv v21, v21, v14 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... + // vadd.vv v23, v23, v15 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... + // vl4re16.v v4, (x16) // ........................................................................................................................................................*............................................................................................................................................................................................................................................ + // addi x14, x10, (0*128)*2 // ..................................................................................................*.................................................................................................................................................................................................................................................................................................. + // addi x15, x10, (64+0*128)*2 // .................................................................................................*................................................................................................................................................................................................................................................................................................... + // vmul.vv v8, v20, v4 // ............................................................................................................................................................................*........................................................................................................................................................................................................................ + // vmul.vv v9, v22, v4 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. + // vmul.vv v12, v28, v5 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... + // vmul.vv v13, v30, v5 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vmul.vx v8, v8, x6 // ......................................................................................................................................................................................*.............................................................................................................................................................................................................. + // vmul.vx v9, v9, x6 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... + // vmul.vx v12, v12, x6 // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vmul.vx v13, v13, x6 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ + // vmulh.vv v20, v20, v4 // .............................................................................................................................................................................*....................................................................................................................................................................................................................... + // vmulh.vv v22, v22, v4 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. + // vmulh.vv v28, v28, v5 // .................................................................................................................................................................................*................................................................................................................................................................................................................... + // vmulh.vv v30, v30, v5 // .....................................................................................................................................................................................*............................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ...........................................................................................................................................................................................*......................................................................................................................................................................................................... + // vmulh.vx v9, v9, x5 // .................................................................................................................................................................................................*................................................................................................................................................................................................... + // vmulh.vx v12, v12, x5 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... + // vmulh.vx v13, v13, x5 // ...............................................................................................................................................................................................*..................................................................................................................................................................................................... + // vsub.vv v8, v20, v8 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... + // vsub.vv v9, v22, v9 // ....................................................................................................................................................................................................*................................................................................................................................................................................................ + // vsub.vv v12, v28, v12 // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... + // vsub.vv v13, v30, v13 // .................................................................................................................................................................................................*................................................................................................................................................................................................... + // vsub.vv v10, v16, v8 // .............................................................................................................................................................................................................*....................................................................................................................................................................................... + // vsub.vv v11, v18, v9 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ + // vsub.vv v14, v24, v12 // .................................................................................................................................................................................................................*................................................................................................................................................................................... + // vsub.vv v15, v26, v13 // ......................................................................................................................................................................................................*.............................................................................................................................................................................................. + // vadd.vv v8, v16, v8 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ + // vadd.vv v9, v18, v9 // .........................................................................................................................................................................................................*........................................................................................................................................................................................... + // vadd.vv v12, v24, v12 // ................................................................................................................................................................................................................*.................................................................................................................................................................................... + // vadd.vv v13, v26, v13 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. + // vs8r.v v8, (x14) // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. + // vmul.vv v8, v21, v6 // ............................................................................................................................................................................................*........................................................................................................................................................................................................ + // vmul.vv v9, v23, v6 // ........................................................................................................................................................................................*............................................................................................................................................................................................................ + // vmul.vv v12, v29, v7 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... + // vmul.vv v13, v31, v7 // ..........................................................................................................................................................................................*.......................................................................................................................................................................................................... + // vmul.vx v8, v8, x6 // ....................................................................................................................................................................................................*................................................................................................................................................................................................ + // vmul.vx v9, v9, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vmul.vx v12, v12, x6 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... + // vmul.vx v13, v13, x6 // ................................................................................................................................................................................................*.................................................................................................................................................................................................... + // vmulh.vv v21, v21, v6 // .............................................................................................................................................................................................*....................................................................................................................................................................................................... + // vmulh.vv v23, v23, v6 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... + // vmulh.vv v29, v29, v7 // ..............................................................................................................................................................................................*...................................................................................................................................................................................................... + // vmulh.vv v31, v31, v7 // .........................................................................................................................................................................................*........................................................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vmulh.vx v9, v9, x5 // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vmulh.vx v12, v12, x5 // ...........................................................................................................................................................................................................*......................................................................................................................................................................................... + // vmulh.vx v13, v13, x5 // ..................................................................................................................................................................................................*.................................................................................................................................................................................................. + // vsub.vv v8, v21, v8 // ............................................................................................................................................................................................................*........................................................................................................................................................................................ + // vsub.vv v9, v23, v9 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. + // vsub.vv v12, v29, v12 // .............................................................................................................................................................................................................*....................................................................................................................................................................................... + // vsub.vv v13, v31, v13 // .....................................................................................................................................................................................................*............................................................................................................................................................................................... + // vsub.vv v10, v17, v8 // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... + // vsub.vv v11, v19, v9 // ........................................................................................................................................................................................................*............................................................................................................................................................................................ + // vsub.vv v14, v25, v12 // ................................................................................................................................................................................................................*.................................................................................................................................................................................... + // vsub.vv v15, v27, v13 // .........................................................................................................................................................................................................*........................................................................................................................................................................................... + // vadd.vv v8, v17, v8 // ..............................................................................................................................................................................................................*...................................................................................................................................................................................... + // vadd.vv v9, v19, v9 // .......................................................................................................................................................................................................*............................................................................................................................................................................................. + // vadd.vv v12, v25, v12 // ...............................................................................................................................................................................................................*..................................................................................................................................................................................... + // vadd.vv v13, v27, v13 // ..........................................................................................................................................................................................................*.......................................................................................................................................................................................... + // vs8r.v v8, (x15) // .................................................................................................................................................................................................................*................................................................................................................................................................................... + // li x17, 8*8 // ............................................................................................................................................*........................................................................................................................................................................................................................................................ + // addi x16, x11, _ZETAS_EXP_1TO6_P1_L1*2 // ........................................................................................................................................*............................................................................................................................................................................................................................................................ + // vsetvli x17, x17, e16, m8, tu, mu // ..................................................................................................................................................................................................................*.................................................................................................................................................................................. + // addi x14, x10, (1*128)*2 // ................................................................................................................................................*.................................................................................................................................................................................................................................................... + // addi x15, x10, (64+1*128)*2 // .........................................................................................................................................................*........................................................................................................................................................................................................................................... + // lh x28, 0*2(x16) // .........................................................................................................................................*........................................................................................................................................................................................................................................................... + // lh x7, 1*2(x16) // ...........................................................................................................................................*......................................................................................................................................................................................................................................................... + // vle16.v v16, (x14) // ....................................................................................................................................................................................................................*................................................................................................................................................................................ + // vle16.v v24, (x15) // ...................................................................................................................................................................................................................*................................................................................................................................................................................. + // vmul.vx v0, v24, x28 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... + // vmulh.vx v8, v24, x7 // ....................................................................................................................................................................................................................*................................................................................................................................................................................ + // vmulh.vx v0, v0, x5 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. + // vsub.vv v0, v8, v0 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. + // vsub.vv v24, v16, v0 // ........................................................................................................................................................................................................................*............................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ........................................................................................................................................................................................................................*............................................................................................................................................................................ + // li x17, 8*4 // ............................................................................................................................................................*........................................................................................................................................................................................................................................ + // lh x28, 2*2(x16) // ..........................................................................................................................................*.......................................................................................................................................................................................................................................................... + // lh x7, 3*2(x16) // .............................................................................................................................................*....................................................................................................................................................................................................................................................... + // vsetvli x17, x17, e16, m4, tu, mu // .........................................................................................................................................................................................................................*........................................................................................................................................................................... + // lh x30, 4*2(x16) // ..............................................................................................................................................*...................................................................................................................................................................................................................................................... + // lh x29, 5*2(x16) // ...............................................................................................................................................*..................................................................................................................................................................................................................................................... + // vmul.vx v0, v20, x28 // .............................................................................................................................................................................................................................*....................................................................................................................................................................... + // vmul.vx v8, v28, x30 // .........................................................................................................................................................................................................................*........................................................................................................................................................................... + // vmulh.vx v4, v20, x7 // ............................................................................................................................................................................................................................*........................................................................................................................................................................ + // vmulh.vx v12, v28, x29 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vmulh.vx v0, v0, x5 // .............................................................................................................................................................................................................................*....................................................................................................................................................................... + // vmulh.vx v8, v8, x5 // ..........................................................................................................................................................................................................................*.......................................................................................................................................................................... + // vsub.vv v0, v4, v0 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... + // vsub.vv v8, v12, v8 // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... + // vsub.vv v20, v16, v0 // ..............................................................................................................................................................................................................................*...................................................................................................................................................................... + // vsub.vv v28, v24, v8 // ............................................................................................................................................................................................................................*........................................................................................................................................................................ + // vadd.vv v16, v16, v0 // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... + // vadd.vv v24, v24, v8 // ...........................................................................................................................................................................................................................*......................................................................................................................................................................... + // vsetivli x17, 8, e16, m1, tu, mu // ...............................................................................................................................................................................................................................*..................................................................................................................................................................... + // addi x7, x11, _MASK_01230123*2 // ..................................................................................................................................................................................*.................................................................................................................................................................................................................. + // addi x28, x11, _MASK_45674567*2 // ...................................................................................................................................................................................*................................................................................................................................................................................................................. + // li x31, 0x0f // .................................................................................................................................................................................*................................................................................................................................................................................................................... + // vle16.v v1, (x7) // ................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vle16.v v2, (x28) // .................................................................................................................................................................................................................................*................................................................................................................................................................... + // vmv.s.x v0, x31 // ................................................................................................................................................................................................................................*.................................................................................................................................................................... + // vrgather.vv v8, v24, v1 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... + // vrgather.vv v9, v16, v2 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ + // vrgather.vv v10, v25, v1 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... + // vrgather.vv v11, v17, v2 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ + // vmerge.vvm v16, v8, v16, v0 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... + // vmerge.vvm v24, v24, v9, v0 // ....................................................................................................................................................................................................................................*................................................................................................................................................................ + // vmerge.vvm v17, v10, v17, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... + // vmerge.vvm v25, v25, v11, v0 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... + // vrgather.vv v8, v26, v1 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vrgather.vv v9, v18, v2 // .....................................................................................................................................................................................................................................*............................................................................................................................................................... + // vrgather.vv v10, v27, v1 // ........................................................................................................................................................................................................................................*............................................................................................................................................................ + // vrgather.vv v11, v19, v2 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. + // vmerge.vvm v18, v8, v18, v0 // .................................................................................................................................................................................................................................................*................................................................................................................................................... + // vmerge.vvm v26, v26, v9, v0 // ......................................................................................................................................................................................................................................*.............................................................................................................................................................. + // vmerge.vvm v19, v10, v19, v0 // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vmerge.vvm v27, v27, v11, v0 // .......................................................................................................................................................................................................................................*............................................................................................................................................................. + // vrgather.vv v8, v28, v1 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. + // vrgather.vv v9, v20, v2 // .........................................................................................................................................................................................................................................*........................................................................................................................................................... + // vrgather.vv v10, v29, v1 // ..............................................................................................................................................................................................................................................*...................................................................................................................................................... + // vrgather.vv v11, v21, v2 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... + // vmerge.vvm v20, v8, v20, v0 // ...................................................................................................................................................................................................................................*................................................................................................................................................................. + // vmerge.vvm v28, v28, v9, v0 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... + // vmerge.vvm v21, v10, v21, v0 // .................................................................................................................................................................................................................................................*................................................................................................................................................... + // vmerge.vvm v29, v29, v11, v0 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. + // vrgather.vv v8, v30, v1 // ..........................................................................................................................................................................................................................................*.......................................................................................................................................................... + // vrgather.vv v9, v22, v2 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ + // vrgather.vv v10, v31, v1 // .............................................................................................................................................................................................................................................*....................................................................................................................................................... + // vrgather.vv v11, v23, v2 // ............................................................................................................................................................................................................................................*........................................................................................................................................................ + // vmerge.vvm v22, v8, v22, v0 // ...........................................................................................................................................................................................................................................*......................................................................................................................................................... + // vmerge.vvm v30, v30, v9, v0 // ................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vmerge.vvm v23, v10, v23, v0 // ................................................................................................................................................................................................................................................*.................................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ...............................................................................................................................................................................................................................................*..................................................................................................................................................... + // addi x7, x11, _MASK_01014545*2 // ...............................................................................................................................................................................*..................................................................................................................................................................................................................... + // addi x28, x11, _MASK_23236767*2 // ................................................................................................................................................................................*.................................................................................................................................................................................................................... + // li x31, 0x33 // .....................................................................................................................................................................................................................*............................................................................................................................................................................... + // vle16.v v1, (x7) // .................................................................................................................................................................................................................................*................................................................................................................................................................... + // vle16.v v2, (x28) // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. + // vmv.s.x v0, x31 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vrgather.vv v8, v20, v1 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... + // vrgather.vv v9, v16, v2 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... + // vrgather.vv v10, v28, v1 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vrgather.vv v11, v24, v2 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ...........................................................................................................................................................................................................................................................................*......................................................................................................................... + // vmerge.vvm v20, v20, v9, v0 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... + // vmerge.vvm v24, v10, v24, v0 // ......................................................................................................................................................................................................................................................................*.............................................................................................................................. + // vmerge.vvm v28, v28, v11, v0 // .....................................................................................................................................................................................................................................................................*............................................................................................................................... + // vrgather.vv v8, v21, v1 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. + // vrgather.vv v9, v17, v2 // ........................................................................................................................................................................................................................................................................*............................................................................................................................ + // vrgather.vv v10, v29, v1 // ..........................................................................................................................................................................................................................................................................*.......................................................................................................................... + // vrgather.vv v11, v25, v2 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ + // vmerge.vvm v17, v8, v17, v0 // .......................................................................................................................................................................................................................................................................*............................................................................................................................. + // vmerge.vvm v21, v21, v9, v0 // ........................................................................................................................................................................................................................................................................*............................................................................................................................ + // vmerge.vvm v25, v10, v25, v0 // ............................................................................................................................................................................................................................................................................*........................................................................................................................ + // vmerge.vvm v29, v29, v11, v0 // .............................................................................................................................................................................................................................................................................*....................................................................................................................... + // addi x16, x11, _ZETAS_EXP_1TO6_P1_L3*2 // ...................................................................................................................................................................................................*................................................................................................................................................................................................. + // vrgather.vv v8, v22, v1 // ..................................................................................................................................................................................................................................................*.................................................................................................................................................. + // vrgather.vv v9, v18, v2 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ + // vrgather.vv v10, v30, v1 // ......................................................................................................................................................................................................................................................*.............................................................................................................................................. + // vrgather.vv v11, v26, v2 // ....................................................................................................................................................................................................................................................*................................................................................................................................................ + // vmerge.vvm v18, v8, v18, v0 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... + // vmerge.vvm v22, v22, v9, v0 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ + // vmerge.vvm v26, v10, v26, v0 // ........................................................................................................................................................................................................................................................*............................................................................................................................................ + // vmerge.vvm v30, v30, v11, v0 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vl2re16.v v4, (x16) // ..................................................................................................................................................................................................................................*.................................................................................................................................................................. + // addi x16, x16, 8*2*2 // ...................................................................................................................................................................................................................*................................................................................................................................................................................. + // vrgather.vv v8, v23, v1 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. + // vrgather.vv v9, v19, v2 // .....................................................................................................................................................................................................................................................*............................................................................................................................................... + // vrgather.vv v10, v31, v1 // .....................................................................................................................................................................................................................................................*............................................................................................................................................... + // vrgather.vv v11, v27, v2 // ...................................................................................................................................................................................................................................................*................................................................................................................................................. + // vmerge.vvm v19, v8, v19, v0 // .......................................................................................................................................................................................................................................................*............................................................................................................................................. + // vmerge.vvm v23, v23, v9, v0 // ..........................................................................................................................................................................................................................................................*.......................................................................................................................................... + // vmerge.vvm v27, v10, v27, v0 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... + // vmerge.vvm v31, v31, v11, v0 // ...........................................................................................................................................................................................................................................................*......................................................................................................................................... + // vmul.vv v8, v18, v4 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ + // vmul.vv v9, v22, v4 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vmul.vv v10, v26, v4 // .........................................................................................................................................................................................................................................................*........................................................................................................................................... + // vmul.vv v11, v30, v4 // ............................................................................................................................................................................................................................................................*........................................................................................................................................ + // vmul.vv v12, v19, v4 // .................................................................................................................................................................................................................................................................*................................................................................................................................... + // vmul.vv v13, v23, v4 // .............................................................................................................................................................................................................................................................*....................................................................................................................................... + // vmul.vv v14, v27, v4 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... + // vmul.vv v15, v31, v4 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... + // vmulh.vv v18, v18, v5 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. + // vmulh.vv v22, v22, v5 // .................................................................................................................................................................................................................................................................*................................................................................................................................... + // vmulh.vv v26, v26, v5 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vmulh.vv v30, v30, v5 // .............................................................................................................................................................................................................................................................*....................................................................................................................................... + // vmulh.vv v19, v19, v5 // ..................................................................................................................................................................................................................................................................*.................................................................................................................................. + // vmulh.vv v23, v23, v5 // ..............................................................................................................................................................................................................................................................*...................................................................................................................................... + // vmulh.vv v27, v27, v5 // ...............................................................................................................................................................................................................................................................*..................................................................................................................................... + // vmulh.vv v31, v31, v5 // ................................................................................................................................................................................................................................................................*.................................................................................................................................... + // vmulh.vx v8, v8, x5 // ...................................................................................................................................................................................................................................................................*................................................................................................................................. + // vmulh.vx v9, v9, x5 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vmulh.vx v10, v10, x5 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ + // vmulh.vx v11, v11, x5 // ....................................................................................................................................................................................................................................................................*................................................................................................................................ + // vmulh.vx v12, v12, x5 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. + // vmulh.vx v13, v13, x5 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... + // vmulh.vx v14, v14, x5 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... + // vmulh.vx v15, v15, x5 // ...............................................................................................................................................................................................................................................................................*..................................................................................................................... + // vsub.vv v8, v18, v8 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. + // vsub.vv v9, v22, v9 // ..................................................................................................................................................................................................................................................................................*.................................................................................................................. + // vsub.vv v10, v26, v10 // ...................................................................................................................................................................................................................................................................................*................................................................................................................. + // vsub.vv v11, v30, v11 // ..............................................................................................................................................................................................................................................................................*...................................................................................................................... + // vsub.vv v12, v19, v12 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ + // vsub.vv v13, v23, v13 // ................................................................................................................................................................................................................................................................................*.................................................................................................................... + // vsub.vv v14, v27, v14 // .................................................................................................................................................................................................................................................................................*................................................................................................................... + // vsub.vv v15, v31, v15 // .................................................................................................................................................................................................................................................................................*................................................................................................................... + // vsub.vv v18, v16, v8 // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vsub.vv v22, v20, v9 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... + // vsub.vv v26, v24, v10 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... + // vsub.vv v30, v28, v11 // ....................................................................................................................................................................................................................................................................................*................................................................................................................ + // vsub.vv v19, v17, v12 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vsub.vv v23, v21, v13 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. + // vsub.vv v27, v25, v14 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... + // vsub.vv v31, v29, v15 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ + // vadd.vv v16, v16, v8 // ...........................................................................................................................................................................................................................................................................................*......................................................................................................... + // vadd.vv v20, v20, v9 // ............................................................................................................................................................................................................................................................................................*........................................................................................................ + // vadd.vv v24, v24, v10 // ......................................................................................................................................................................................................................................................................................*.............................................................................................................. + // vadd.vv v28, v28, v11 // .....................................................................................................................................................................................................................................................................................*............................................................................................................... + // vadd.vv v17, v17, v12 // .......................................................................................................................................................................................................................................................................................*............................................................................................................. + // vadd.vv v21, v21, v13 // ........................................................................................................................................................................................................................................................................................*............................................................................................................ + // vadd.vv v25, v25, v14 // ..........................................................................................................................................................................................................................................................................................*.......................................................................................................... + // vadd.vv v29, v29, v15 // .........................................................................................................................................................................................................................................................................................*........................................................................................................... + // addi x7, x11, _MASK_10325476*2 // ......................................................................................................................................................................................................................*.............................................................................................................................................................................. + // li x31, 0x55 // .......................................................................................................................................................................................................................*............................................................................................................................................................................. + // vle16.v v1, (x7) // ............................................................................................................................................................................................................................................................................................*........................................................................................................ + // vmv.s.x v0, x31 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... + // vrgather.vv v8, v18, v1 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vrgather.vv v9, v16, v1 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. + // vrgather.vv v10, v26, v1 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vrgather.vv v11, v24, v1 // .................................................................................................................................................................................................................................................................................................................*................................................................................... + // vmerge.vvm v16, v8, v16, v0 // ...................................................................................................................................................................................................................................................................................................................*................................................................................. + // vmerge.vvm v18, v18, v9, v0 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ + // vmerge.vvm v24, v10, v24, v0 // .................................................................................................................................................................................................................................................................................................................*................................................................................... + // vmerge.vvm v26, v26, v11, v0 // ..................................................................................................................................................................................................................................................................................................................*.................................................................................. + // vrgather.vv v8, v19, v1 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... + // vrgather.vv v9, v17, v1 // .............................................................................................................................................................................................................................................................................................*....................................................................................................... + // vrgather.vv v10, v27, v1 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... + // vrgather.vv v11, v25, v1 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. + // vmerge.vvm v17, v8, v17, v0 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... + // vmerge.vvm v19, v19, v9, v0 // ..............................................................................................................................................................................................................................................................................................*...................................................................................................... + // vmerge.vvm v25, v10, v25, v0 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vmerge.vvm v27, v27, v11, v0 // ....................................................................................................................................................................................................................................................................................................*................................................................................................ + // vl2re16.v v4, (x16) // .........................................................................................................................................................................................................................................................................*........................................................................................................................... + // addi x16, x16, 8*2*2 // .........................................................................................................................................................................................................................................................................*........................................................................................................................... + // vrgather.vv v8, v22, v1 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... + // vrgather.vv v9, v20, v1 // ....................................................................................................................................................................................................................................................................................................................*................................................................................ + // vrgather.vv v10, v30, v1 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... + // vrgather.vv v11, v28, v1 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... + // vmerge.vvm v20, v8, v20, v0 // .....................................................................................................................................................................................................................................................................................................................*............................................................................... + // vmerge.vvm v22, v22, v9, v0 // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. + // vmerge.vvm v28, v10, v28, v0 // ...............................................................................................................................................................................................................................................................................................................*..................................................................................... + // vmerge.vvm v30, v30, v11, v0 // ................................................................................................................................................................................................................................................................................................................*.................................................................................... + // vrgather.vv v8, v23, v1 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... + // vrgather.vv v9, v21, v1 // ...............................................................................................................................................................................................................................................................................................*..................................................................................................... + // vrgather.vv v10, v31, v1 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vrgather.vv v11, v29, v1 // .................................................................................................................................................................................................................................................................................................*................................................................................................... + // vmerge.vvm v21, v8, v21, v0 // .................................................................................................................................................................................................................................................................................................*................................................................................................... + // vmerge.vvm v23, v23, v9, v0 // ................................................................................................................................................................................................................................................................................................*.................................................................................................... + // vmerge.vvm v29, v10, v29, v0 // ...................................................................................................................................................................................................................................................................................................*................................................................................................. + // vmerge.vvm v31, v31, v11, v0 // ..................................................................................................................................................................................................................................................................................................*.................................................................................................. + // vmul.vv v8, v17, v4 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vmul.vv v9, v19, v4 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... + // vmul.vv v10, v21, v4 // ......................................................................................................................................................................................................................................................................................................*.............................................................................................. + // vmul.vv v11, v23, v4 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. + // vmul.vv v12, v25, v4 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... + // vmul.vv v13, v27, v4 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ + // vmul.vv v14, v29, v4 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ + // vmul.vv v15, v31, v4 // ............................................................................................................................................................................................................................................................................................................*........................................................................................ + // vmulh.vv v17, v17, v5 // ...........................................................................................................................................................................................................................................................................................................*......................................................................................... + // vmulh.vv v19, v19, v5 // ..........................................................................................................................................................................................................................................................................................................*.......................................................................................... + // vmulh.vv v21, v21, v5 // .......................................................................................................................................................................................................................................................................................................*............................................................................................. + // vmulh.vv v23, v23, v5 // ........................................................................................................................................................................................................................................................................................................*............................................................................................ + // vmulh.vv v25, v25, v5 // ..............................................................................................................................................................................................................................................................................................................*...................................................................................... + // vmulh.vv v27, v27, v5 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... + // vmulh.vv v29, v29, v5 // .........................................................................................................................................................................................................................................................................................................*........................................................................................... + // vmulh.vv v31, v31, v5 // .............................................................................................................................................................................................................................................................................................................*....................................................................................... + // vmulh.vx v8, v8, x5 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ + // vmulh.vx v9, v9, x5 // .....................................................................................................................................................................................................................................................................................................................................*............................................................... + // vmulh.vx v10, v10, x5 // .........................................................................................................................................................................................................................................................................................................................*........................................................................... + // vmulh.vx v11, v11, x5 // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... + // vmulh.vx v12, v12, x5 // ........................................................................................................................................................................................................................................................................................................................*............................................................................ + // vmulh.vx v13, v13, x5 // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... + // vmulh.vx v14, v14, x5 // ....................................................................................................................................................................................................................................................................................................................................*................................................................ + // vmulh.vx v15, v15, x5 // .......................................................................................................................................................................................................................................................................................................................*............................................................................. + // vsub.vv v8, v17, v8 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vsub.vv v9, v19, v9 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. + // vsub.vv v10, v21, v10 // .............................................................................................................................................................................................................................................................................................................................*....................................................................... + // vsub.vv v11, v23, v11 // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. + // vsub.vv v12, v25, v12 // ............................................................................................................................................................................................................................................................................................................................*........................................................................ + // vsub.vv v13, v27, v13 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... + // vsub.vv v14, v29, v14 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vsub.vv v15, v31, v15 // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... + // vsub.vv v17, v16, v8 // ..............................................................................................................................................................................................................................................................................................................................................*...................................................... + // vsub.vv v19, v18, v9 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... + // vsub.vv v21, v20, v10 // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... + // vsub.vv v23, v22, v11 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. + // vsub.vv v25, v24, v12 // ................................................................................................................................................................................................................................................................................................................................*.................................................................... + // vsub.vv v27, v26, v13 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vsub.vv v29, v28, v14 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... + // vsub.vv v31, v30, v15 // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... + // vadd.vv v16, v16, v8 // ...............................................................................................................................................................................................................................................................................................................................................*..................................................... + // vadd.vv v18, v18, v9 // .........................................................................................................................................................................................................................................................................................................................................*........................................................... + // vadd.vv v20, v20, v10 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vadd.vv v22, v22, v11 // .......................................................................................................................................................................................................................................................................................................................................*............................................................. + // vadd.vv v24, v24, v12 // .................................................................................................................................................................................................................................................................................................................................*................................................................... + // vadd.vv v26, v26, v13 // ..................................................................................................................................................................................................................................................................................................................................................*.................................................. + // vadd.vv v28, v28, v14 // .............................................................................................................................................................................................................................................................................................................................................*....................................................... + // vadd.vv v30, v30, v15 // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... + // vl4re16.v v0, (x16) // ......................................................................................................................................................................................................................................................................................................................*.............................................................................. + // addi x16, x16, 8*4*2 // .......................................................................................................................................................................................................................................................................................................................*............................................................................. + // vmul.vv v8, v24, v0 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ + // vmul.vv v9, v26, v0 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. + // vmul.vv v10, v28, v0 // ........................................................................................................................................................................................................................................................................................................................................................*............................................ + // vmul.vv v11, v30, v0 // ...................................................................................................................................................................................................................................................................................................................................*................................................................. + // vmul.vv v12, v25, v2 // .................................................................................................................................................................................................................................................................................................................................................*................................................... + // vmul.vv v13, v27, v2 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... + // vmul.vv v14, v29, v2 // .....................................................................................................................................................................................................................................................................................................................................................*............................................... + // vmul.vv v15, v31, v2 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ + // vmulh.vv v24, v24, v1 // ............................................................................................................................................................................................................................................................................................................................................*........................................................ + // vmulh.vv v26, v26, v1 // ....................................................................................................................................................................................................................................................................................................................................................*................................................ + // vmulh.vv v28, v28, v1 // ...................................................................................................................................................................................................................................................................................................................................................*................................................. + // vmulh.vv v30, v30, v1 // .....................................................................................................................................................................................................................................................................................................................................*............................................................... + // vmulh.vv v25, v25, v3 // ................................................................................................................................................................................................................................................................................................................................................*.................................................... + // vmulh.vv v27, v27, v3 // .......................................................................................................................................................................................................................................................................................................................................................*............................................. + // vmulh.vv v29, v29, v3 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. + // vmulh.vv v31, v31, v3 // ......................................................................................................................................................................................................................................................................................................................................................*.............................................. + // vmulh.vx v8, v8, x5 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... + // vmulh.vx v9, v9, x5 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... + // vmulh.vx v10, v10, x5 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... + // vmulh.vx v11, v11, x5 // ......................................................................................................................................................................................................................................................................................................................................*.............................................................. + // vmulh.vx v12, v12, x5 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ + // vmulh.vx v13, v13, x5 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vmulh.vx v14, v14, x5 // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... + // vmulh.vx v15, v15, x5 // .................................................................................................................................................................................................................................................................................................................................................................*................................... + // vsub.vv v8, v24, v8 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ + // vsub.vv v9, v26, v9 // ...........................................................................................................................................................................................................................................................................................................................................................*......................................... + // vsub.vv v10, v28, v10 // .................................................................................................................................................................................................................................................................................................................................................................*................................... + // vsub.vv v11, v30, v11 // ........................................................................................................................................................................................................................................................................................................................................*............................................................ + // vsub.vv v12, v25, v12 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vsub.vv v13, v27, v13 // ............................................................................................................................................................................................................................................................................................................................................................*........................................ + // vsub.vv v14, v29, v14 // ................................................................................................................................................................................................................................................................................................................................................................*.................................... + // vsub.vv v15, v31, v15 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ + // vsub.vv v24, v16, v8 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... + // vsub.vv v26, v18, v9 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... + // vsub.vv v28, v20, v10 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... + // vsub.vv v30, v22, v11 // ..........................................................................................................................................................................................................................................................................................................................................*.......................................................... + // vsub.vv v25, v17, v12 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vsub.vv v27, v19, v13 // ...............................................................................................................................................................................................................................................................................................................................................................*..................................... + // vsub.vv v29, v21, v14 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vsub.vv v31, v23, v15 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. + // vadd.vv v16, v16, v8 // ..........................................................................................................................................................................................................................................................................................................................................................................*.......................... + // vadd.vv v18, v18, v9 // .............................................................................................................................................................................................................................................................................................................................................................*....................................... + // vadd.vv v20, v20, v10 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. + // vadd.vv v22, v22, v11 // .................................................................................................................................................................................................................................................................................................................................................*................................................... + // vadd.vv v17, v17, v12 // ..................................................................................................................................................................................................................................................................................................................................................................*.................................. + // vadd.vv v19, v19, v13 // ..............................................................................................................................................................................................................................................................................................................................................................*...................................... + // vadd.vv v21, v21, v14 // ....................................................................................................................................................................................................................................................................................................................................................................*................................ + // vadd.vv v23, v23, v15 // ......................................................................................................................................................................................................................................................................................................................................................................*.............................. + // vl4re16.v v4, (x16) // ........................................................................................................................................................................................................................................................................................................................................................*............................................ + // addi x14, x10, (1*128)*2 // .....................................................................................................................................................................................................................................................................................................*............................................................................................... + // addi x15, x10, (64+1*128)*2 // ....................................................................................................................................................................................................................................................................................................*................................................................................................ + // vmul.vv v8, v20, v4 // .....................................................................................................................................................................................................................................................................................................................................................................*............................... + // vmul.vv v9, v22, v4 // ...................................................................................................................................................................................................................................................................................................................................................................*................................. + // vmul.vv v12, v28, v5 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... + // vmul.vv v13, v30, v5 // .........................................................................................................................................................................................................................................................................................................................................................*........................................... + // vmul.vx v8, v8, x6 // .......................................................................................................................................................................................................................................................................................................................................................................*............................. + // vmul.vx v9, v9, x6 // .................................................................................................................................................................................................................................................................................................................................................................................*................... + // vmul.vx v12, v12, x6 // .................................................................................................................................................................................................................................................................................................................................................................................*................... + // vmul.vx v13, v13, x6 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ + // vmulh.vv v20, v20, v4 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... + // vmulh.vv v22, v22, v4 // ............................................................................................................................................................................................................................................................................................................................................................................*........................ + // vmulh.vv v28, v28, v5 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... + // vmulh.vv v30, v30, v5 // ..........................................................................................................................................................................................................................................................................................................................................................*.......................................... + // vmulh.vx v8, v8, x5 // .........................................................................................................................................................................................................................................................................................................................................................................*........................... + // vmulh.vx v9, v9, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................*................. + // vmulh.vx v12, v12, x5 // ...................................................................................................................................................................................................................................................................................................................................................................................*................. + // vmulh.vx v13, v13, x5 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vsub.vv v8, v20, v8 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vsub.vv v9, v22, v9 // .....................................................................................................................................................................................................................................................................................................................................................................................*............... + // vsub.vv v12, v28, v12 // .....................................................................................................................................................................................................................................................................................................................................................................................*............... + // vsub.vv v13, v30, v13 // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vsub.vv v10, v16, v8 // .........................................................................................................................................................................................................................................................................................................................................................................................*........... + // vsub.vv v11, v18, v9 // .......................................................................................................................................................................................................................................................................................................................................................................................*............. + // vsub.vv v14, v24, v12 // .......................................................................................................................................................................................................................................................................................................................................................................................*............. + // vsub.vv v15, v26, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................*................ + // vadd.vv v8, v16, v8 // .........................................................................................................................................................................................................................................................................................................................................................................................*........... + // vadd.vv v9, v18, v9 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vadd.vv v12, v24, v12 // ........................................................................................................................................................................................................................................................................................................................................................................................*............ + // vadd.vv v13, v26, v13 // ....................................................................................................................................................................................................................................................................................................................................................................................*................ + // vs8r.v v8, (x14) // ...................................................................................................................................................................................................................................................................................................................................................................................................*. + // vmul.vv v8, v21, v6 // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... + // vmul.vv v9, v23, v6 // ...........................................................................................................................................................................................................................................................................................................................................................................*......................... + // vmul.vv v12, v29, v7 // .............................................................................................................................................................................................................................................................................................................................................................................*....................... + // vmul.vv v13, v31, v7 // ...............................................................................................................................................................................................................................................................................................................................................................................*..................... + // vmul.vx v8, v8, x6 // ............................................................................................................................................................................................................................................................................................................................................................................................*........ + // vmul.vx v9, v9, x6 // ................................................................................................................................................................................................................................................................................................................................................................................*.................... + // vmul.vx v12, v12, x6 // ..........................................................................................................................................................................................................................................................................................................................................................................................*.......... + // vmul.vx v13, v13, x6 // ........................................................................................................................................................................................................................................................................................................................................................................................*............ + // vmulh.vv v21, v21, v6 // ......................................................................................................................................................................................................................................................................................................................................................................................*.............. + // vmulh.vv v23, v23, v6 // ........................................................................................................................................................................................................................................................................................................................................................................*............................ + // vmulh.vv v29, v29, v7 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... + // vmulh.vv v31, v31, v7 // ..............................................................................................................................................................................................................................................................................................................................................................................*...................... + // vmulh.vx v8, v8, x5 // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... + // vmulh.vx v9, v9, x5 // ..................................................................................................................................................................................................................................................................................................................................................................................*.................. + // vmulh.vx v12, v12, x5 // ............................................................................................................................................................................................................................................................................................................................................................................................*........ + // vmulh.vx v13, v13, x5 // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... + // vsub.vv v8, v21, v8 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vsub.vv v9, v23, v9 // ...........................................................................................................................................................................................................................................................................................................................................................................................*......... + // vsub.vv v12, v29, v12 // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... + // vsub.vv v13, v31, v13 // .............................................................................................................................................................................................................................................................................................................................................................................................*....... + // vsub.vv v10, v17, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vsub.vv v11, v19, v9 // ..............................................................................................................................................................................................................................................................................................................................................................................................*...... + // vsub.vv v14, v25, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................*... + // vsub.vv v15, v27, v13 // ...............................................................................................................................................................................................................................................................................................................................................................................................*..... + // vadd.vv v8, v17, v8 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.. + // vadd.vv v9, v19, v9 // .............................................................................................................................................................................................................................................................................................................................................................................................*....... + // vadd.vv v12, v25, v12 // .................................................................................................................................................................................................................................................................................................................................................................................................*... + // vadd.vv v13, v27, v13 // ................................................................................................................................................................................................................................................................................................................................................................................................*.... + // vs8r.v v8, (x15) // ....................................................................................................................................................................................................................................................................................................................................................................................................* + // ld x8, 0*8(x2) // ...................................................................................................................................................................................................................................................................................................................................*................................................................. + // ld x9, 1*8(x2) // ..................................................................................................................................................................................................................................................................................................................................*.................................................................. + // ld x18, 2*8(x2) // .............................................................................................................................................................................................................................................................................................................................*....................................................................... + // ld x19, 3*8(x2) // ...................................................................................................................................................................................................................................................................................................................................................................................................*. + // ld x20, 4*8(x2) // ................................................................................................................................................................................................................................................................................................................................*.................................................................... + // ld x21, 5*8(x2) // .................................................................................................................................................................................................................................................................................................................................*................................................................... + // ld x22, 6*8(x2) // ..........................................................................................................................................................................................................................................................................................................................*.......................................................................... + // ld x23, 7*8(x2) // ............................................................................................................................................................................................................................................................................................................................*........................................................................ + // ld x24, 8*8(x2) // ..............................................................................................................................................................................................................................................................................................................................*...................................................................... + // ld x25, 9*8(x2) // .........................................................................................................................................................................................................................................................................................................................*........................................................................... + // ld x26, 10*8(x2) // ....................................................................................................................................................................................................................................................................................................................................*................................................................ + // ld x27, 11*8(x2) // ...........................................................................................................................................................................................................................................................................................................................*......................................................................... + // ld x3, 12*8(x2) // ...............................................................................................................................................................................................................................................................................................................................*..................................................................... + // ld x4, 13*8(x2) // ........................................................................................................................................................................................................................................................................................................................*............................................................................ + // ld x1, 14*8(x2) // ...........................................................................................................................................................................................................................................................................................................................................*......................................................... + // addi x2, x2, 8*15 // ....................................................................................................................................................................................................................................................................................................................................................................................................* + + end: + + +ret \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 7f2310a63..4bfaac12c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,6 +9,7 @@ unicorn==2.1.4 black==26.5.1 pydoclint==0.8.5 flake8==7.3.0 +odfpy==1.4.1 # Optional dependencies for documentation (only for Python >= 3.11) sphinx==8.2.3 ; python_version >= "3.11" diff --git a/rvv_run_logs/dilithium_normal2ntt_order_rvv_vlen128_c908.log b/rvv_run_logs/dilithium_normal2ntt_order_rvv_vlen128_c908.log new file mode 100644 index 000000000..fbdb0e7fb --- /dev/null +++ b/rvv_run_logs/dilithium_normal2ntt_order_rvv_vlen128_c908.log @@ -0,0 +1,1339 @@ +* Example: dilithium_normal2ntt_order_rvv_vlen128_c908... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop:SLOTHY version: unknown +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908:Optimizing loop normal2ntt_order_rvv_vlen128_loop (72 instructions) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:[0.1035s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 13.0, IPC ~ 0.54), bound (Cycles ~ 10.0, IPC ~ 0.70) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:OPTIMAL, wall time: 0.267138 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Minimum number of stalls: 9 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:[0.3782s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.32), bound (Cycles ~ 22.0, IPC ~ 0.32) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:OPTIMAL, wall time: 0.436833 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Minimum number of stalls: 18 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:[0.9028s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.73), bound (Cycles ~ 11.0, IPC ~ 0.73) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:OPTIMAL, wall time: 0.960302 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Minimum number of stalls: 7 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:[0.1094s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.28), bound (Cycles ~ 25.0, IPC ~ 0.28) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:OPTIMAL, wall time: 0.231617 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Minimum number of stalls: 21 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:[0.1624s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 7.0, IPC ~ 1.00), bound (Cycles ~ 7.0, IPC ~ 1.00) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:OPTIMAL, wall time: 0.290464 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Minimum number of stalls: 3 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:[0.7640s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.32), bound (Cycles ~ 19.0, IPC ~ 0.37) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:OPTIMAL, wall time: 0.975842 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Minimum number of stalls: 18 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:[0.1747s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 13.0, IPC ~ 0.54), bound (Cycles ~ 13.0, IPC ~ 0.54) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:OPTIMAL, wall time: 0.258348 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Minimum number of stalls: 9 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:[0.2062s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 21.0, IPC ~ 0.38), bound (Cycles ~ 18.0, IPC ~ 0.44) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:OPTIMAL, wall time: 0.333222 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Minimum number of stalls: 17 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:[1.6766s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 19.0, IPC ~ 0.37), bound (Cycles ~ 19.0, IPC ~ 0.37) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:OPTIMAL, wall time: 1.764144 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Minimum number of stalls: 15 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:[0.3584s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.78), bound (Cycles ~ 9.0, IPC ~ 0.78) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:OPTIMAL, wall time: 0.655476 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Minimum number of stalls: 5 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:Initial stalls +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:[0.1355s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 13.0, IPC ~ 0.54), bound (Cycles ~ 10.0, IPC ~ 0.70) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:OPTIMAL, wall time: 0.189919 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.0_7:Minimum number of stalls: 9 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.4_11:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.4_11:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.4_11:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.4_11:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.4_11:[0.0655s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.28), bound (Cycles ~ 22.0, IPC ~ 0.32) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.4_11:OPTIMAL, wall time: 0.190770 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.4_11:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.4_11.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.4_11:Minimum number of stalls: 21 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:[0.0927s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.32), bound (Cycles ~ 22.0, IPC ~ 0.32) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:OPTIMAL, wall time: 0.266916 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.7_14:Minimum number of stalls: 18 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.11_18:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.11_18:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.11_18:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.11_18:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.11_18:[0.2065s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.70), bound (Cycles ~ 10.0, IPC ~ 0.70) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.11_18:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.11_18:OPTIMAL, wall time: 0.328754 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.11_18:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.11_18.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.11_18:Minimum number of stalls: 6 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:[0.2836s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.73), bound (Cycles ~ 11.0, IPC ~ 0.73) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:OPTIMAL, wall time: 0.646532 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.14_22:Minimum number of stalls: 7 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.18_25:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.18_25:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.18_25:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.18_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.18_25:[0.8954s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 19.0, IPC ~ 0.37), bound (Cycles ~ 19.0, IPC ~ 0.37) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.18_25:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.18_25:OPTIMAL, wall time: 1.429310 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.18_25:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.18_25.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.18_25:Minimum number of stalls: 15 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:[0.4889s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.28), bound (Cycles ~ 25.0, IPC ~ 0.28) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:OPTIMAL, wall time: 0.768893 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.22_29:Minimum number of stalls: 21 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.25_32:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.25_32:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.25_32:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.25_32:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.25_32:[3.9487s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 16.0, IPC ~ 0.44), bound (Cycles ~ 16.0, IPC ~ 0.44) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.25_32:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.25_32:OPTIMAL, wall time: 4.576397 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.25_32:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.25_32.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.25_32:Minimum number of stalls: 12 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:[0.6004s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 7.0, IPC ~ 1.00), bound (Cycles ~ 7.0, IPC ~ 1.00) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:OPTIMAL, wall time: 1.167831 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.29_36:Minimum number of stalls: 3 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.32_40:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.32_40:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.32_40:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.32_40:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.32_40:[0.1187s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 14.0, IPC ~ 0.57), bound (Cycles ~ 14.0, IPC ~ 0.57) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.32_40:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.32_40:OPTIMAL, wall time: 0.535802 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.32_40:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.32_40.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.32_40:Minimum number of stalls: 10 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:[3.7778s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.32), bound (Cycles ~ 19.0, IPC ~ 0.37) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:OPTIMAL, wall time: 4.924784 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.36_43:Minimum number of stalls: 18 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.40_47:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.40_47:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.40_47:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.40_47:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.40_47:[0.2895s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.32), bound (Cycles ~ 22.0, IPC ~ 0.32) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.40_47:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.40_47:OPTIMAL, wall time: 0.575324 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.40_47:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.40_47.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.40_47:Minimum number of stalls: 18 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:[0.2528s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 13.0, IPC ~ 0.54), bound (Cycles ~ 13.0, IPC ~ 0.54) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:OPTIMAL, wall time: 0.613463 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.43_50:Minimum number of stalls: 9 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.47_54:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.47_54:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.47_54:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.47_54:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.47_54:[1.2706s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.70), bound (Cycles ~ 10.0, IPC ~ 0.70) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.47_54:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.47_54:OPTIMAL, wall time: 1.759334 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.47_54:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.47_54.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.47_54:Minimum number of stalls: 6 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:[1.2241s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 21.0, IPC ~ 0.38), bound (Cycles ~ 18.0, IPC ~ 0.44) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:OPTIMAL, wall time: 1.787445 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.50_58:Minimum number of stalls: 17 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.54_61:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.54_61:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.54_61:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.54_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.54_61:[0.8481s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.28), bound (Cycles ~ 22.0, IPC ~ 0.32) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.54_61:OPTIMAL, wall time: 1.052860 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.54_61:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.54_61.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.54_61:Minimum number of stalls: 21 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:[1.3702s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 19.0, IPC ~ 0.37), bound (Cycles ~ 19.0, IPC ~ 0.37) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:OPTIMAL, wall time: 1.579366 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.58_65:Minimum number of stalls: 15 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.61_68:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.61_68:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.61_68:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.61_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.61_68:[0.6273s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.70), bound (Cycles ~ 10.0, IPC ~ 0.70) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.61_68:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.61_68:OPTIMAL, wall time: 0.669752 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.61_68:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.61_68.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.61_68:Minimum number of stalls: 6 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:[0.1857s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.78), bound (Cycles ~ 9.0, IPC ~ 0.78) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:OPTIMAL, wall time: 0.246784 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.65_72:Minimum number of stalls: 5 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 0- 1]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 1- 2]: ****...... (4) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 2- 4]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 4- 5]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 5- 7]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 7- 8]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 8- 10]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 10- 11]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 11- 12]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 12- 14]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 14- 15]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 15- 17]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 17- 18]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 18- 20]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 20- 21]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 21- 23]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 23- 24]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 24- 25]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 25- 27]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 27- 28]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 28- 30]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 30- 31]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 31- 33]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 33- 34]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 34- 36]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 36- 37]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 37- 38]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 38- 40]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 40- 41]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 41- 43]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 43- 44]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 44- 46]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 46- 47]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 47- 48]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 48- 50]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 50- 51]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 51- 53]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 53- 54]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 54- 56]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 56- 57]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 57- 59]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 59- 60]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 60- 61]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 61- 63]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 63- 64]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 64- 66]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 66- 67]: *******... (7) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 67- 69]: ******.... (6) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 69- 70]: *****..... (5) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split:[ 70- 72]: ***....... (3) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.split_heuristic_full:OK! +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:INFEASIBLE, wall time: 2.801740 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:INFEASIBLE, wall time: 0.507818 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:INFEASIBLE, wall time: 1.558818 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:[42.0088s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 174.0, IPC ~ 0.41), bound (Cycles ~ 172.0, IPC ~ 0.42) +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:OPTIMAL, wall time: 49.411833 s +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Booleans in result: 0 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf.selfcheck:OK! +WARNING:dilithium_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split_estimtate_perf:Minimum number of stalls: 138 +INFO:dilithium_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.split.split_heuristic_full_with_stalls:OK! diff --git a/rvv_run_logs/dilithium_ntt2normal_order_rvv_vlen128_c908.log b/rvv_run_logs/dilithium_ntt2normal_order_rvv_vlen128_c908.log new file mode 100644 index 000000000..664900053 --- /dev/null +++ b/rvv_run_logs/dilithium_ntt2normal_order_rvv_vlen128_c908.log @@ -0,0 +1,4483 @@ +* Example: dilithium_ntt2normal_order_rvv_vlen128_c908... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop:SLOTHY version: unknown +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908:Optimizing loop ntt2normal_order_rvv_vlen128_loop (72 instructions) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:[0.0879s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 38.0, IPC ~ 0.37) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:OPTIMAL, wall time: 0.255405 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Minimum number of stalls: 31 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:[0.2067s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.38), bound (Cycles ~ 39.0, IPC ~ 0.38) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:OPTIMAL, wall time: 0.348137 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Minimum number of stalls: 31 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:[0.4093s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 29.0, IPC ~ 0.48) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:OPTIMAL, wall time: 0.530144 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Minimum number of stalls: 22 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:[0.2388s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.44), bound (Cycles ~ 29.0, IPC ~ 0.52) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:OPTIMAL, wall time: 0.312804 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Minimum number of stalls: 26 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:[0.1172s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.50), bound (Cycles ~ 28.0, IPC ~ 0.50) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:OPTIMAL, wall time: 0.266169 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Minimum number of stalls: 21 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:Initial stalls +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:[0.3599s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.36), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:[0.3675s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:[0.3783s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.39), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:[0.3882s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.40), bound (Cycles ~ 11.0, IPC ~ 1.27) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:OPTIMAL, wall time: 0.670916 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:[7.2328s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:[7.2622s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.40), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:OPTIMAL, wall time: 7.445573 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:[0.2510s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.45), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:OPTIMAL, wall time: 0.676352 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:INFEASIBLE, wall time: 0.024391 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:[0.5497s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:OPTIMAL, wall time: 0.942380 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Minimum number of stalls: 31 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:INFEASIBLE, wall time: 0.049562 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:[0.2323s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.36), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:OPTIMAL, wall time: 0.338378 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Minimum number of stalls: 34 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:[2.7002s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:[2.7175s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.40), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:OPTIMAL, wall time: 3.045249 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:[0.4161s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:OPTIMAL, wall time: 0.926551 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:[0.2621s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.38), bound (Cycles ~ 24.0, IPC ~ 0.62) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:[0.2836s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.42), bound (Cycles ~ 24.0, IPC ~ 0.62) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:[0.2967s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.43), bound (Cycles ~ 24.0, IPC ~ 0.62) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:OPTIMAL, wall time: 1.337836 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Minimum number of stalls: 27 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:[7.5753s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 12.0, IPC ~ 1.17) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:[7.5995s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.45), bound (Cycles ~ 12.0, IPC ~ 1.17) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:OPTIMAL, wall time: 8.138863 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Minimum number of stalls: 24 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:[8.0627s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.47), bound (Cycles ~ 16.0, IPC ~ 0.94) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:OPTIMAL, wall time: 9.077681 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Minimum number of stalls: 24 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:[0.4148s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.47), bound (Cycles ~ 9.0, IPC ~ 1.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:[0.4302s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 9.0, IPC ~ 1.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:[0.4404s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.50), bound (Cycles ~ 9.0, IPC ~ 1.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:OPTIMAL, wall time: 0.748806 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Minimum number of stalls: 21 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:[11.1849s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 26.0, IPC ~ 0.54) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:OPTIMAL, wall time: 12.236873 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:[0.2791s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.42), bound (Cycles ~ 14.0, IPC ~ 1.07) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:[0.2973s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.45), bound (Cycles ~ 14.0, IPC ~ 1.07) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:[0.3153s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.48), bound (Cycles ~ 14.0, IPC ~ 1.07) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:OPTIMAL, wall time: 0.821903 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Minimum number of stalls: 23 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:[3.0869s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.39), bound (Cycles ~ 9.0, IPC ~ 1.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:OPTIMAL, wall time: 3.670282 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Minimum number of stalls: 29 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:[4.5373s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.41), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:[4.5547s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.42), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:[4.5868s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.43), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:[4.6032s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.44), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:OPTIMAL, wall time: 4.945846 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Minimum number of stalls: 26 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:[3.0319s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 24.0, IPC ~ 0.58), bound (Cycles ~ 8.0, IPC ~ 1.75) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:OPTIMAL, wall time: 3.518904 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Minimum number of stalls: 17 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:[0.8232s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.54), bound (Cycles ~ 13.0, IPC ~ 1.08) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:[0.8336s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.56), bound (Cycles ~ 13.0, IPC ~ 1.08) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:[0.8454s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 23.0, IPC ~ 0.61), bound (Cycles ~ 13.0, IPC ~ 1.08) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:[0.8533s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.64), bound (Cycles ~ 18.0, IPC ~ 0.78) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:[0.8639s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 21.0, IPC ~ 0.67), bound (Cycles ~ 18.0, IPC ~ 0.78) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:OPTIMAL, wall time: 1.470133 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Minimum number of stalls: 14 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:[3.2833s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:[3.3002s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.47), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:[3.3138s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:OPTIMAL, wall time: 3.372546 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_14:Minimum number of stalls: 22 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:[4.9140s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:[4.9398s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.40), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:OPTIMAL, wall time: 5.515647 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.4_18:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:[6.8919s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.42), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:[6.9330s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.45), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:OPTIMAL, wall time: 7.404187 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.7_22:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:[0.6661s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:[0.6714s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.54), bound (Cycles ~ 26.0, IPC ~ 0.54) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:OPTIMAL, wall time: 0.857326 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.11_25:Minimum number of stalls: 19 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:INFEASIBLE, wall time: 0.024817 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:[0.3643s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.21), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:[0.3751s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.21), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:[0.3821s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.21), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:[0.3891s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.22), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:[0.3974s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.36), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:[0.4192s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.38), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:OPTIMAL, wall time: 1.748355 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.14_29:Minimum number of stalls: 31 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:INFEASIBLE, wall time: 1.605479 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:[2.0819s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.32), bound (Cycles ~ 13.0, IPC ~ 1.08) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:[2.2167s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 13.0, IPC ~ 1.08) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:OPTIMAL, wall time: 3.118306 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.18_32:Minimum number of stalls: 31 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:[1.6274s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:[1.6635s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.40), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:OPTIMAL, wall time: 1.710295 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.22_36:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:[4.1501s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.45), bound (Cycles ~ 21.0, IPC ~ 0.71) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:[4.1728s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.47), bound (Cycles ~ 21.0, IPC ~ 0.71) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:OPTIMAL, wall time: 4.708994 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_40:Minimum number of stalls: 24 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:[5.3275s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 8.0, IPC ~ 1.75) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:[5.3518s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.50), bound (Cycles ~ 8.0, IPC ~ 1.75) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:OPTIMAL, wall time: 5.610103 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.29_43:Minimum number of stalls: 21 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:[0.3438s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.47), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:OPTIMAL, wall time: 0.839852 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.32_47:Minimum number of stalls: 24 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:[0.6279s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.38), bound (Cycles ~ 9.0, IPC ~ 1.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:OPTIMAL, wall time: 0.771474 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.36_50:Minimum number of stalls: 30 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:INFEASIBLE, wall time: 0.058474 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:[0.9271s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.34), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:OPTIMAL, wall time: 1.847503 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.40_54:Minimum number of stalls: 34 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:INFEASIBLE, wall time: 0.315294 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:[1.7714s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.33), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:[1.7909s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.34), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:[1.8017s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.35), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:[1.8160s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.36), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:OPTIMAL, wall time: 2.235758 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_58:Minimum number of stalls: 34 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:[2.6618s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.38), bound (Cycles ~ 8.0, IPC ~ 1.75) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:[2.6779s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.41), bound (Cycles ~ 8.0, IPC ~ 1.75) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:OPTIMAL, wall time: 3.088859 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.47_61:Minimum number of stalls: 27 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:[0.7038s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.50), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:OPTIMAL, wall time: 1.709614 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_65:Minimum number of stalls: 22 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:[4.0766s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:[4.1230s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:OPTIMAL, wall time: 4.540811 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.54_68:Minimum number of stalls: 22 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:[2.4928s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.41), bound (Cycles ~ 25.0, IPC ~ 0.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:[2.5115s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.42), bound (Cycles ~ 25.0, IPC ~ 0.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:[2.5181s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.45), bound (Cycles ~ 28.0, IPC ~ 0.50) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:OPTIMAL, wall time: 2.648778 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.58_72:Minimum number of stalls: 24 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 48- 50]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 50- 51]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 51- 53]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 53- 54]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 56]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.split_heuristic_full:OK! +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 0.273139 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 0.832047 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 3.513365 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:[172.2383s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 168.0, IPC ~ 0.43), bound (Cycles ~ 168.0, IPC ~ 0.43) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:OPTIMAL, wall time: 173.888148 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Booleans in result: 2163 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Minimum number of stalls: 132 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.split_heuristic_full_with_stalls:OK! +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.halving_heuristic_1:OK! +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop:Apply halving heuristic to optimize two halves of consecutive loop kernels... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:[0.2709s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.39), bound (Cycles ~ 36.0, IPC ~ 0.39) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:OPTIMAL, wall time: 0.318907 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Minimum number of stalls: 29 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:[0.4051s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.45), bound (Cycles ~ 33.0, IPC ~ 0.45) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:OPTIMAL, wall time: 0.586417 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[0.2539s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.54), bound (Cycles ~ 23.0, IPC ~ 0.61) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:OPTIMAL, wall time: 0.978550 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Minimum number of stalls: 19 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:[4.6379s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.45), bound (Cycles ~ 33.0, IPC ~ 0.45) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:OPTIMAL, wall time: 5.242526 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:[1.5134s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 32.0, IPC ~ 0.44) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:OPTIMAL, wall time: 1.802140 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:Initial stalls +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:[0.3334s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.36), bound (Cycles ~ 8.0, IPC ~ 1.75) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:[0.3442s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.39), bound (Cycles ~ 8.0, IPC ~ 1.75) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:OPTIMAL, wall time: 0.537219 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Minimum number of stalls: 29 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:[0.3137s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:[0.3587s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.40), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:OPTIMAL, wall time: 0.841952 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:[3.7381s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.45), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:[3.7764s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.50), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:OPTIMAL, wall time: 4.821417 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Minimum number of stalls: 22 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:[0.2289s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 11.0, IPC ~ 1.27) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:[0.2449s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.54), bound (Cycles ~ 11.0, IPC ~ 1.27) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:OPTIMAL, wall time: 1.016686 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Minimum number of stalls: 19 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:[0.5621s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.56), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:OPTIMAL, wall time: 0.610645 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Minimum number of stalls: 19 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:[0.2701s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 11.0, IPC ~ 1.27) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:OPTIMAL, wall time: 1.679430 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:[7.0069s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.47), bound (Cycles ~ 12.0, IPC ~ 1.17) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:[7.0402s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.52), bound (Cycles ~ 13.0, IPC ~ 1.08) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:[7.0624s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.54), bound (Cycles ~ 22.0, IPC ~ 0.64) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:[7.0841s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.56), bound (Cycles ~ 22.0, IPC ~ 0.64) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:OPTIMAL, wall time: 8.462258 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Minimum number of stalls: 18 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:[4.0851s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.60), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:[4.1350s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 23.0, IPC ~ 0.65), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:[4.1485s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.68), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:[4.1676s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 20.0, IPC ~ 0.75), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:[4.1925s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 19.0, IPC ~ 0.79), bound (Cycles ~ 15.0, IPC ~ 1.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:OPTIMAL, wall time: 4.499352 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Minimum number of stalls: 11 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[10.9396s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[10.9510s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.45), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[10.9625s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.47), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[10.9739s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[10.9877s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.50), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[10.9999s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.56), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[11.0122s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 24.0, IPC ~ 0.58), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[11.0222s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 23.0, IPC ~ 0.61), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[11.0302s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.64), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:OPTIMAL, wall time: 12.325565 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Minimum number of stalls: 15 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:[3.0456s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.44), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:[3.0716s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.45), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:[3.1048s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.47), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:OPTIMAL, wall time: 3.567913 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Minimum number of stalls: 24 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:[10.9274s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.41), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:[10.9451s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.42), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:[10.9601s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.45), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:OPTIMAL, wall time: 11.634748 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Minimum number of stalls: 24 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:[0.8616s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.39), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:[0.9278s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.42), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:OPTIMAL, wall time: 1.438087 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Minimum number of stalls: 26 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:[0.3060s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.38), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:[0.3304s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.42), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:OPTIMAL, wall time: 1.085287 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:[1.2863s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:OPTIMAL, wall time: 1.473897 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Minimum number of stalls: 22 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:INFEASIBLE, wall time: 2.244055 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:[9.3665s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.36), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:OPTIMAL, wall time: 9.800768 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Minimum number of stalls: 34 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:[7.0945s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.36), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:[7.1128s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:[7.1421s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.40), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:OPTIMAL, wall time: 8.144466 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:[11.1525s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:OPTIMAL, wall time: 12.057382 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Minimum number of stalls: 22 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: *****......... (5) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *********..... (9) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:INFEASIBLE, wall time: 0.106985 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:[0.7309s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.34), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:[0.7496s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.36), bound (Cycles ~ 21.0, IPC ~ 0.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:OPTIMAL, wall time: 0.891352 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_14:Minimum number of stalls: 32 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:[0.2200s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:[0.2368s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.40), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:OPTIMAL, wall time: 0.672408 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.4_18:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:[12.3018s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.42), bound (Cycles ~ 12.0, IPC ~ 1.25) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:OPTIMAL, wall time: 12.850356 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.7_22:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:INFEASIBLE, wall time: 0.025826 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:[8.8805s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.28), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:[8.9121s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.34), bound (Cycles ~ 9.0, IPC ~ 1.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:[8.9282s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.37), bound (Cycles ~ 9.0, IPC ~ 1.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:OPTIMAL, wall time: 9.276304 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.11_25:Minimum number of stalls: 31 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:[3.9458s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.42), bound (Cycles ~ 8.0, IPC ~ 1.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:OPTIMAL, wall time: 4.721788 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.14_29:Minimum number of stalls: 28 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:[0.2681s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:OPTIMAL, wall time: 0.976412 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.18_32:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:[0.7745s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 24.0, IPC ~ 0.58), bound (Cycles ~ 16.0, IPC ~ 0.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:[0.7925s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.64), bound (Cycles ~ 16.0, IPC ~ 0.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:[0.8106s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 20.0, IPC ~ 0.70), bound (Cycles ~ 16.0, IPC ~ 0.88) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:OPTIMAL, wall time: 0.993657 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.22_36:Minimum number of stalls: 13 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:[0.8783s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.68), bound (Cycles ~ 12.0, IPC ~ 1.25) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:[0.8894s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 20.0, IPC ~ 0.75), bound (Cycles ~ 12.0, IPC ~ 1.25) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:[0.8965s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 19.0, IPC ~ 0.79), bound (Cycles ~ 12.0, IPC ~ 1.25) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:[0.9026s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 18.0, IPC ~ 0.83), bound (Cycles ~ 12.0, IPC ~ 1.25) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:[0.9179s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 16.0, IPC ~ 0.94), bound (Cycles ~ 16.0, IPC ~ 0.94) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:OPTIMAL, wall time: 1.024119 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_40:Minimum number of stalls: 8 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[1.9853s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 23.0, IPC ~ 0.61), bound (Cycles ~ 14.0, IPC ~ 1.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[2.0212s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.64), bound (Cycles ~ 14.0, IPC ~ 1.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:[2.0386s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 21.0, IPC ~ 0.67), bound (Cycles ~ 15.0, IPC ~ 0.93) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:OPTIMAL, wall time: 2.199982 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.29_43:Minimum number of stalls: 14 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:[5.2584s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.39), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:[5.2777s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.41), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:[5.2903s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.42), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:[5.3129s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.43), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:[5.3254s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.45), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:[5.3385s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.47), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:OPTIMAL, wall time: 5.668362 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.32_47:Minimum number of stalls: 24 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:[0.4355s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.42), bound (Cycles ~ 14.0, IPC ~ 1.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:[0.4592s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 14.0, IPC ~ 1.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:[0.4712s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.47), bound (Cycles ~ 14.0, IPC ~ 1.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:[0.4822s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.48), bound (Cycles ~ 14.0, IPC ~ 1.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:[0.4999s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.54), bound (Cycles ~ 26.0, IPC ~ 0.54) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:OPTIMAL, wall time: 0.812070 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.36_50:Minimum number of stalls: 19 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:[6.0870s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.45), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:[6.0996s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.47), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:[6.1113s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.52), bound (Cycles ~ 10.0, IPC ~ 1.40) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:OPTIMAL, wall time: 6.336943 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.40_54:Minimum number of stalls: 20 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:[0.5727s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.44), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:OPTIMAL, wall time: 2.105967 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_58:Minimum number of stalls: 26 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:INFEASIBLE, wall time: 0.450513 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:[2.3984s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.33), bound (Cycles ~ 9.0, IPC ~ 1.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:OPTIMAL, wall time: 3.173207 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.47_61:Minimum number of stalls: 35 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:INFEASIBLE, wall time: 2.771152 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:[1.1005s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.34), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:[1.2447s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.35), bound (Cycles ~ 9.0, IPC ~ 1.67) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:OPTIMAL, wall time: 2.056885 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_65:Minimum number of stalls: 35 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:[0.6437s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.40), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:[0.6687s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 9.0, IPC ~ 1.56) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:OPTIMAL, wall time: 0.882924 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.54_68:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:[3.2691s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.44), bound (Cycles ~ 7.0, IPC ~ 2.00) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:OPTIMAL, wall time: 3.764220 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Booleans in result: 0 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.58_72:Minimum number of stalls: 25 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 1]: ******........ (6) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *******....... (7) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 5- 7]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 8]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 8- 10]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 18]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 18- 20]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 20- 21]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 21- 23]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 23- 24]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 25]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 28]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 30- 31]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 31- 33]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 33- 34]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 36]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 36- 37]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 38]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 38- 40]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 40- 41]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 41- 43]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 43- 44]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ************.. (12) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 46- 47]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 48]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 50- 51]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 51- 53]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 53- 54]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 56]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 56- 57]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 60]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 60- 61]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 63- 64]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ************** (14) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 67]: *************. (13) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 67- 69]: ***********... (11) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 70]: **********.... (10) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********...... (8) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.split_heuristic_full:OK! +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 1.113999 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 0.810402 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 19.310372 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:[980.2791s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 170.0, IPC ~ 0.42), bound (Cycles ~ 165.0, IPC ~ 0.44) +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:OPTIMAL, wall time: 989.885383 s +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Booleans in result: 2159 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf.selfcheck:OK! +WARNING:dilithium_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Minimum number of stalls: 134 +INFO:dilithium_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.split_heuristic_full_with_stalls:OK! diff --git a/rvv_run_logs/dilithium_poly_basemul_acc_rvv_vlen128_c908.log b/rvv_run_logs/dilithium_poly_basemul_acc_rvv_vlen128_c908.log new file mode 100644 index 000000000..125bcd8fe --- /dev/null +++ b/rvv_run_logs/dilithium_poly_basemul_acc_rvv_vlen128_c908.log @@ -0,0 +1,22 @@ +* Example: dilithium_poly_basemul_acc_rvv_vlen128_c908... +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop:SLOTHY version: unknown +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908:Optimizing loop poly_basemul_acc_rvv_vlen128_loop (13 instructions) ... +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 0.188041 s +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Attempt optimization with max 64 stalls... +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:[0.6364s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.19), bound (Cycles ~ 31.0, IPC ~ 0.42) +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:[0.6726s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.21), bound (Cycles ~ 31.0, IPC ~ 0.42) +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:[0.6969s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.21), bound (Cycles ~ 31.0, IPC ~ 0.42) +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:[0.7300s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.21), bound (Cycles ~ 31.0, IPC ~ 0.42) +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:[0.8911s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.22), bound (Cycles ~ 31.0, IPC ~ 0.42) +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:[0.9371s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.22), bound (Cycles ~ 31.0, IPC ~ 0.42) +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:OPTIMAL, wall time: 1.295610 s +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Booleans in result: 0 +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy.selfcheck:OK! +WARNING:dilithium_poly_basemul_acc_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Minimum number of stalls: 52 diff --git a/rvv_run_logs/dilithium_poly_basemul_rvv_vlen128_c908.log b/rvv_run_logs/dilithium_poly_basemul_rvv_vlen128_c908.log new file mode 100644 index 000000000..6c85a7f87 --- /dev/null +++ b/rvv_run_logs/dilithium_poly_basemul_rvv_vlen128_c908.log @@ -0,0 +1,19 @@ +* Example: dilithium_poly_basemul_rvv_vlen128_c908... +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop:SLOTHY version: unknown +INFO:dilithium_poly_basemul_rvv_vlen128_c908:Optimizing loop poly_basemul_rvv_vlen128_loop (11 instructions) ... +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 0.388533 s +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Attempt optimization with max 64 stalls... +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[0.4565s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.18), bound (Cycles ~ 27.0, IPC ~ 0.41) +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[0.4641s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.22), bound (Cycles ~ 27.0, IPC ~ 0.41) +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[0.4724s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.22), bound (Cycles ~ 27.0, IPC ~ 0.41) +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:OPTIMAL, wall time: 0.660615 s +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Booleans in result: 0 +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy.selfcheck:OK! +WARNING:dilithium_poly_basemul_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Minimum number of stalls: 44 diff --git a/rvv_run_logs/dilithium_poly_reduce_rvv_vlen128_c908.log b/rvv_run_logs/dilithium_poly_reduce_rvv_vlen128_c908.log new file mode 100644 index 000000000..782560185 --- /dev/null +++ b/rvv_run_logs/dilithium_poly_reduce_rvv_vlen128_c908.log @@ -0,0 +1,2086 @@ +* Example: dilithium_poly_reduce_rvv_vlen128_c908... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop:SLOTHY version: unknown +INFO:dilithium_poly_reduce_rvv_vlen128_c908:Optimizing loop poly_reduce_rvv_vlen128_loop (16 instructions) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:[0.0690s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:OPTIMAL, wall time: 0.252533 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:[0.0769s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:[0.0779s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:OPTIMAL, wall time: 0.192181 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:[0.3097s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.44), bound (Cycles ~ 6.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:[0.3113s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 6.0, IPC ~ 0.67), bound (Cycles ~ 6.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:OPTIMAL, wall time: 0.425657 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Minimum number of stalls: 4 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:[0.1791s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:[0.1884s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:OPTIMAL, wall time: 0.230050 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:[1.0772s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 3.0, IPC ~ 1.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:OPTIMAL, wall time: 1.308802 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:Initial stalls +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:[0.1751s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 4.0, IPC ~ 0.75), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:[0.1764s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 3.0, IPC ~ 1.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:OPTIMAL, wall time: 0.502288 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:[0.1835s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:OPTIMAL, wall time: 0.526765 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:[2.8647s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 4.0, IPC ~ 0.75), bound (Cycles ~ 4.0, IPC ~ 0.75) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:OPTIMAL, wall time: 3.427499 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Minimum number of stalls: 2 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:[0.8999s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.80), bound (Cycles ~ 4.0, IPC ~ 1.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:[0.9049s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 4.0, IPC ~ 1.00), bound (Cycles ~ 4.0, IPC ~ 1.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:OPTIMAL, wall time: 1.307440 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Minimum number of stalls: 2 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:[1.4173s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:[1.4186s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:OPTIMAL, wall time: 1.883527 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:[0.6643s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:[0.6750s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:[0.6889s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:OPTIMAL, wall time: 1.014914 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:[0.1189s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:[0.1239s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:[0.1263s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 6.0, IPC ~ 0.50), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:[0.1323s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:OPTIMAL, wall time: 0.423964 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:[0.3157s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:OPTIMAL, wall time: 0.401447 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:[2.4270s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.36), bound (Cycles ~ 6.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:[2.4330s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.40), bound (Cycles ~ 6.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:[2.4388s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 7.0, IPC ~ 0.57), bound (Cycles ~ 6.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:[2.4408s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 6.0, IPC ~ 0.67), bound (Cycles ~ 6.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:OPTIMAL, wall time: 2.943422 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Minimum number of stalls: 4 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:[1.3311s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 7.0, IPC ~ 0.43), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:[1.3372s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 6.0, IPC ~ 0.50), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:[1.3430s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:OPTIMAL, wall time: 1.594572 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:[6.9616s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.27), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:[6.9712s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:[6.9770s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:[6.9827s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:OPTIMAL, wall time: 8.241527 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:[3.3957s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.27), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:[3.4021s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:[3.4081s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:[3.4141s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:OPTIMAL, wall time: 4.031409 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:[0.5156s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:[0.5214s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:OPTIMAL, wall time: 1.094451 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:[5.8290s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 7.0, IPC ~ 0.57), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:[5.8368s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 6.0, IPC ~ 0.67), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:[5.8430s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.80), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:OPTIMAL, wall time: 6.216897 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:[0.1182s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.27), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:[0.1204s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:[0.1226s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:[0.1264s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:OPTIMAL, wall time: 0.285084 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:[0.0901s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.27), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:[0.1051s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:[0.1094s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:[0.1152s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:OPTIMAL, wall time: 0.291235 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:[0.2097s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:OPTIMAL, wall time: 0.518569 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:[0.3350s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:OPTIMAL, wall time: 0.888099 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.0_3:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:[0.2947s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:OPTIMAL, wall time: 0.461621 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.1_4:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:[4.0435s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 4.0, IPC ~ 0.75), bound (Cycles ~ 4.0, IPC ~ 0.75) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:OPTIMAL, wall time: 5.314877 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_5:Minimum number of stalls: 2 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:[1.0565s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.80), bound (Cycles ~ 4.0, IPC ~ 1.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:[1.1191s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 4.0, IPC ~ 1.00), bound (Cycles ~ 4.0, IPC ~ 1.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:OPTIMAL, wall time: 1.497829 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.2_6:Minimum number of stalls: 2 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:[0.2440s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:[0.3392s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:OPTIMAL, wall time: 0.680345 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.3_6:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:[4.1659s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:[4.1718s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:[4.1776s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:OPTIMAL, wall time: 4.702615 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.4_7:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:[3.1269s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:[3.1323s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:[3.1382s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:OPTIMAL, wall time: 3.878446 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.5_8:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:[0.4531s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:OPTIMAL, wall time: 1.188635 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_9:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:[4.7564s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.36), bound (Cycles ~ 6.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:[4.7631s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.40), bound (Cycles ~ 6.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:[4.7695s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 7.0, IPC ~ 0.57), bound (Cycles ~ 6.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:[4.7790s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 6.0, IPC ~ 0.67), bound (Cycles ~ 6.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:OPTIMAL, wall time: 5.084153 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.6_10:Minimum number of stalls: 4 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:[0.4941s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:OPTIMAL, wall time: 1.104366 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.7_10:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:[1.4126s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:[1.4191s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:OPTIMAL, wall time: 1.651767 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.8_11:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:[2.2545s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:[2.2596s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:OPTIMAL, wall time: 2.688168 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.9_12:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:[4.2425s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:[4.2538s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:OPTIMAL, wall time: 4.944565 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_13:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:[5.2781s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.36), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:[5.2878s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.40), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:[5.3073s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.44), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:[5.3278s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.80), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:OPTIMAL, wall time: 5.777928 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.10_14:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:[5.7845s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.27), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:[5.7940s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:[5.7999s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:[5.8060s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:OPTIMAL, wall time: 6.554452 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.11_14:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:[2.3779s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.27), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:[2.3834s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:[2.3888s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:[2.3942s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:OPTIMAL, wall time: 2.791507 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.12_15:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:[0.1865s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.27), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:[0.1917s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:[0.1966s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:[0.2012s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 7.0, IPC ~ 0.43), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:[0.2031s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:OPTIMAL, wall time: 0.335643 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.13_16:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 0- 1]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 8- 9]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 9- 10]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 10- 11]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.split_heuristic_full:OK! +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split_estimtate_perf:[2.1043s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.59), bound (Cycles ~ 24.0, IPC ~ 0.67) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split_estimtate_perf:OPTIMAL, wall time: 2.302251 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split_estimtate_perf:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split_estimtate_perf.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split_estimtate_perf:Minimum number of stalls: 19 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.split.split_heuristic_full_with_stalls:OK! +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.halving_heuristic_1:OK! +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop:Apply halving heuristic to optimize two halves of consecutive loop kernels... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:[0.4455s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:OPTIMAL, wall time: 0.805850 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:[0.5581s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:[0.5669s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:OPTIMAL, wall time: 0.653630 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:[0.1223s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.80), bound (Cycles ~ 4.0, IPC ~ 1.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:OPTIMAL, wall time: 0.410224 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:[2.6219s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 4.0, IPC ~ 0.75), bound (Cycles ~ 4.0, IPC ~ 0.75) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:OPTIMAL, wall time: 3.204262 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Minimum number of stalls: 2 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:[2.5971s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:[2.6385s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:OPTIMAL, wall time: 2.997759 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:Initial stalls +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:[1.5864s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:OPTIMAL, wall time: 1.866374 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:[0.9926s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:OPTIMAL, wall time: 1.157006 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:[0.2222s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:[0.3209s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:OPTIMAL, wall time: 1.168566 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:[0.4317s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.36), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:[0.4400s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.44), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:[0.4503s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 7.0, IPC ~ 0.57), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:[0.4563s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 6.0, IPC ~ 0.67), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:[0.4603s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.80), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:OPTIMAL, wall time: 0.503404 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:[1.3017s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.27), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:[1.3082s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:[1.3141s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:[1.3240s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:OPTIMAL, wall time: 2.085814 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:[0.2621s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:[0.2648s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:OPTIMAL, wall time: 0.390531 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:[0.2325s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.27), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:[0.2387s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:[0.2432s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:[0.2453s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 7.0, IPC ~ 0.43), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:[0.2505s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:OPTIMAL, wall time: 0.287817 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:[0.1981s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:OPTIMAL, wall time: 0.230070 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:[0.0768s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 6.0, IPC ~ 0.67), bound (Cycles ~ 2.0, IPC ~ 2.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:[0.0814s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.80), bound (Cycles ~ 3.0, IPC ~ 1.33) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:OPTIMAL, wall time: 0.106571 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:[2.1192s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:OPTIMAL, wall time: 2.917404 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:[4.9972s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:OPTIMAL, wall time: 5.938033 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:[5.3258s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:OPTIMAL, wall time: 6.607800 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:[5.7598s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 7.0, IPC ~ 0.43), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:[5.8094s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 4.0, IPC ~ 0.75), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:[5.8111s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:OPTIMAL, wall time: 6.505651 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:[3.4277s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.80), bound (Cycles ~ 4.0, IPC ~ 1.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:OPTIMAL, wall time: 4.432718 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:[1.0331s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 4.0, IPC ~ 0.75), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:[1.0392s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:OPTIMAL, wall time: 1.482075 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:[1.0103s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 6.0, IPC ~ 0.50), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:[1.0250s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:OPTIMAL, wall time: 1.159598 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:[1.2368s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:[1.2435s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:[1.2491s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:OPTIMAL, wall time: 1.463137 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:[0.6445s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:OPTIMAL, wall time: 0.781944 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.0_3:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:[1.7935s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:OPTIMAL, wall time: 2.469072 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.1_4:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:[0.1076s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:OPTIMAL, wall time: 0.410899 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_5:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:[0.3299s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.36), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:[0.3398s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.40), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:[0.3492s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.44), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:[0.3559s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.80), bound (Cycles ~ 5.0, IPC ~ 0.80) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:OPTIMAL, wall time: 0.422771 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.2_6:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:[2.3162s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 11.0, IPC ~ 0.27), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:[2.3294s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:[2.3387s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:[2.3449s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:OPTIMAL, wall time: 2.631529 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.3_6:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:[0.2450s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:[0.2570s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:OPTIMAL, wall time: 0.396423 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.4_7:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:[0.2555s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:[0.2611s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:OPTIMAL, wall time: 0.676736 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.5_8:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:[0.1199s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:OPTIMAL, wall time: 0.304571 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_9:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:[1.7694s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.80), bound (Cycles ~ 2.0, IPC ~ 2.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:[1.7843s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 4.0, IPC ~ 1.00), bound (Cycles ~ 3.0, IPC ~ 1.33) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:[1.7985s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.33), bound (Cycles ~ 3.0, IPC ~ 1.33) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:OPTIMAL, wall time: 1.946338 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.6_10:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:[1.9010s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:OPTIMAL, wall time: 2.157110 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.7_10:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:[1.4108s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:OPTIMAL, wall time: 1.721138 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.8_11:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:[0.0992s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:OPTIMAL, wall time: 0.408264 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.9_12:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:[1.6071s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:[1.6085s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 2.0, IPC ~ 1.50), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:OPTIMAL, wall time: 2.074670 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_13:Minimum number of stalls: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:[0.9032s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.33), bound (Cycles ~ 2.0, IPC ~ 2.00) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:OPTIMAL, wall time: 1.019753 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.10_14:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:[2.1885s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 4.0, IPC ~ 0.75), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:[2.1939s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 3.0, IPC ~ 1.00), bound (Cycles ~ 2.0, IPC ~ 1.50) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:OPTIMAL, wall time: 2.530859 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.11_14:Minimum number of stalls: 1 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:[3.2448s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 6.0, IPC ~ 0.50), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:[3.2479s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:OPTIMAL, wall time: 3.508251 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.12_15:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:[7.2146s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 10.0, IPC ~ 0.30), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:[7.3073s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 9.0, IPC ~ 0.33), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:[7.4162s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 5.0, IPC ~ 0.60), bound (Cycles ~ 5.0, IPC ~ 0.60) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Closer than 0 stalls to theoretical optimum... stop +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:OPTIMAL, wall time: 8.008316 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.13_16:Minimum number of stalls: 3 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 0- 1]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 1- 2]: .......... (0) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 2- 3]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 3- 4]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 4- 5]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 5- 6]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 6- 7]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 7- 8]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 8- 9]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 9- 10]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 10- 11]: *......... (1) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 11- 12]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 12- 13]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 13- 14]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 14- 15]: ***....... (3) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split:[ 15- 16]: **........ (2) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.split_heuristic_full:OK! +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:[4.5727s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.50), bound (Cycles ~ 22.0, IPC ~ 0.73) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:[4.5982s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.53), bound (Cycles ~ 22.0, IPC ~ 0.73) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:[4.6209s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.55), bound (Cycles ~ 22.0, IPC ~ 0.73) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:[4.8388s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.59), bound (Cycles ~ 22.0, IPC ~ 0.73) +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:OPTIMAL, wall time: 5.832845 s +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:Booleans in result: 0 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf.selfcheck:OK! +WARNING:dilithium_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split_estimtate_perf:Minimum number of stalls: 19 +INFO:dilithium_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.heuristic.split.split_heuristic_full_with_stalls:OK! diff --git a/rvv_run_logs/intt_kyber_rvv_vlen128_c908.log b/rvv_run_logs/intt_kyber_rvv_vlen128_c908.log new file mode 100644 index 000000000..9f3cc0cd7 --- /dev/null +++ b/rvv_run_logs/intt_kyber_rvv_vlen128_c908.log @@ -0,0 +1,3516 @@ +* Example: intt_kyber_rvv_vlen128_c908... +INFO:intt_kyber_rvv_vlen128_c908.start:SLOTHY version: unknown +INFO:intt_kyber_rvv_vlen128_c908:Instructions in body: 944 +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:INFEASIBLE, wall time: 0.204377 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:INFEASIBLE, wall time: 4.823249 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[9.5683s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 136.0, IPC ~ 0.30), bound (Cycles ~ 63.0, IPC ~ 0.65) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.3239s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 135.0, IPC ~ 0.30), bound (Cycles ~ 69.0, IPC ~ 0.59) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.4746s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 131.0, IPC ~ 0.31), bound (Cycles ~ 70.0, IPC ~ 0.59) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.7036s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 130.0, IPC ~ 0.32), bound (Cycles ~ 71.0, IPC ~ 0.58) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.7309s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 127.0, IPC ~ 0.32), bound (Cycles ~ 71.0, IPC ~ 0.58) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.7495s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 126.0, IPC ~ 0.33), bound (Cycles ~ 71.0, IPC ~ 0.58) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.7649s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 125.0, IPC ~ 0.33), bound (Cycles ~ 71.0, IPC ~ 0.58) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.8785s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 124.0, IPC ~ 0.33), bound (Cycles ~ 71.0, IPC ~ 0.58) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.9417s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 123.0, IPC ~ 0.33), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.9567s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 122.0, IPC ~ 0.34), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.9811s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 121.0, IPC ~ 0.34), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[12.9963s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 120.0, IPC ~ 0.34), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[13.0103s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 119.0, IPC ~ 0.34), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[13.0301s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 118.0, IPC ~ 0.35), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[13.0746s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 115.0, IPC ~ 0.36), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[13.2199s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 111.0, IPC ~ 0.37), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[13.3644s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 110.0, IPC ~ 0.37), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[13.3769s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 109.0, IPC ~ 0.38), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[13.3896s]: Found 19 solutions so far... objective (minimize cycles): currently (Cycles ~ 108.0, IPC ~ 0.38), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[13.4208s]: Found 20 solutions so far... objective (minimize cycles): currently (Cycles ~ 107.0, IPC ~ 0.38), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:OPTIMAL, wall time: 19.650373 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Booleans in result: 560 +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Minimum number of stalls: 86 +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:[3.2982s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:[3.3299s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:[3.3431s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:OPTIMAL, wall time: 3.668167 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.41_82:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:[5.1703s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:[5.1907s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:OPTIMAL, wall time: 5.811032 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.82_123:Minimum number of stalls: 20 +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164:[2.6652s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164:OPTIMAL, wall time: 3.749244 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.123_164:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:INFEASIBLE, wall time: 0.837673 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:INFEASIBLE, wall time: 0.412679 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:[6.7755s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 89.0, IPC ~ 0.46), bound (Cycles ~ 85.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:[6.9269s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 88.0, IPC ~ 0.47), bound (Cycles ~ 88.0, IPC ~ 0.47) +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:OPTIMAL, wall time: 7.860389 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Booleans in result: 642 +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.164_205:Minimum number of stalls: 67 +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246:[6.6714s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 53.0, IPC ~ 0.77) +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246:OPTIMAL, wall time: 7.064949 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.205_246:Minimum number of stalls: 32 +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:INFEASIBLE, wall time: 3.508377 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:[15.2713s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.51), bound (Cycles ~ 75.0, IPC ~ 0.55) +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:[15.3181s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 75.0, IPC ~ 0.55) +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:OPTIMAL, wall time: 15.730265 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.246_287:Minimum number of stalls: 57 +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:INFEASIBLE, wall time: 6.693163 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:[2.2154s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.59), bound (Cycles ~ 65.0, IPC ~ 0.63) +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:OPTIMAL, wall time: 2.894053 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.287_328:Minimum number of stalls: 48 +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:INFEASIBLE, wall time: 0.342744 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:[12.5448s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.73), bound (Cycles ~ 52.0, IPC ~ 0.79) +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:[12.5800s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.75), bound (Cycles ~ 52.0, IPC ~ 0.79) +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:[12.6075s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.76), bound (Cycles ~ 52.0, IPC ~ 0.79) +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:[12.6378s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 52.0, IPC ~ 0.79) +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:OPTIMAL, wall time: 13.693872 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.328_369:Minimum number of stalls: 32 +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:INFEASIBLE, wall time: 0.200103 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:INFEASIBLE, wall time: 0.164194 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:[1.9020s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 104.0, IPC ~ 0.39), bound (Cycles ~ 97.0, IPC ~ 0.42) +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:[1.9478s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 103.0, IPC ~ 0.40), bound (Cycles ~ 99.0, IPC ~ 0.41) +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:[1.9618s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 99.0, IPC ~ 0.41), bound (Cycles ~ 99.0, IPC ~ 0.41) +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:OPTIMAL, wall time: 2.351368 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Booleans in result: 543 +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.369_410:Minimum number of stalls: 78 +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:[1.4908s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:[1.5158s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:OPTIMAL, wall time: 3.231019 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.410_451:Minimum number of stalls: 20 +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:INFEASIBLE, wall time: 5.416655 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:INFEASIBLE, wall time: 1.743224 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:[45.4136s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 130.0, IPC ~ 0.32), bound (Cycles ~ 60.0, IPC ~ 0.70) +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:[45.4676s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 128.0, IPC ~ 0.33), bound (Cycles ~ 60.0, IPC ~ 0.70) +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:[45.5080s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 127.0, IPC ~ 0.33), bound (Cycles ~ 60.0, IPC ~ 0.70) +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:[45.5461s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 126.0, IPC ~ 0.33), bound (Cycles ~ 60.0, IPC ~ 0.70) +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:[45.5858s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 125.0, IPC ~ 0.34), bound (Cycles ~ 60.0, IPC ~ 0.70) +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:[45.6355s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 116.0, IPC ~ 0.36), bound (Cycles ~ 60.0, IPC ~ 0.70) +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:OPTIMAL, wall time: 79.277858 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.451_493:Minimum number of stalls: 95 +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:[37.8740s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:[37.8864s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:OPTIMAL, wall time: 38.399674 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.493_534:Minimum number of stalls: 20 +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:[27.2720s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:[27.2865s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:OPTIMAL, wall time: 27.623028 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.534_575:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616:[17.4294s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616:OPTIMAL, wall time: 19.602155 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.575_616:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:INFEASIBLE, wall time: 0.367980 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:[0.6035s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 75.0, IPC ~ 0.55) +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:[0.6123s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 78.0, IPC ~ 0.53) +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:[0.6177s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 78.0, IPC ~ 0.53) +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:OPTIMAL, wall time: 1.244994 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.616_657:Minimum number of stalls: 57 +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:INFEASIBLE, wall time: 3.936113 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:[58.3832s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.62), bound (Cycles ~ 61.0, IPC ~ 0.67) +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:[58.3982s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.63), bound (Cycles ~ 63.0, IPC ~ 0.65) +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:[58.4046s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.64), bound (Cycles ~ 63.0, IPC ~ 0.65) +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:[58.4082s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.65), bound (Cycles ~ 63.0, IPC ~ 0.65) +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:OPTIMAL, wall time: 60.844222 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.657_698:Minimum number of stalls: 42 +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:INFEASIBLE, wall time: 0.133159 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:[0.9914s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.58), bound (Cycles ~ 65.0, IPC ~ 0.63) +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:[1.0087s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.59), bound (Cycles ~ 65.0, IPC ~ 0.63) +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:[1.0213s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.59), bound (Cycles ~ 65.0, IPC ~ 0.63) +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:[1.0336s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.60), bound (Cycles ~ 68.0, IPC ~ 0.60) +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:OPTIMAL, wall time: 1.400419 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.698_739:Minimum number of stalls: 47 +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:INFEASIBLE, wall time: 0.380814 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:[15.4032s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.49), bound (Cycles ~ 76.0, IPC ~ 0.54) +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:[15.4371s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 77.0, IPC ~ 0.53) +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:[15.4551s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.50), bound (Cycles ~ 77.0, IPC ~ 0.53) +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:[15.4772s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.51), bound (Cycles ~ 81.0, IPC ~ 0.51) +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:OPTIMAL, wall time: 16.307254 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.739_780:Minimum number of stalls: 60 +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:[10.3313s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 39.0, IPC ~ 1.05) +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:[10.3379s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 39.0, IPC ~ 1.05) +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:[10.3442s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:[10.3486s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:OPTIMAL, wall time: 11.394572 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.780_821:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:INFEASIBLE, wall time: 0.104384 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:INFEASIBLE, wall time: 0.134226 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:[1.0329s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 114.0, IPC ~ 0.36), bound (Cycles ~ 112.0, IPC ~ 0.37) +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:OPTIMAL, wall time: 2.318084 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.821_862:Minimum number of stalls: 93 +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:[3.4037s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:[3.4198s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:OPTIMAL, wall time: 3.578102 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:Booleans in result: 505 +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.862_903:Minimum number of stalls: 20 +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:INFEASIBLE, wall time: 0.052081 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:INFEASIBLE, wall time: 0.178939 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:INFEASIBLE, wall time: 20.091355 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Attempt optimization with max 256 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:UNKNOWN, wall time: 126.263873 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Attempt optimization with max 512 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[9.3470s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 515.0, IPC ~ 0.08), bound (Cycles ~ 77.0, IPC ~ 0.53) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.5887s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 421.0, IPC ~ 0.10), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.6210s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 410.0, IPC ~ 0.10), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.6516s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 409.0, IPC ~ 0.10), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.6798s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 391.0, IPC ~ 0.10), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.7104s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 382.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.7498s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 381.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.7772s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 380.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.8049s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 379.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.8334s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 378.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.8612s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 377.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.8884s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 376.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.9163s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 375.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.9430s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 374.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.9707s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 373.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[10.9985s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 372.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.0265s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 371.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.0548s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 370.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.0837s]: Found 19 solutions so far... objective (minimize cycles): currently (Cycles ~ 369.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.1113s]: Found 20 solutions so far... objective (minimize cycles): currently (Cycles ~ 368.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.1385s]: Found 21 solutions so far... objective (minimize cycles): currently (Cycles ~ 367.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.1695s]: Found 22 solutions so far... objective (minimize cycles): currently (Cycles ~ 366.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.1982s]: Found 23 solutions so far... objective (minimize cycles): currently (Cycles ~ 365.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.2262s]: Found 24 solutions so far... objective (minimize cycles): currently (Cycles ~ 364.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.2541s]: Found 25 solutions so far... objective (minimize cycles): currently (Cycles ~ 363.0, IPC ~ 0.11), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.2822s]: Found 26 solutions so far... objective (minimize cycles): currently (Cycles ~ 344.0, IPC ~ 0.12), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.3143s]: Found 27 solutions so far... objective (minimize cycles): currently (Cycles ~ 336.0, IPC ~ 0.12), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.3455s]: Found 28 solutions so far... objective (minimize cycles): currently (Cycles ~ 326.0, IPC ~ 0.13), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.3737s]: Found 29 solutions so far... objective (minimize cycles): currently (Cycles ~ 263.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.4050s]: Found 30 solutions so far... objective (minimize cycles): currently (Cycles ~ 262.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.4308s]: Found 31 solutions so far... objective (minimize cycles): currently (Cycles ~ 261.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.4584s]: Found 32 solutions so far... objective (minimize cycles): currently (Cycles ~ 260.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.4866s]: Found 33 solutions so far... objective (minimize cycles): currently (Cycles ~ 259.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.5112s]: Found 34 solutions so far... objective (minimize cycles): currently (Cycles ~ 258.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.5367s]: Found 35 solutions so far... objective (minimize cycles): currently (Cycles ~ 257.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.5618s]: Found 36 solutions so far... objective (minimize cycles): currently (Cycles ~ 256.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.5890s]: Found 37 solutions so far... objective (minimize cycles): currently (Cycles ~ 255.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.6160s]: Found 38 solutions so far... objective (minimize cycles): currently (Cycles ~ 254.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.6442s]: Found 39 solutions so far... objective (minimize cycles): currently (Cycles ~ 253.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.6725s]: Found 40 solutions so far... objective (minimize cycles): currently (Cycles ~ 252.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.7441s]: Found 41 solutions so far... objective (minimize cycles): currently (Cycles ~ 251.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.8485s]: Found 42 solutions so far... objective (minimize cycles): currently (Cycles ~ 250.0, IPC ~ 0.16), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[11.8877s]: Found 43 solutions so far... objective (minimize cycles): currently (Cycles ~ 180.0, IPC ~ 0.23), bound (Cycles ~ 83.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.1232s]: Found 44 solutions so far... objective (minimize cycles): currently (Cycles ~ 179.0, IPC ~ 0.23), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.1628s]: Found 45 solutions so far... objective (minimize cycles): currently (Cycles ~ 178.0, IPC ~ 0.23), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.1891s]: Found 46 solutions so far... objective (minimize cycles): currently (Cycles ~ 177.0, IPC ~ 0.23), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.2142s]: Found 47 solutions so far... objective (minimize cycles): currently (Cycles ~ 176.0, IPC ~ 0.23), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.2394s]: Found 48 solutions so far... objective (minimize cycles): currently (Cycles ~ 175.0, IPC ~ 0.23), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.2642s]: Found 49 solutions so far... objective (minimize cycles): currently (Cycles ~ 174.0, IPC ~ 0.24), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.3494s]: Found 50 solutions so far... objective (minimize cycles): currently (Cycles ~ 173.0, IPC ~ 0.24), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.4143s]: Found 51 solutions so far... objective (minimize cycles): currently (Cycles ~ 172.0, IPC ~ 0.24), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.4292s]: Found 52 solutions so far... objective (minimize cycles): currently (Cycles ~ 171.0, IPC ~ 0.24), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.4432s]: Found 53 solutions so far... objective (minimize cycles): currently (Cycles ~ 170.0, IPC ~ 0.24), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.4576s]: Found 54 solutions so far... objective (minimize cycles): currently (Cycles ~ 169.0, IPC ~ 0.24), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.4937s]: Found 55 solutions so far... objective (minimize cycles): currently (Cycles ~ 168.0, IPC ~ 0.24), bound (Cycles ~ 84.0, IPC ~ 0.49) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.5290s]: Found 56 solutions so far... objective (minimize cycles): currently (Cycles ~ 167.0, IPC ~ 0.25), bound (Cycles ~ 85.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.5578s]: Found 57 solutions so far... objective (minimize cycles): currently (Cycles ~ 166.0, IPC ~ 0.25), bound (Cycles ~ 85.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.5758s]: Found 58 solutions so far... objective (minimize cycles): currently (Cycles ~ 165.0, IPC ~ 0.25), bound (Cycles ~ 85.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.6042s]: Found 59 solutions so far... objective (minimize cycles): currently (Cycles ~ 164.0, IPC ~ 0.25), bound (Cycles ~ 85.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.6207s]: Found 60 solutions so far... objective (minimize cycles): currently (Cycles ~ 163.0, IPC ~ 0.25), bound (Cycles ~ 85.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.6387s]: Found 61 solutions so far... objective (minimize cycles): currently (Cycles ~ 162.0, IPC ~ 0.25), bound (Cycles ~ 85.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.6566s]: Found 62 solutions so far... objective (minimize cycles): currently (Cycles ~ 161.0, IPC ~ 0.25), bound (Cycles ~ 85.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.6755s]: Found 63 solutions so far... objective (minimize cycles): currently (Cycles ~ 160.0, IPC ~ 0.26), bound (Cycles ~ 85.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:[12.6949s]: Found 64 solutions so far... objective (minimize cycles): currently (Cycles ~ 159.0, IPC ~ 0.26), bound (Cycles ~ 85.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:FEASIBLE, wall time: 16.408473 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Booleans in result: 504 +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.903_944:Minimum number of stalls: 138 +INFO:intt_kyber_rvv_vlen128_c908.start.split:Initial stalls +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:INFEASIBLE, wall time: 27.327044 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:INFEASIBLE, wall time: 5.874798 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[40.8639s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 114.0, IPC ~ 0.36), bound (Cycles ~ 78.0, IPC ~ 0.53) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[57.6790s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 111.0, IPC ~ 0.37), bound (Cycles ~ 79.0, IPC ~ 0.52) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[63.8412s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 108.0, IPC ~ 0.38), bound (Cycles ~ 79.0, IPC ~ 0.52) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[69.4460s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 107.0, IPC ~ 0.38), bound (Cycles ~ 79.0, IPC ~ 0.52) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:FEASIBLE, wall time: 186.497886 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Booleans in result: 902 +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Minimum number of stalls: 86 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[106.8505s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[106.9928s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[107.3117s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[126.3800s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:FEASIBLE, wall time: 211.741553 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[56.6629s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[56.7125s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[56.7534s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[56.7928s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[56.8341s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[56.9008s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[56.9436s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[57.0301s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[57.0901s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[57.3902s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:FEASIBLE, wall time: 189.262067 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[6.3564s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[17.1144s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[23.2180s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[28.6267s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[28.8493s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[36.0260s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:FEASIBLE, wall time: 195.398572 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Booleans in result: 1546 +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Minimum number of stalls: 20 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:INFEASIBLE, wall time: 0.383679 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[6.8496s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.55), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[10.7831s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.57), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:OPTIMAL, wall time: 28.195360 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Booleans in result: 1541 +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Minimum number of stalls: 51 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[14.4466s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[14.5202s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[15.3842s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[15.9918s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[16.3012s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[19.2022s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:FEASIBLE, wall time: 191.716853 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Booleans in result: 1429 +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Minimum number of stalls: 21 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:INFEASIBLE, wall time: 1.561595 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[10.1506s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.58), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[11.5422s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.59), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[13.4541s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.61), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[13.5279s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.63), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[15.6348s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.68), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[16.1775s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.72), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[19.0375s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.75), bound (Cycles ~ 53.0, IPC ~ 0.77) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:OPTIMAL, wall time: 26.936698 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Booleans in result: 1441 +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Minimum number of stalls: 34 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[148.7140s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[169.0991s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[177.4787s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:FEASIBLE, wall time: 185.701851 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Booleans in result: 1416 +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Minimum number of stalls: 20 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:INFEASIBLE, wall time: 0.094613 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[43.1794s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 85.0, IPC ~ 0.48), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[43.4482s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[43.6168s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.50), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[43.7329s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.51), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[44.9598s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[45.0359s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[45.4363s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[45.9427s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.53), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[46.0195s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.54), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[46.1456s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.55), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[46.5470s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.55), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[46.7515s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.56), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[47.0589s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.57), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[47.1711s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.58), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[47.3241s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.59), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[48.1173s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.59), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[48.1753s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.60), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:OPTIMAL, wall time: 65.754045 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Booleans in result: 1401 +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Minimum number of stalls: 47 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[45.4795s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[45.5896s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[45.7210s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[45.8765s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[46.1776s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[46.4288s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[46.5841s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[46.7041s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[46.8474s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[51.9642s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[55.4186s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:FEASIBLE, wall time: 200.503233 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Minimum number of stalls: 20 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:INFEASIBLE, wall time: 12.035720 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.0606s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 85.0, IPC ~ 0.48), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.2165s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.49), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.4171s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.5272s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.50), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.5598s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.51), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.6472s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.6815s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.7135s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.7537s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.53), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.7933s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.54), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.8961s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.55), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.9495s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.55), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[135.9902s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.56), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[136.0292s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.57), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[136.2055s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.58), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[136.4159s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.59), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[136.4602s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.59), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[137.6178s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.60), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[149.4840s]: Found 19 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.61), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:FEASIBLE, wall time: 189.702718 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Minimum number of stalls: 46 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[117.8019s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[117.8333s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[117.8609s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[117.9010s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[117.9330s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[117.9617s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[117.9980s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[118.0424s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[118.0937s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[118.1280s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[118.1689s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[118.2445s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[118.3063s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[118.5282s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:FEASIBLE, wall time: 187.777596 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.0543s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.1270s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.2410s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.3304s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.4269s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.5168s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.6019s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.6783s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.7569s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.8363s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[6.9153s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[7.0066s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[7.3121s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[46.4607s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:FEASIBLE, wall time: 195.653817 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Booleans in result: 1423 +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:INFEASIBLE, wall time: 0.206270 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[4.4394s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 85.0, IPC ~ 0.48), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[5.5890s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.50), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[6.4814s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.51), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[6.6280s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[9.9594s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[10.6681s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[11.1129s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.53), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[11.5653s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.54), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[11.9568s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.55), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[12.5776s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.55), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[13.0640s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.56), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[14.9300s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.60), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[15.6205s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.62), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[15.7457s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.64), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[16.8794s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.73), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:OPTIMAL, wall time: 29.408118 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Booleans in result: 1396 +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Minimum number of stalls: 35 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[5.5601s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[5.7479s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[5.9721s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[6.0604s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[6.1346s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[6.3639s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[10.1988s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 31.0, IPC ~ 1.32) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[23.9435s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 35.0, IPC ~ 1.17) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[41.2165s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:FEASIBLE, wall time: 190.143285 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Booleans in result: 1291 +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Minimum number of stalls: 23 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:INFEASIBLE, wall time: 0.092716 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[4.0160s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 85.0, IPC ~ 0.48), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[4.9232s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[5.3839s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.50), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[5.8546s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.51), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[6.2004s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[6.5241s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[6.8479s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[7.1723s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.53), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[7.6198s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.55), bound (Cycles ~ 40.0, IPC ~ 1.02) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[8.0543s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.56), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[8.9474s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.57), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:OPTIMAL, wall time: 14.361603 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Booleans in result: 1372 +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Minimum number of stalls: 51 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:UNKNOWN, wall time: 172.770273 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[6.9023s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:FEASIBLE, wall time: 183.400499 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Booleans in result: 1295 +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Minimum number of stalls: 24 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:INFEASIBLE, wall time: 0.371628 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[4.8762s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.49), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.0266s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.1430s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.1810s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.2722s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.3114s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.53), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.3475s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.54), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.4093s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.55), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.4521s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.55), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.4900s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.56), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.5870s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.57), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.8838s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.58), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.9157s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.59), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[6.2982s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.59), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[6.3407s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.60), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[6.3923s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.61), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[6.4369s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.62), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[6.6787s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.63), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[7.2349s]: Found 19 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.65), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[7.4736s]: Found 20 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.75), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:OPTIMAL, wall time: 17.593163 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Minimum number of stalls: 34 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[51.8772s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[53.8444s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 24.0, IPC ~ 1.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[57.7831s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 24.0, IPC ~ 1.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[62.2186s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 24.0, IPC ~ 1.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[66.9831s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 24.0, IPC ~ 1.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[74.7017s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 25.0, IPC ~ 1.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[87.4737s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 25.0, IPC ~ 1.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[94.7861s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 25.0, IPC ~ 1.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[110.5417s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 27.0, IPC ~ 1.52) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[182.9311s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 30.0, IPC ~ 1.37) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:FEASIBLE, wall time: 188.472826 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Booleans in result: 1265 +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Minimum number of stalls: 22 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:INFEASIBLE, wall time: 7.609098 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:INFEASIBLE, wall time: 8.787818 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:UNKNOWN, wall time: 105.160720 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Attempt optimization with max 256 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[101.7502s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 224.0, IPC ~ 0.18), bound (Cycles ~ 86.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[145.7308s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 222.0, IPC ~ 0.18), bound (Cycles ~ 86.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[152.8662s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 135.0, IPC ~ 0.30), bound (Cycles ~ 86.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[158.9772s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 134.0, IPC ~ 0.31), bound (Cycles ~ 86.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[160.0938s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 107.0, IPC ~ 0.38), bound (Cycles ~ 86.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[165.1580s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 92.0, IPC ~ 0.45), bound (Cycles ~ 86.0, IPC ~ 0.48) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[177.4518s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 91.0, IPC ~ 0.45), bound (Cycles ~ 87.0, IPC ~ 0.47) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:FEASIBLE, wall time: 201.642479 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Booleans in result: 1124 +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Minimum number of stalls: 70 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:INFEASIBLE, wall time: 109.954721 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:INFEASIBLE, wall time: 92.604326 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[7.9833s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 120.0, IPC ~ 0.34), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[8.0161s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 119.0, IPC ~ 0.34), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[8.0492s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 118.0, IPC ~ 0.35), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[8.1694s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 117.0, IPC ~ 0.35), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[8.2013s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 116.0, IPC ~ 0.35), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[8.2920s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 115.0, IPC ~ 0.36), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[8.3301s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 114.0, IPC ~ 0.36), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[8.3657s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 113.0, IPC ~ 0.36), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[9.1645s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 112.0, IPC ~ 0.37), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[9.2001s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 111.0, IPC ~ 0.37), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[9.2393s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 110.0, IPC ~ 0.37), bound (Cycles ~ 28.0, IPC ~ 1.46) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[14.8360s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 109.0, IPC ~ 0.38), bound (Cycles ~ 47.0, IPC ~ 0.87) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[15.3476s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 108.0, IPC ~ 0.38), bound (Cycles ~ 47.0, IPC ~ 0.87) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:[80.9283s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 107.0, IPC ~ 0.38), bound (Cycles ~ 71.0, IPC ~ 0.58) +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:FEASIBLE, wall time: 184.318613 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Booleans in result: 824 +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.0_41:Minimum number of stalls: 86 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[126.3649s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[126.4767s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[126.5976s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[126.7570s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[126.9334s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[127.1322s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[127.2435s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[127.4044s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[127.5135s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[127.6350s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[127.7628s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[128.0723s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[128.3808s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:[130.3992s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:FEASIBLE, wall time: 186.363921 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Booleans in result: 1456 +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.47_88:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.1889s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.2397s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.2816s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.3172s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.3522s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.4031s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.4433s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.4807s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.5206s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.5961s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.6481s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.7571s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:[5.8513s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:FEASIBLE, wall time: 194.179241 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Booleans in result: 1443 +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.94_135:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[42.2592s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[48.0565s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[49.8433s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[56.8598s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:[61.7913s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:FEASIBLE, wall time: 196.622134 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Booleans in result: 1491 +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.142_183:Minimum number of stalls: 20 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:INFEASIBLE, wall time: 0.186018 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[102.2793s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 85.0, IPC ~ 0.48), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[102.5419s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.49), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[102.5957s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[102.6636s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.51), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[102.8776s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[102.9939s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[103.6912s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[104.4186s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.53), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[107.4729s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.54), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[109.7978s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.55), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[110.7247s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.55), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[110.8302s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.56), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:[111.4226s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.57), bound (Cycles ~ 69.0, IPC ~ 0.59) +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:OPTIMAL, wall time: 124.489882 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.189_230:Minimum number of stalls: 51 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[49.6521s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[52.0068s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[52.3038s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[53.2179s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:[57.4091s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 25.0, IPC ~ 1.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:FEASIBLE, wall time: 190.550544 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Booleans in result: 1481 +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.236_277:Minimum number of stalls: 21 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:INFEASIBLE, wall time: 1.676202 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[34.5989s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 85.0, IPC ~ 0.48), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[34.7479s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.49), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[34.9755s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[35.2125s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.50), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[35.6378s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.51), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[35.8647s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[36.0074s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[36.1291s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[36.2389s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.53), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[36.3194s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.54), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[36.4886s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.55), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[36.6664s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.56), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[36.9733s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.58), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[37.2164s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.59), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[37.3673s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.59), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[37.4307s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.60), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[37.6031s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.66), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[38.3350s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.67), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[39.0670s]: Found 19 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.68), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[39.2509s]: Found 20 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.69), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[39.2947s]: Found 21 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.73), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:[41.5040s]: Found 22 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.75), bound (Cycles ~ 53.0, IPC ~ 0.77) +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:OPTIMAL, wall time: 45.742725 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Booleans in result: 1441 +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.283_324:Minimum number of stalls: 34 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *****************************............ (29) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[4.8233s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[4.9060s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[4.9438s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[6.0206s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[6.4169s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[7.0516s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[8.6790s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[9.1445s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[9.6391s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[9.8965s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[10.4905s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[11.3705s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[12.1200s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:[13.2326s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:FEASIBLE, wall time: 194.965419 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.330_371:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:INFEASIBLE, wall time: 0.327891 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[8.2366s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 85.0, IPC ~ 0.48), bound (Cycles ~ 63.0, IPC ~ 0.65) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[8.4282s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.49), bound (Cycles ~ 63.0, IPC ~ 0.65) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[8.6444s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 63.0, IPC ~ 0.65) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[8.8288s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.50), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[9.2401s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[9.6147s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[9.8006s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[10.1075s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.53), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[11.6290s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.58), bound (Cycles ~ 64.0, IPC ~ 0.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[15.2717s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.59), bound (Cycles ~ 65.0, IPC ~ 0.63) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[15.5512s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.59), bound (Cycles ~ 65.0, IPC ~ 0.63) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:[15.8345s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.60), bound (Cycles ~ 68.0, IPC ~ 0.60) +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:OPTIMAL, wall time: 24.374823 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Booleans in result: 1401 +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.378_419:Minimum number of stalls: 47 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: *****************************............ (29) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[128.4298s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[130.7476s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[130.8098s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[130.8660s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[130.9164s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[141.4621s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[154.3404s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 24.0, IPC ~ 1.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:[168.7673s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 24.0, IPC ~ 1.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:FEASIBLE, wall time: 197.041020 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Booleans in result: 1546 +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.425_466:Minimum number of stalls: 20 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:INFEASIBLE, wall time: 5.855985 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[9.1881s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 85.0, IPC ~ 0.48), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[9.2773s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.49), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[9.5284s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[9.5882s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.50), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[9.7122s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.51), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[9.9865s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[10.1957s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[13.2892s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[19.7011s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.59), bound (Cycles ~ 25.0, IPC ~ 1.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[27.7371s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.60), bound (Cycles ~ 25.0, IPC ~ 1.64) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:[150.1867s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.61), bound (Cycles ~ 49.0, IPC ~ 0.84) +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:FEASIBLE, wall time: 187.737242 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Booleans in result: 1188 +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.472_513:Minimum number of stalls: 46 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[6.4218s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[7.0924s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[8.8105s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[9.7448s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[11.5565s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:[23.1660s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:OPTIMAL, wall time: 138.667000 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Booleans in result: 1325 +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.519_560:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.2780s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.3052s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.3369s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.4444s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.4973s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.5271s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.5570s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.5904s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.6182s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.6526s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.7713s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[52.9402s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[53.7092s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:[57.0858s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:FEASIBLE, wall time: 197.708833 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.566_607:Minimum number of stalls: 19 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:INFEASIBLE, wall time: 9.228289 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[10.8573s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 85.0, IPC ~ 0.48), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[11.5190s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.49), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[12.2925s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[12.4245s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.50), bound (Cycles ~ 32.0, IPC ~ 1.28) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[15.8994s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.62), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[18.1045s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.65), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[18.9121s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.66), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[19.9480s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.72), bound (Cycles ~ 33.0, IPC ~ 1.24) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:[22.0512s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.73), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:OPTIMAL, wall time: 33.632433 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Booleans in result: 1455 +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.614_655:Minimum number of stalls: 35 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[3.2815s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[3.4247s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[3.4667s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[3.4968s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[5.6977s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[6.1179s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[6.8374s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 24.0, IPC ~ 1.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[8.2929s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 24.0, IPC ~ 1.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[10.5323s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 24.0, IPC ~ 1.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:[63.8577s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 30.0, IPC ~ 1.37) +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:FEASIBLE, wall time: 188.434738 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.661_702:Minimum number of stalls: 23 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:INFEASIBLE, wall time: 4.739890 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[30.4236s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 85.0, IPC ~ 0.48), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[30.8002s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.49), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[30.8485s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.49), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[30.9368s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.51), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[30.9846s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.51), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[31.1857s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.52), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[31.2283s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.53), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[31.3352s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.54), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[31.4220s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.55), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[31.4986s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.55), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[31.5616s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.56), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:[31.6177s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.57), bound (Cycles ~ 72.0, IPC ~ 0.57) +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Closer than 0 stalls to theoretical optimum... stop +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:OPTIMAL, wall time: 40.919190 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Booleans in result: 1315 +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.708_749:Minimum number of stalls: 51 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[18.3898s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[18.7744s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[19.1732s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[19.3231s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[19.5122s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[19.7237s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[19.9470s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[20.0493s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[20.3609s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:[35.9992s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:FEASIBLE, wall time: 186.717678 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Booleans in result: 1295 +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.755_796:Minimum number of stalls: 23 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:INFEASIBLE, wall time: 0.241859 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[3.5216s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.57), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[3.8259s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.58), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[4.3243s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.59), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.2735s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.59), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[5.8123s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.60), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[6.7800s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.67), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[7.6643s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.72), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:[7.8399s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.75), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:OPTIMAL, wall time: 17.505772 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Booleans in result: 0 +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.802_843:Minimum number of stalls: 34 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[6.1179s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[6.2398s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[6.3457s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[6.4295s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[6.5857s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.84), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[6.7545s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[6.8331s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[7.1549s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[7.1911s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[7.4475s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 23.0, IPC ~ 1.78) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:[21.1164s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 31.0, IPC ~ 1.32) +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:FEASIBLE, wall time: 186.339919 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Booleans in result: 1265 +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.850_891:Minimum number of stalls: 22 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ************************................. (24) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:INFEASIBLE, wall time: 20.275306 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:INFEASIBLE, wall time: 68.527930 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Setting timeout of 180 seconds... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[46.4713s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 133.0, IPC ~ 0.31), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[85.0302s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 132.0, IPC ~ 0.31), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[86.1041s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 131.0, IPC ~ 0.31), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[87.5207s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 130.0, IPC ~ 0.32), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[87.9943s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 129.0, IPC ~ 0.32), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[88.2165s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 128.0, IPC ~ 0.32), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[89.9033s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 127.0, IPC ~ 0.32), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[91.6246s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 126.0, IPC ~ 0.33), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[91.9106s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 125.0, IPC ~ 0.33), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[92.4378s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 124.0, IPC ~ 0.33), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[93.1351s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 123.0, IPC ~ 0.33), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[94.5750s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 121.0, IPC ~ 0.34), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[97.6829s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 120.0, IPC ~ 0.34), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[100.4366s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 119.0, IPC ~ 0.34), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[108.9069s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 108.0, IPC ~ 0.38), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:[109.6100s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 91.0, IPC ~ 0.45), bound (Cycles ~ 58.0, IPC ~ 0.71) +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:FEASIBLE, wall time: 184.652107 s +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Booleans in result: 898 +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938.selfcheck:OK! +WARNING:intt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:intt_kyber_rvv_vlen128_c908.start.split.897_938:Minimum number of stalls: 70 +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 0- 18]: *********************.................... (21) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 18- 37]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 37- 56]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 56- 75]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 75- 94]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[ 94-113]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[113-132]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[132-151]: *******************************.......... (31) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[151-169]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[169-188]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[188-207]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[207-226]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[226-245]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[245-264]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[264-283]: ***************************************** (41) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[283-302]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[302-320]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[320-339]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[339-358]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[358-377]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[377-396]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[396-415]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[415-434]: ***************************.............. (27) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[434-453]: ******************************........... (30) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[453-472]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[472-490]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[490-509]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[509-528]: ***************************************.. (39) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[528-547]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[547-566]: *************************************.... (37) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[566-585]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[585-604]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[604-623]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[623-641]: ********************************......... (32) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[641-660]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[660-679]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[679-698]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[698-717]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[717-736]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[736-755]: ****************************************. (40) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[755-774]: **************************************... (38) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[774-792]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[792-811]: *********************************........ (33) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[811-830]: **********************************....... (34) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[830-849]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[849-868]: ************************************..... (36) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[868-887]: ***********************************...... (35) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[887-906]: **********************................... (22) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[906-925]: ***********************.................. (23) +INFO:intt_kyber_rvv_vlen128_c908.start.split:[925-944]: **************************............... (26) +INFO:intt_kyber_rvv_vlen128_c908.start.split.split_heuristic_full:OK! +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:INFEASIBLE, wall time: 15.976638 s +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:INFEASIBLE, wall time: 30.466267 s +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:INFEASIBLE, wall time: 87.233529 s +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:INFEASIBLE, wall time: 1979.463740 s +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 512 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:INFEASIBLE, wall time: 17576.341391 s +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 1024 stalls... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:[110863.7707s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 1422.0, IPC ~ 0.66), bound (Cycles ~ 1349.0, IPC ~ 0.70) +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:[115631.8810s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 1418.0, IPC ~ 0.67), bound (Cycles ~ 1375.0, IPC ~ 0.69) +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:[115654.7316s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 1415.0, IPC ~ 0.67), bound (Cycles ~ 1375.0, IPC ~ 0.69) +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:[115840.0193s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 1409.0, IPC ~ 0.67), bound (Cycles ~ 1375.0, IPC ~ 0.69) +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:[117730.5777s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 1408.0, IPC ~ 0.67), bound (Cycles ~ 1377.0, IPC ~ 0.69) +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:[118228.1593s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 1407.0, IPC ~ 0.67), bound (Cycles ~ 1377.0, IPC ~ 0.69) +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:[118858.3239s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 1406.0, IPC ~ 0.67), bound (Cycles ~ 1377.0, IPC ~ 0.69) +INFO:intt_kyber_rvv_vlen128_c908.start.split_estimtate_perf:[119941.0372s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 1404.0, IPC ~ 0.67), bound (Cycles ~ 1384.0, IPC ~ 0.68) diff --git a/rvv_run_logs/kyber_cbd2_rvv_vlen128_c908.log b/rvv_run_logs/kyber_cbd2_rvv_vlen128_c908.log new file mode 100644 index 000000000..afc20b1d9 --- /dev/null +++ b/rvv_run_logs/kyber_cbd2_rvv_vlen128_c908.log @@ -0,0 +1,4856 @@ +* Example: kyber_cbd2_rvv_vlen128_c908... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_cbd2_rvv_vlen128_c908:Optimizing loop cbd2_rvv_vlen128_loop (110 instructions) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:[0.3554s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 36.0, IPC ~ 0.61) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:OPTIMAL, wall time: 0.501596 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Minimum number of stalls: 25 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[0.3922s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[0.3996s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 34.0, IPC ~ 0.65) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:OPTIMAL, wall time: 0.593749 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Minimum number of stalls: 23 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:INFEASIBLE, wall time: 0.160578 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[0.7353s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.46), bound (Cycles ~ 38.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[0.7428s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.47), bound (Cycles ~ 38.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[0.7485s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.49), bound (Cycles ~ 38.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[0.7574s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.50), bound (Cycles ~ 38.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[0.7628s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 38.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[0.7650s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 41.0, IPC ~ 0.54) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:OPTIMAL, wall time: 1.031053 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Minimum number of stalls: 31 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:INFEASIBLE, wall time: 0.371558 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:[0.5551s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.32), bound (Cycles ~ 61.0, IPC ~ 0.36) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:[0.5708s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.32), bound (Cycles ~ 61.0, IPC ~ 0.36) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:[0.5808s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.33), bound (Cycles ~ 61.0, IPC ~ 0.36) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:OPTIMAL, wall time: 0.847268 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Minimum number of stalls: 55 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[1.4482s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[1.4653s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:OPTIMAL, wall time: 1.980633 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Minimum number of stalls: 26 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:Initial stalls +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:[0.4747s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 24.0, IPC ~ 0.92) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:OPTIMAL, wall time: 0.784053 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Minimum number of stalls: 24 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[1.7877s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[1.9280s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[2.0420s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[2.2222s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[2.3617s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[2.4240s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[2.7111s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:OPTIMAL, wall time: 4.351099 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Minimum number of stalls: 25 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:[0.8526s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:[0.8894s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:[0.9429s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:[1.0725s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:[1.1558s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:OPTIMAL, wall time: 2.395113 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Booleans in result: 629 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Minimum number of stalls: 24 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[3.2983s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[3.3241s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:OPTIMAL, wall time: 3.845540 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Booleans in result: 634 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Minimum number of stalls: 22 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[7.0755s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[7.1317s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[7.1390s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[7.2898s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[7.2912s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[7.3545s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[7.4165s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[7.4743s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 25.0, IPC ~ 0.88) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:OPTIMAL, wall time: 8.788587 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Minimum number of stalls: 17 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[23.3043s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[23.3454s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[23.4301s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[23.4969s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[23.5607s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[23.6316s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[23.7149s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[23.8000s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[24.1183s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:OPTIMAL, wall time: 25.792658 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Minimum number of stalls: 18 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[1.2706s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[1.2941s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[1.3179s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[1.3316s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[1.3469s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[1.3701s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[1.4332s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[2.5873s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:OPTIMAL, wall time: 6.460511 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Minimum number of stalls: 17 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[0.8050s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.52), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[0.8258s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.56), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[0.8457s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.57), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[0.8625s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.61), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[0.8895s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.62), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[0.9121s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.64), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[0.9270s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.66), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[0.9444s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.68), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[0.9694s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.70), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[0.9972s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.72), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[1.0252s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.74), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[1.0456s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.77), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[1.1231s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.79), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[1.2471s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.82), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[1.2723s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.85), bound (Cycles ~ 15.0, IPC ~ 1.53) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[1.3336s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.88), bound (Cycles ~ 18.0, IPC ~ 1.28) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:OPTIMAL, wall time: 3.688964 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Minimum number of stalls: 14 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[1.2786s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[1.3293s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[1.4179s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[1.5012s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[1.5917s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[1.6639s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[1.8462s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[1.8938s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[1.9138s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[2.0635s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[2.0998s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:OPTIMAL, wall time: 4.463227 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Minimum number of stalls: 22 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:INFEASIBLE, wall time: 2.308365 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[8.1525s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.31), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[8.2679s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.47), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[8.4196s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.48), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:OPTIMAL, wall time: 10.201090 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Minimum number of stalls: 35 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:INFEASIBLE, wall time: 1.739406 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:[2.4051s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.31), bound (Cycles ~ 32.0, IPC ~ 0.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:[2.5475s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.31), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:[2.6364s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.32), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:[2.7613s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.32), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:[2.8737s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.33), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:[2.9716s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.33), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:[3.0753s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.34), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:[3.1769s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.34), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:[3.2613s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.35), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:OPTIMAL, wall time: 3.908414 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Minimum number of stalls: 52 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:INFEASIBLE, wall time: 0.228287 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:[1.7001s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.31), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:[1.7184s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.31), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:[1.7445s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.32), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:[1.8237s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.33), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:[1.8766s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.34), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:[1.9006s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.34), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:[1.9136s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.35), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:OPTIMAL, wall time: 2.263561 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Minimum number of stalls: 52 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:INFEASIBLE, wall time: 0.090905 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:[1.1820s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.33), bound (Cycles ~ 58.0, IPC ~ 0.38) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:[1.3506s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.34), bound (Cycles ~ 58.0, IPC ~ 0.38) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:[1.4590s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.34), bound (Cycles ~ 58.0, IPC ~ 0.38) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:OPTIMAL, wall time: 3.984642 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Booleans in result: 559 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Minimum number of stalls: 53 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:INFEASIBLE, wall time: 4.899389 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:[56.4742s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.32), bound (Cycles ~ 37.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:OPTIMAL, wall time: 470.210914 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Minimum number of stalls: 57 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:INFEASIBLE, wall time: 16.472301 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:[1.8943s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.33), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:[1.9373s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.35), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:[2.0337s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.35), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:[2.0717s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.37), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:[2.1171s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.39), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:OPTIMAL, wall time: 26.081790 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Booleans in result: 443 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Minimum number of stalls: 46 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:INFEASIBLE, wall time: 3.325990 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[9.2866s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.35), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[9.3298s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.37), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[9.3689s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.38), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[9.7013s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.40), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[9.7654s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.41), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[10.0226s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.42), bound (Cycles ~ 16.0, IPC ~ 1.38) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[10.1875s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.42), bound (Cycles ~ 16.0, IPC ~ 1.38) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[10.2924s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.43), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[10.4570s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.44), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[10.5074s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.45), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[10.8795s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.46), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:OPTIMAL, wall time: 43.433514 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Minimum number of stalls: 37 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:INFEASIBLE, wall time: 12.977809 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[1.0254s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.42), bound (Cycles ~ 12.0, IPC ~ 1.83) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[1.3270s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.42), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[1.3633s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.45), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:OPTIMAL, wall time: 9.962736 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Booleans in result: 397 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Minimum number of stalls: 38 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:[3.1472s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:[3.1817s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:OPTIMAL, wall time: 3.323737 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.0_22:Minimum number of stalls: 22 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[0.6944s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[0.7556s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[0.8092s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[0.8804s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[0.9551s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[1.0492s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[1.2048s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:[1.2684s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 25.0, IPC ~ 0.88) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:OPTIMAL, wall time: 4.818182 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.6_28:Minimum number of stalls: 24 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:[39.1748s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:[39.2594s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:[40.2595s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:[40.8889s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:OPTIMAL, wall time: 44.397631 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.11_33:Minimum number of stalls: 20 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[7.6705s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[7.7503s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[7.9025s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[8.1102s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[8.1836s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[8.2464s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[8.3371s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[8.4099s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[8.4805s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[8.5374s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[8.7198s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:[8.8041s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:OPTIMAL, wall time: 11.043465 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.17_39:Minimum number of stalls: 18 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.1798s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.3074s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.3586s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.4051s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.4588s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.5360s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.5909s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.6682s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.7202s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.7995s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.8739s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[1.9260s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[2.0174s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[2.0804s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[2.1706s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[2.2530s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 25.0, IPC ~ 0.88) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:[2.4546s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.81), bound (Cycles ~ 25.0, IPC ~ 0.88) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:OPTIMAL, wall time: 5.882545 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.22_44:Minimum number of stalls: 16 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[0.8172s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[0.8482s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[0.8668s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[0.8814s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[0.9004s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[0.9237s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[0.9383s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[0.9567s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[0.9850s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[1.0743s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:[1.2298s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.81), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:OPTIMAL, wall time: 2.919168 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.28_50:Minimum number of stalls: 16 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[6.4898s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[6.5275s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[6.5595s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[6.6220s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[6.7196s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.81), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:[6.8286s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.85), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:OPTIMAL, wall time: 8.470795 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.33_55:Minimum number of stalls: 15 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[29.6758s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.66), bound (Cycles ~ 17.0, IPC ~ 1.35) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[29.8272s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.68), bound (Cycles ~ 17.0, IPC ~ 1.35) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[29.8972s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.70), bound (Cycles ~ 17.0, IPC ~ 1.35) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[29.9676s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.72), bound (Cycles ~ 17.0, IPC ~ 1.35) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:[30.0734s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.74), bound (Cycles ~ 25.0, IPC ~ 0.92) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:OPTIMAL, wall time: 30.826792 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.38_61:Minimum number of stalls: 19 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[15.7334s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[15.7758s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[15.8125s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[15.8541s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[15.8868s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:[15.9220s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:OPTIMAL, wall time: 16.597990 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.44_66:Minimum number of stalls: 24 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:INFEASIBLE, wall time: 1.970731 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[2.8397s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.31), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[2.9167s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.42), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[3.0442s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.43), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[3.1165s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.44), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[3.2290s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.45), bound (Cycles ~ 27.0, IPC ~ 0.81) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[3.2891s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.46), bound (Cycles ~ 27.0, IPC ~ 0.81) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[3.3254s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.47), bound (Cycles ~ 27.0, IPC ~ 0.81) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[3.3728s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.48), bound (Cycles ~ 45.0, IPC ~ 0.49) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:[3.3780s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.49), bound (Cycles ~ 45.0, IPC ~ 0.49) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:OPTIMAL, wall time: 4.816649 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.49_71:Minimum number of stalls: 34 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:INFEASIBLE, wall time: 0.231690 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:[5.7893s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.40), bound (Cycles ~ 12.0, IPC ~ 1.83) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:OPTIMAL, wall time: 6.190237 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.55_77:Minimum number of stalls: 44 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:INFEASIBLE, wall time: 1.059694 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:[12.0480s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.37), bound (Cycles ~ 12.0, IPC ~ 1.83) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:[12.1737s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.38), bound (Cycles ~ 12.0, IPC ~ 1.83) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:[12.2705s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.39), bound (Cycles ~ 31.0, IPC ~ 0.71) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:OPTIMAL, wall time: 12.620164 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.60_82:Minimum number of stalls: 46 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:INFEASIBLE, wall time: 0.180858 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:[1.3105s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.35), bound (Cycles ~ 12.0, IPC ~ 1.83) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:[1.7473s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.37), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:[1.8228s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.37), bound (Cycles ~ 59.0, IPC ~ 0.37) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:OPTIMAL, wall time: 4.361181 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.66_88:Minimum number of stalls: 48 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:INFEASIBLE, wall time: 0.047310 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:[2.0188s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.35), bound (Cycles ~ 54.0, IPC ~ 0.41) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:[2.0448s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.36), bound (Cycles ~ 56.0, IPC ~ 0.39) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:OPTIMAL, wall time: 4.242974 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.72_94:Minimum number of stalls: 50 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:INFEASIBLE, wall time: 0.060681 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:[6.1861s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.32), bound (Cycles ~ 45.0, IPC ~ 0.49) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:[6.4984s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.34), bound (Cycles ~ 45.0, IPC ~ 0.49) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:[7.0983s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.35), bound (Cycles ~ 45.0, IPC ~ 0.49) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:OPTIMAL, wall time: 15.942423 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Booleans in result: 564 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.77_99:Minimum number of stalls: 52 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:INFEASIBLE, wall time: 2.186538 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[48.9938s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.30), bound (Cycles ~ 29.0, IPC ~ 0.76) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[49.1804s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.31), bound (Cycles ~ 29.0, IPC ~ 0.76) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[49.2407s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.32), bound (Cycles ~ 29.0, IPC ~ 0.76) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[49.3097s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.32), bound (Cycles ~ 29.0, IPC ~ 0.76) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[49.3575s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.33), bound (Cycles ~ 29.0, IPC ~ 0.76) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[49.4118s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.34), bound (Cycles ~ 29.0, IPC ~ 0.76) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[49.7076s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.34), bound (Cycles ~ 31.0, IPC ~ 0.71) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[49.8071s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.35), bound (Cycles ~ 31.0, IPC ~ 0.71) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[50.5259s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.35), bound (Cycles ~ 37.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[50.8414s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.36), bound (Cycles ~ 37.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[50.8963s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.37), bound (Cycles ~ 37.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[51.1287s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.37), bound (Cycles ~ 37.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:[52.3450s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.38), bound (Cycles ~ 37.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:OPTIMAL, wall time: 57.917262 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.83_105:Minimum number of stalls: 47 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:INFEASIBLE, wall time: 21.620857 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[4.5100s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.35), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[4.5235s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.36), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[4.5370s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.37), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[4.5569s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.37), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[4.5709s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.38), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[4.5842s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.39), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[4.5988s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.40), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[4.8207s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.41), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[5.3005s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.42), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[7.7205s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.42), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:[8.5302s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.43), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:OPTIMAL, wall time: 157.695724 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.88_110:Minimum number of stalls: 40 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 4- 6]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 6- 8]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 8- 11]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 11- 13]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 13- 15]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 15- 17]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 17- 19]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 19- 22]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 41- 44]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 44- 46]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 46- 48]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 48- 50]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 50- 52]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 52- 55]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 57- 59]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 59- 61]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 61- 63]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 66- 68]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 68- 70]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 70- 72]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 72- 74]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 74- 77]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 77- 79]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 81- 83]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 83- 85]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 90- 92]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 92- 94]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.split_heuristic_full:OK! +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 0.385267 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 1.564181 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 9.356762 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:[195.9304s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 310.0, IPC ~ 0.35), bound (Cycles ~ 187.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:[270.2561s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 309.0, IPC ~ 0.36), bound (Cycles ~ 187.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:[270.3034s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 216.0, IPC ~ 0.51), bound (Cycles ~ 187.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:[273.9863s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 215.0, IPC ~ 0.51), bound (Cycles ~ 187.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:[274.1696s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 212.0, IPC ~ 0.52), bound (Cycles ~ 187.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:[287.2224s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 211.0, IPC ~ 0.52), bound (Cycles ~ 187.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:[288.6461s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 208.0, IPC ~ 0.53), bound (Cycles ~ 187.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:[293.1330s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 207.0, IPC ~ 0.53), bound (Cycles ~ 187.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:[297.6178s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 205.0, IPC ~ 0.54), bound (Cycles ~ 187.0, IPC ~ 0.59) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:OPTIMAL, wall time: 325.345976 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Booleans in result: 4314 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split_estimtate_perf:Minimum number of stalls: 150 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.slothy.split.split_heuristic_full_with_stalls:OK! +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.halving_heuristic_1:OK! +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop:Apply halving heuristic to optimize two halves of consecutive loop kernels... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[0.5778s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 32.0, IPC ~ 0.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[0.5836s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 36.0, IPC ~ 0.61) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:OPTIMAL, wall time: 0.707254 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Minimum number of stalls: 25 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:INFEASIBLE, wall time: 0.092304 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:[0.3615s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.30), bound (Cycles ~ 49.0, IPC ~ 0.45) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:[0.3747s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.33), bound (Cycles ~ 49.0, IPC ~ 0.45) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:OPTIMAL, wall time: 1.935818 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Minimum number of stalls: 55 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:[0.1940s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 27.0, IPC ~ 0.81) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:OPTIMAL, wall time: 1.981053 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Minimum number of stalls: 21 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[0.6379s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 32.0, IPC ~ 0.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[0.6454s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:OPTIMAL, wall time: 1.178838 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Minimum number of stalls: 23 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[15.1357s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[15.1483s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[15.1638s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 26.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[15.1707s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.81), bound (Cycles ~ 27.0, IPC ~ 0.81) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:OPTIMAL, wall time: 16.194864 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Minimum number of stalls: 16 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:Initial stalls +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ********.............. (8) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: **********............ (10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[2.3214s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[2.3555s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[2.3920s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[2.4213s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[2.4403s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[2.4582s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 13.0, IPC ~ 1.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:OPTIMAL, wall time: 3.171470 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Minimum number of stalls: 24 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:INFEASIBLE, wall time: 0.082309 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:[3.3208s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.48), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:[3.3851s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.49), bound (Cycles ~ 13.0, IPC ~ 1.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:OPTIMAL, wall time: 4.878451 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Minimum number of stalls: 34 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: **********............ (10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:INFEASIBLE, wall time: 0.338325 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:[6.7256s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.34), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:[7.0805s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.35), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:[7.3386s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.36), bound (Cycles ~ 33.0, IPC ~ 0.67) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:OPTIMAL, wall time: 10.009155 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Minimum number of stalls: 50 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:INFEASIBLE, wall time: 1.371833 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:[8.4357s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.35), bound (Cycles ~ 54.0, IPC ~ 0.41) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:[8.7525s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.36), bound (Cycles ~ 55.0, IPC ~ 0.40) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:OPTIMAL, wall time: 9.445779 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Minimum number of stalls: 50 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:INFEASIBLE, wall time: 3.975234 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:[37.0290s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.33), bound (Cycles ~ 44.0, IPC ~ 0.50) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:OPTIMAL, wall time: 55.320277 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Booleans in result: 585 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Minimum number of stalls: 55 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:INFEASIBLE, wall time: 15.818887 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:[9.9838s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.34), bound (Cycles ~ 28.0, IPC ~ 0.79) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:[10.3640s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.36), bound (Cycles ~ 31.0, IPC ~ 0.71) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:[10.6058s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.37), bound (Cycles ~ 31.0, IPC ~ 0.71) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:[10.7862s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.37), bound (Cycles ~ 31.0, IPC ~ 0.71) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:[11.1489s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.38), bound (Cycles ~ 31.0, IPC ~ 0.71) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:[11.4061s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.39), bound (Cycles ~ 31.0, IPC ~ 0.71) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:[11.8221s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.39), bound (Cycles ~ 32.0, IPC ~ 0.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:OPTIMAL, wall time: 41.249783 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Booleans in result: 485 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Minimum number of stalls: 45 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:INFEASIBLE, wall time: 20.629725 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[1.4521s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.30), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[1.8245s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.30), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[2.0973s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.31), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[2.3559s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.31), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[2.6552s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.31), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[2.9145s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.35), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[3.3078s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.39), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[4.5500s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.40), bound (Cycles ~ 45.0, IPC ~ 0.49) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:OPTIMAL, wall time: 37.119165 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Minimum number of stalls: 44 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:INFEASIBLE, wall time: 2.651139 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[14.4062s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.40), bound (Cycles ~ 18.0, IPC ~ 1.28) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[14.4611s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.43), bound (Cycles ~ 18.0, IPC ~ 1.28) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[14.5388s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.43), bound (Cycles ~ 18.0, IPC ~ 1.28) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[14.5756s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.44), bound (Cycles ~ 18.0, IPC ~ 1.28) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[14.6180s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.45), bound (Cycles ~ 18.0, IPC ~ 1.28) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[14.7194s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.46), bound (Cycles ~ 18.0, IPC ~ 1.28) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[14.7906s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.47), bound (Cycles ~ 18.0, IPC ~ 1.28) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[14.8352s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.49), bound (Cycles ~ 18.0, IPC ~ 1.28) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[14.9852s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.50), bound (Cycles ~ 18.0, IPC ~ 1.28) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:OPTIMAL, wall time: 5631.371347 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Minimum number of stalls: 34 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:[5.7752s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:[5.8050s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:[5.8366s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:[6.0069s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:OPTIMAL, wall time: 7.163603 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Minimum number of stalls: 28 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:[0.3429s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:[0.3715s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:[0.4763s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 24.0, IPC ~ 0.92) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:OPTIMAL, wall time: 1.308883 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Minimum number of stalls: 24 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:[0.5534s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:[0.5746s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:OPTIMAL, wall time: 3.007366 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Minimum number of stalls: 26 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[46.7099s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[46.7563s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[46.7980s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[46.8376s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[46.8668s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[46.9244s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[46.9628s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[47.0086s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:OPTIMAL, wall time: 48.844140 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Minimum number of stalls: 24 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[0.8364s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[0.8510s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[0.8663s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[0.8820s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[0.9008s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[0.9167s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[0.9449s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[1.0174s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[1.1285s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[1.2610s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[1.3460s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[1.3622s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[1.3767s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 25.0, IPC ~ 0.88) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:OPTIMAL, wall time: 2.015625 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Minimum number of stalls: 20 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:[1.2988s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 16.0, IPC ~ 1.38) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:[1.3541s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 16.0, IPC ~ 1.38) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:[1.4501s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:OPTIMAL, wall time: 4.327824 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Minimum number of stalls: 18 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.1616s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.2643s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.2968s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.4942s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.5405s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.5775s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.6185s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.6606s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.7024s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.7342s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.7932s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[29.8912s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[30.0004s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.81), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[30.0389s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.85), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:OPTIMAL, wall time: 32.556017 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Minimum number of stalls: 15 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.4895s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.5045s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.5235s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.5444s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.5785s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.6079s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.6504s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.6954s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.7029s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.7593s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.81), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.7756s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.85), bound (Cycles ~ 14.0, IPC ~ 1.57) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[1.8209s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.88), bound (Cycles ~ 18.0, IPC ~ 1.22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:OPTIMAL, wall time: 4.323759 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Minimum number of stalls: 14 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[4.8238s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[5.0275s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.81), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[5.1318s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[5.1502s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.88), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:OPTIMAL, wall time: 24.700088 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Minimum number of stalls: 14 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[1.2918s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[1.3204s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[1.3337s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[1.3934s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:[1.4053s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 13.0, IPC ~ 1.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:OPTIMAL, wall time: 2.002818 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.0_22:Minimum number of stalls: 24 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: **********............ (10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:INFEASIBLE, wall time: 0.271898 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:[6.0792s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.44), bound (Cycles ~ 27.0, IPC ~ 0.81) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:[6.7958s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.45), bound (Cycles ~ 27.0, IPC ~ 0.81) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:[7.0096s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.46), bound (Cycles ~ 27.0, IPC ~ 0.81) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:[7.3065s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.47), bound (Cycles ~ 27.0, IPC ~ 0.81) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:OPTIMAL, wall time: 9.286953 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Booleans in result: 375 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.6_28:Minimum number of stalls: 36 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ***................... (3) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: *****................. (5) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: *******............... (7) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: **********............ (10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:INFEASIBLE, wall time: 0.049459 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:[1.0121s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.30), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:[1.0781s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.31), bound (Cycles ~ 11.0, IPC ~ 2.00) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:[1.1638s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.32), bound (Cycles ~ 32.0, IPC ~ 0.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:[1.2147s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.33), bound (Cycles ~ 32.0, IPC ~ 0.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:[1.2915s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.34), bound (Cycles ~ 32.0, IPC ~ 0.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:[1.3060s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.38), bound (Cycles ~ 32.0, IPC ~ 0.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:[1.4442s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.39), bound (Cycles ~ 32.0, IPC ~ 0.69) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:OPTIMAL, wall time: 1.686234 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.11_33:Minimum number of stalls: 46 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:INFEASIBLE, wall time: 0.087532 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:[4.3729s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.35), bound (Cycles ~ 56.0, IPC ~ 0.39) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:OPTIMAL, wall time: 7.478204 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.17_39:Minimum number of stalls: 52 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:INFEASIBLE, wall time: 4.642716 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:[45.0488s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.36), bound (Cycles ~ 46.0, IPC ~ 0.48) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:OPTIMAL, wall time: 50.346036 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.22_44:Minimum number of stalls: 50 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:INFEASIBLE, wall time: 1.944599 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:[1.4020s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.36), bound (Cycles ~ 29.0, IPC ~ 0.76) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:[1.7638s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.38), bound (Cycles ~ 30.0, IPC ~ 0.73) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:[2.6810s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.39), bound (Cycles ~ 51.0, IPC ~ 0.43) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:OPTIMAL, wall time: 98.938000 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.28_50:Minimum number of stalls: 46 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:INFEASIBLE, wall time: 4.062425 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[3.9714s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.36), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[4.2608s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.39), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[4.5897s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.40), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[4.9776s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.41), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[5.2538s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.42), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[8.0140s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.42), bound (Cycles ~ 39.0, IPC ~ 0.56) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:[8.4610s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.43), bound (Cycles ~ 39.0, IPC ~ 0.56) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:OPTIMAL, wall time: 18.507846 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.33_55:Minimum number of stalls: 40 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:INFEASIBLE, wall time: 19.039411 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[4.3638s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.30), bound (Cycles ~ 27.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[4.5048s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.32), bound (Cycles ~ 27.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[5.1938s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.40), bound (Cycles ~ 27.0, IPC ~ 0.85) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[6.7674s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.40), bound (Cycles ~ 28.0, IPC ~ 0.82) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:[7.5735s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.43), bound (Cycles ~ 28.0, IPC ~ 0.82) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:OPTIMAL, wall time: 6137.731818 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Booleans in result: 333 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.38_61:Minimum number of stalls: 41 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:[30.2211s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 25.0, IPC ~ 0.88) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:[30.2983s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 25.0, IPC ~ 0.88) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:OPTIMAL, wall time: 33.754231 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.44_66:Minimum number of stalls: 30 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:[4.3355s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:OPTIMAL, wall time: 6.486321 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Booleans in result: 360 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.49_71:Minimum number of stalls: 30 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:[0.8533s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:[0.9175s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:[1.0356s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:[1.0397s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:OPTIMAL, wall time: 3.094268 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.55_77:Minimum number of stalls: 26 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[5.8081s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[5.9343s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 24.0, IPC ~ 0.92) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:[6.0415s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 24.0, IPC ~ 0.92) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:OPTIMAL, wall time: 9.453802 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.60_82:Minimum number of stalls: 22 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *.................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******............... (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............ (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********.......... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************........ (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************...... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************.... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************.. (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ******************... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ******************... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ******************... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *******************.. (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************.. (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************.... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************..... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ****************..... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ****************..... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************.. (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************.. (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************.. (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: ******************... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: *******************.. (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: *******************.. (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************* (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************.. (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************.... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************...... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************........ (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********.......... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[7.9907s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[8.1061s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[8.1662s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[8.2018s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[8.2381s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:[8.2735s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:OPTIMAL, wall time: 9.192920 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.66_88:Minimum number of stalls: 20 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:[1.3563s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:[1.4441s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:[1.5919s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:[1.7129s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:[1.8167s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 25.0, IPC ~ 0.88) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:OPTIMAL, wall time: 4.522512 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.72_94:Minimum number of stalls: 17 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[0.8712s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[0.9037s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[0.9566s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[1.0114s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[1.0293s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[1.1169s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[1.1608s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 15.0, IPC ~ 1.47) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[1.2013s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[1.2662s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.81), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:[1.3071s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.85), bound (Cycles ~ 23.0, IPC ~ 0.96) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:OPTIMAL, wall time: 4.339530 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.77_99:Minimum number of stalls: 15 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.6415s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.6603s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.55), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.6752s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.6985s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.7127s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.7291s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.7438s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.7607s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.7768s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.7924s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.8284s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.9167s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.9680s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.9850s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.81), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:[63.9997s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.85), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:OPTIMAL, wall time: 64.715491 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.83_105:Minimum number of stalls: 15 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: **************........ (14) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ************.......... (12) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[0.9151s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.51), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[0.9313s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.52), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[0.9469s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.54), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[0.9616s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.56), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[0.9788s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.58), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[0.9916s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.59), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.0229s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.61), bound (Cycles ~ 17.0, IPC ~ 1.29) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.0726s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.63), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.0988s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.65), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.1124s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.67), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.1278s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.69), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.1408s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.71), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.1592s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 0.73), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.1787s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.76), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.1970s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 0.79), bound (Cycles ~ 19.0, IPC ~ 1.16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.3202s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.81), bound (Cycles ~ 20.0, IPC ~ 1.10) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.3636s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:[1.3867s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.88), bound (Cycles ~ 21.0, IPC ~ 1.05) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:OPTIMAL, wall time: 3.263141 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Booleans in result: 0 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.88_110:Minimum number of stalls: 14 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *..................... (1) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **.................... (2) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 4- 6]: ****.................. (4) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 6- 8]: ******................ (6) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *********............. (9) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 13- 15]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 15- 17]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 17- 19]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 24- 26]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 26- 28]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 28- 30]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 33- 35]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 35- 37]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 39- 41]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 44- 46]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 46- 48]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 48- 50]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 55- 57]: ****************...... (16) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************.... (18) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 59- 61]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 66- 68]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 68- 70]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 70- 72]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 72- 74]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 74- 77]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 77- 79]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 81- 83]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 83- 85]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 85- 88]: ********************** (22) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 88- 90]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 90- 92]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 92- 94]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************. (21) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ********************.. (20) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************... (19) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[101-103]: *****************..... (17) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[103-105]: ***************....... (15) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[105-107]: *************......... (13) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split:[107-110]: ***********........... (11) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.split_heuristic_full:OK! +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 42.108834 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 3.655011 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 4.264141 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:[684.6025s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 283.0, IPC ~ 0.39), bound (Cycles ~ 189.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:[764.3507s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 230.0, IPC ~ 0.48), bound (Cycles ~ 189.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:[765.3826s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 205.0, IPC ~ 0.54), bound (Cycles ~ 189.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:[772.0865s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 204.0, IPC ~ 0.54), bound (Cycles ~ 189.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:[779.3332s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 203.0, IPC ~ 0.54), bound (Cycles ~ 189.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:[794.4031s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 202.0, IPC ~ 0.54), bound (Cycles ~ 190.0, IPC ~ 0.58) +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:OPTIMAL, wall time: 862.865943 s +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Booleans in result: 4441 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf.selfcheck:OK! +WARNING:kyber_cbd2_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split_estimtate_perf:Minimum number of stalls: 147 +INFO:kyber_cbd2_rvv_vlen128_c908.cbd2_rvv_vlen128_loop.heuristic.split.split_heuristic_full_with_stalls:OK! diff --git a/rvv_run_logs/kyber_cbd3_rvv_vlen128_c908.log b/rvv_run_logs/kyber_cbd3_rvv_vlen128_c908.log new file mode 100644 index 000000000..c9b18cbcc --- /dev/null +++ b/rvv_run_logs/kyber_cbd3_rvv_vlen128_c908.log @@ -0,0 +1,4858 @@ +* Example: kyber_cbd3_rvv_vlen128_c908... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_cbd3_rvv_vlen128_c908:Optimizing loop cbd3_rvv_vlen128_loop (139 instructions) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:INFEASIBLE, wall time: 0.096776 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[0.3917s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.44), bound (Cycles ~ 52.0, IPC ~ 0.54) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[0.4112s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.45), bound (Cycles ~ 52.0, IPC ~ 0.54) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[0.4203s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.46), bound (Cycles ~ 52.0, IPC ~ 0.54) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[0.4285s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.47), bound (Cycles ~ 52.0, IPC ~ 0.54) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:OPTIMAL, wall time: 0.910305 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Minimum number of stalls: 45 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[0.4124s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 36.0, IPC ~ 0.78) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[0.4589s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[0.4872s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[0.5007s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[0.5065s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 39.0, IPC ~ 0.72) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:OPTIMAL, wall time: 0.677508 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Minimum number of stalls: 25 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:INFEASIBLE, wall time: 0.177907 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[0.4887s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.51), bound (Cycles ~ 52.0, IPC ~ 0.52) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[0.4938s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.52), bound (Cycles ~ 52.0, IPC ~ 0.52) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:OPTIMAL, wall time: 0.586396 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Minimum number of stalls: 38 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:INFEASIBLE, wall time: 0.801007 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[2.7654s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.41), bound (Cycles ~ 60.0, IPC ~ 0.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[2.7870s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.42), bound (Cycles ~ 60.0, IPC ~ 0.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[2.8369s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.44), bound (Cycles ~ 64.0, IPC ~ 0.44) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:OPTIMAL, wall time: 3.317343 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Minimum number of stalls: 50 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:INFEASIBLE, wall time: 0.080402 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:[0.5420s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.58), bound (Cycles ~ 44.0, IPC ~ 0.64) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:[0.5446s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.60), bound (Cycles ~ 47.0, IPC ~ 0.60) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:OPTIMAL, wall time: 0.801810 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Minimum number of stalls: 33 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:Initial stalls +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:INFEASIBLE, wall time: 0.788104 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[1.1474s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.47), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:OPTIMAL, wall time: 2.002884 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Booleans in result: 622 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Minimum number of stalls: 45 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:INFEASIBLE, wall time: 0.118567 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.3724s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.36), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.4311s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.36), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.4685s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.37), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.5156s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.5535s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.38), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.6178s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.6548s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.39), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.6919s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.39), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.7282s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.40), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.7701s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.41), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.8118s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.42), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[4.8391s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.44), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:OPTIMAL, wall time: 6.849148 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Booleans in result: 781 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Minimum number of stalls: 49 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:[2.7627s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:[2.9473s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:[3.1485s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:[3.1817s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 17.0, IPC ~ 1.65) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:OPTIMAL, wall time: 5.952815 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Booleans in result: 1050 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Minimum number of stalls: 29 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[34.7165s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[34.7513s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[34.8307s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[34.8663s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[35.0368s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[35.2406s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[35.3634s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[35.4586s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[35.5147s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[35.5756s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:OPTIMAL, wall time: 39.507112 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Booleans in result: 944 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Minimum number of stalls: 23 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[1.1604s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[1.3866s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[1.4176s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[1.8804s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[2.0994s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[2.1850s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[2.2349s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[2.3442s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[3.1845s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[3.4882s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[3.5349s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[3.9801s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:OPTIMAL, wall time: 8.858919 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Minimum number of stalls: 21 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[16.9778s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[17.1094s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[17.1915s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[17.2761s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[17.9318s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[18.0963s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[18.1389s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[18.3392s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:OPTIMAL, wall time: 34.261353 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Minimum number of stalls: 25 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[0.8467s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[0.9555s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[1.0219s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[1.2217s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[1.2873s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:OPTIMAL, wall time: 2.928465 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Minimum number of stalls: 28 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:[5.6763s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.59), bound (Cycles ~ 24.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:[5.7240s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.61), bound (Cycles ~ 24.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:[5.9214s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.63), bound (Cycles ~ 24.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:OPTIMAL, wall time: 6.277725 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Booleans in result: 653 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Minimum number of stalls: 29 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:INFEASIBLE, wall time: 0.123959 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[1.5108s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.38), bound (Cycles ~ 14.0, IPC ~ 1.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[1.6253s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.55), bound (Cycles ~ 14.0, IPC ~ 1.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[1.7780s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.56), bound (Cycles ~ 26.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[1.8585s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.57), bound (Cycles ~ 26.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:OPTIMAL, wall time: 4.996867 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Minimum number of stalls: 33 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[38.2878s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.59), bound (Cycles ~ 14.0, IPC ~ 1.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[38.4850s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.60), bound (Cycles ~ 14.0, IPC ~ 1.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[38.4873s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.63), bound (Cycles ~ 14.0, IPC ~ 1.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:OPTIMAL, wall time: 39.481347 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Minimum number of stalls: 29 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:[2.1651s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 31.0, IPC ~ 0.90) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:[2.2635s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 31.0, IPC ~ 0.90) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:[2.3637s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 31.0, IPC ~ 0.90) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:[2.4501s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 31.0, IPC ~ 0.90) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:OPTIMAL, wall time: 205.797473 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Minimum number of stalls: 29 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:[2.1148s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:OPTIMAL, wall time: 7.266726 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Booleans in result: 744 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Minimum number of stalls: 30 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:INFEASIBLE, wall time: 5.125433 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[2.7430s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.38), bound (Cycles ~ 16.0, IPC ~ 1.75) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[2.7977s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 16.0, IPC ~ 1.75) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[2.8460s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.39), bound (Cycles ~ 16.0, IPC ~ 1.75) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[2.9620s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.41), bound (Cycles ~ 16.0, IPC ~ 1.75) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[3.0872s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.41), bound (Cycles ~ 16.0, IPC ~ 1.75) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[3.8744s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.42), bound (Cycles ~ 17.0, IPC ~ 1.65) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[4.0739s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.42), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[4.1297s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.43), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[4.2044s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.44), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:OPTIMAL, wall time: 8.453291 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Minimum number of stalls: 50 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:INFEASIBLE, wall time: 0.179096 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:[0.8149s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.37), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:[0.8483s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:OPTIMAL, wall time: 2.159175 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Minimum number of stalls: 61 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:INFEASIBLE, wall time: 1.225260 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[51.5414s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[51.9453s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[52.6220s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.39), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:OPTIMAL, wall time: 56.598877 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Minimum number of stalls: 57 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: ********................... (8) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:INFEASIBLE, wall time: 0.052599 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:[13.1646s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.36), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:[13.2565s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:[13.3402s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.38), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:[13.4058s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 40.0, IPC ~ 0.70) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:OPTIMAL, wall time: 19.118451 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Minimum number of stalls: 59 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:INFEASIBLE, wall time: 0.141918 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:[39.7434s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.36), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:[40.1100s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.41), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:OPTIMAL, wall time: 42.320514 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Minimum number of stalls: 55 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:INFEASIBLE, wall time: 2.548336 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[35.3443s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[35.8448s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[35.8937s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.42), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[36.1452s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.42), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[36.2008s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.43), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[37.4465s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.44), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[37.7059s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.45), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[37.9734s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.46), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[38.6221s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.47), bound (Cycles ~ 36.0, IPC ~ 0.78) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[39.1972s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.50), bound (Cycles ~ 36.0, IPC ~ 0.78) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[39.8907s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.51), bound (Cycles ~ 36.0, IPC ~ 0.78) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[39.9541s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.52), bound (Cycles ~ 36.0, IPC ~ 0.78) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:[40.2033s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.53), bound (Cycles ~ 41.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:OPTIMAL, wall time: 43.057410 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.0_28:Minimum number of stalls: 39 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:INFEASIBLE, wall time: 0.311746 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[1.8141s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.36), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[1.9913s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.45), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[2.1112s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.46), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[2.1944s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.47), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[2.4572s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.47), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[2.6732s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.48), bound (Cycles ~ 42.0, IPC ~ 0.67) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[3.0397s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.49), bound (Cycles ~ 43.0, IPC ~ 0.65) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[3.4610s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.50), bound (Cycles ~ 44.0, IPC ~ 0.64) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:[3.6676s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.51), bound (Cycles ~ 47.0, IPC ~ 0.60) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:OPTIMAL, wall time: 5.672178 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.7_35:Minimum number of stalls: 41 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:[17.9703s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 17.0, IPC ~ 1.65) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:[19.0826s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 17.0, IPC ~ 1.65) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:[20.0659s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 17.0, IPC ~ 1.65) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:[21.0735s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:[21.7305s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 39.0, IPC ~ 0.72) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:[22.4606s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 39.0, IPC ~ 0.72) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:OPTIMAL, wall time: 27.161957 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.14_42:Minimum number of stalls: 27 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[5.1308s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[5.2581s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[5.4370s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[5.5669s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[5.6925s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[5.8088s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[5.8925s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[5.9917s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[6.1147s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:[6.3792s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:OPTIMAL, wall time: 9.313096 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.21_49:Minimum number of stalls: 22 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.4200s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.4758s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.5067s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.5403s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.5669s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.5913s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.6677s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.7436s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.7941s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.8708s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[62.9035s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[63.0617s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:[63.9447s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.82), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:OPTIMAL, wall time: 68.556030 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.28_56:Minimum number of stalls: 20 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[1.1323s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[1.1889s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[1.2493s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.82), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:[1.3800s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.85), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:OPTIMAL, wall time: 6.439516 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.35_63:Minimum number of stalls: 19 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[50.9656s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[51.0330s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[51.1162s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[51.2320s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[51.4915s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[51.5619s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[51.6890s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:[51.8271s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:OPTIMAL, wall time: 52.207803 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.42_70:Minimum number of stalls: 22 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:[0.9435s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.59), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:[0.9950s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.60), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:[1.0781s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.61), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:[1.1684s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.64), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:[1.5158s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.66), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:[1.9410s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.68), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:[2.2408s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.69), bound (Cycles ~ 25.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:OPTIMAL, wall time: 2.860566 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.49_76:Minimum number of stalls: 25 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[6.4029s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.59), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[6.7206s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.60), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[7.1189s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.64), bound (Cycles ~ 16.0, IPC ~ 1.69) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[8.1427s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.66), bound (Cycles ~ 16.0, IPC ~ 1.69) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[8.3574s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.69), bound (Cycles ~ 16.0, IPC ~ 1.69) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[9.2223s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.71), bound (Cycles ~ 23.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:[9.4157s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.73), bound (Cycles ~ 23.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:OPTIMAL, wall time: 11.297907 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Booleans in result: 795 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.56_83:Minimum number of stalls: 23 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[12.6341s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.59), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[12.6898s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.60), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[12.7433s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.61), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[12.8185s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.63), bound (Cycles ~ 15.0, IPC ~ 1.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[13.0626s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.64), bound (Cycles ~ 24.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[13.2155s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.66), bound (Cycles ~ 24.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[13.3157s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.68), bound (Cycles ~ 24.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:[13.4122s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.69), bound (Cycles ~ 24.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:OPTIMAL, wall time: 20.291214 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.63_90:Minimum number of stalls: 25 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:[2.6696s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 33.0, IPC ~ 0.85) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:OPTIMAL, wall time: 10.407768 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.69_97:Minimum number of stalls: 30 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:[1.6894s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:[1.8574s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:[2.2401s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 33.0, IPC ~ 0.85) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:[3.3912s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:OPTIMAL, wall time: 7.538711 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.76_104:Minimum number of stalls: 22 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[29.3167s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 27.0, IPC ~ 1.04) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:[32.0837s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 30.0, IPC ~ 0.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:OPTIMAL, wall time: 47.867273 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Booleans in result: 719 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.83_111:Minimum number of stalls: 28 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:INFEASIBLE, wall time: 1.480784 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:[17.2918s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.51), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:[17.4801s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.52), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:[17.5509s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.54), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:[17.6735s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.56), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:OPTIMAL, wall time: 23.110318 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.90_118:Minimum number of stalls: 36 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:INFEASIBLE, wall time: 0.185821 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[0.8849s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[0.9098s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.41), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[0.9359s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.42), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[0.9854s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.42), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[1.0957s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.44), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[1.2913s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.44), bound (Cycles ~ 36.0, IPC ~ 0.78) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[1.8057s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.46), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[2.1042s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.47), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[2.1518s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.48), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:[2.1721s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.49), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:OPTIMAL, wall time: 9.221451 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.97_125:Minimum number of stalls: 43 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:INFEASIBLE, wall time: 0.867568 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:[7.9137s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.39), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:[8.2415s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.41), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:[8.6017s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.42), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:OPTIMAL, wall time: 15.362572 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Booleans in result: 729 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.104_132:Minimum number of stalls: 53 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:INFEASIBLE, wall time: 4.774728 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:[7.8123s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:[8.0637s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:OPTIMAL, wall time: 9.617009 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.111_139:Minimum number of stalls: 59 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 0- 2]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 2- 5]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 5- 8]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 8- 11]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 11- 13]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 13- 16]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 16- 19]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 19- 22]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 22- 25]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 47- 50]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 50- 52]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 52- 55]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 55- 58]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 58- 61]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 61- 63]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 63- 66]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 72- 75]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 75- 77]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 77- 80]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 80- 83]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 83- 86]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 86- 88]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 88- 91]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 94- 97]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[ 97-100]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[100-102]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[102-105]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[105-108]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[108-111]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[111-113]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[113-116]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[116-119]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.split_heuristic_full:OK! +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 17.128877 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 3.993495 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 2.911683 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:[838.8598s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 254.0, IPC ~ 0.55), bound (Cycles ~ 240.0, IPC ~ 0.58) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:OPTIMAL, wall time: 858.899793 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Booleans in result: 4931 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split_estimtate_perf:Minimum number of stalls: 184 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.slothy.split.split_heuristic_full_with_stalls:OK! +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.halving_heuristic_1:OK! +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop:Apply halving heuristic to optimize two halves of consecutive loop kernels... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[0.2696s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.88), bound (Cycles ~ 31.0, IPC ~ 0.90) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[0.2742s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.90), bound (Cycles ~ 31.0, IPC ~ 0.90) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:OPTIMAL, wall time: 0.693593 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Minimum number of stalls: 17 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:INFEASIBLE, wall time: 0.611283 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[5.3157s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.44), bound (Cycles ~ 60.0, IPC ~ 0.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[5.3274s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.44), bound (Cycles ~ 63.0, IPC ~ 0.44) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:OPTIMAL, wall time: 5.754691 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Minimum number of stalls: 49 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:INFEASIBLE, wall time: 0.104461 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:[3.2503s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.44), bound (Cycles ~ 54.0, IPC ~ 0.50) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:OPTIMAL, wall time: 4.938272 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Minimum number of stalls: 47 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[14.1187s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 46.0, IPC ~ 0.61) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:OPTIMAL, wall time: 14.563576 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Minimum number of stalls: 32 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[4.8574s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 39.0, IPC ~ 0.72) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:OPTIMAL, wall time: 6.731302 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Minimum number of stalls: 29 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:Initial stalls +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********................ (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: **********................ (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: *************............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: **************............ (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************........... (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************.......... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: ****************.......... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ****************.......... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: ******************........ (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *******************....... (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *******************....... (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ********************...... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ********************...... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************.... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **********************.... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************...... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************........ (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************........... (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[8.5399s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[8.6533s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[8.7507s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[8.9217s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[9.0919s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[9.1933s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[9.3151s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.82), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[9.3788s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.88), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[9.7095s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.90), bound (Cycles ~ 15.0, IPC ~ 1.87) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:OPTIMAL, wall time: 14.533042 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Minimum number of stalls: 17 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ********.................. (8) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: ***********............... (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **************............ (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *****************......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ******************........ (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: *******************....... (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: **********************.... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: **********************.... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *********************..... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *********************..... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: *********************..... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **********************.... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************...... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************........ (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************........... (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:[12.5978s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 29.0, IPC ~ 0.97) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:OPTIMAL, wall time: 25.249255 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Minimum number of stalls: 30 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:INFEASIBLE, wall time: 42.235903 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:[42.4899s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.55), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:[42.5872s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.56), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:[42.6732s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.57), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:[42.8387s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.58), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:[43.0070s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.60), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:[43.8559s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:OPTIMAL, wall time: 55.359076 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Minimum number of stalls: 32 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******.................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************.............. (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: ***************........... (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: *****************......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ********************...... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: ************************** (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************************** (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **********************.... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************...... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************........ (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************........... (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:INFEASIBLE, wall time: 3.017274 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[12.8077s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.43), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.0043s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.44), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.0349s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.44), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.0650s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.45), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.0710s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.46), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.1127s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.47), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.1343s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.48), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.1774s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.51), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.2089s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.52), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.2439s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.53), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.2526s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.54), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.2744s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.55), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[13.2895s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.56), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:OPTIMAL, wall time: 20.711370 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Minimum number of stalls: 36 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******.................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************.............. (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************........... (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************........ (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************..... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **********************.... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************...... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************........ (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************........... (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:INFEASIBLE, wall time: 0.807674 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[10.3955s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[11.0679s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.39), bound (Cycles ~ 41.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[11.1434s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.41), bound (Cycles ~ 41.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[11.2216s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.41), bound (Cycles ~ 41.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[11.2890s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.42), bound (Cycles ~ 41.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[11.3707s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.42), bound (Cycles ~ 41.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[11.4649s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.43), bound (Cycles ~ 41.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:OPTIMAL, wall time: 11.912274 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Booleans in result: 774 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Minimum number of stalls: 51 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******.................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************.............. (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************........... (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************........ (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************..... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **********************.... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************.. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************...... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************........ (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************........... (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:INFEASIBLE, wall time: 0.355891 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[2.9119s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.36), bound (Cycles ~ 16.0, IPC ~ 1.75) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[3.0448s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.36), bound (Cycles ~ 16.0, IPC ~ 1.75) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[3.0969s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 16.0, IPC ~ 1.75) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:OPTIMAL, wall time: 7.446866 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Booleans in result: 773 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Minimum number of stalls: 61 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:INFEASIBLE, wall time: 0.134694 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[7.4932s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.36), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[7.5086s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:OPTIMAL, wall time: 7.961098 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Minimum number of stalls: 61 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:INFEASIBLE, wall time: 0.318299 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:[13.2119s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.44), bound (Cycles ~ 52.0, IPC ~ 0.52) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:[13.3338s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.46), bound (Cycles ~ 52.0, IPC ~ 0.52) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:OPTIMAL, wall time: 15.693274 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Minimum number of stalls: 45 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:INFEASIBLE, wall time: 0.126958 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:[30.2193s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.43), bound (Cycles ~ 40.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:[30.3310s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.44), bound (Cycles ~ 40.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:OPTIMAL, wall time: 33.773434 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Minimum number of stalls: 47 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:INFEASIBLE, wall time: 3.491587 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:[8.8802s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.35), bound (Cycles ~ 40.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:[8.9750s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.38), bound (Cycles ~ 40.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:OPTIMAL, wall time: 13.702005 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Minimum number of stalls: 57 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:INFEASIBLE, wall time: 0.067400 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.1962s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.36), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.2315s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.36), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.2935s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.38), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.3297s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.4052s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.39), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.5301s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.41), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.5617s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.41), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.6324s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.42), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.7533s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.43), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.8670s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.44), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.9098s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.44), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[1.9562s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.45), bound (Cycles ~ 28.0, IPC ~ 1.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[2.8689s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.46), bound (Cycles ~ 29.0, IPC ~ 0.97) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:OPTIMAL, wall time: 32.517944 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Minimum number of stalls: 47 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:INFEASIBLE, wall time: 4.621772 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[26.9108s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.36), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.0349s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.36), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.2367s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.37), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.3157s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.3920s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.38), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.4195s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.4414s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.39), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.4610s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.40), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.4809s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.41), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.4983s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.41), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.5339s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.44), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.5637s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.45), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.6418s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.46), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.7064s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.47), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.7546s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.47), bound (Cycles ~ 33.0, IPC ~ 0.85) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.7795s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.48), bound (Cycles ~ 33.0, IPC ~ 0.85) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.8194s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.49), bound (Cycles ~ 33.0, IPC ~ 0.85) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.8610s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.50), bound (Cycles ~ 33.0, IPC ~ 0.85) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.8945s]: Found 19 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.51), bound (Cycles ~ 33.0, IPC ~ 0.85) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[27.9286s]: Found 20 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.52), bound (Cycles ~ 33.0, IPC ~ 0.85) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:OPTIMAL, wall time: 40.928360 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Minimum number of stalls: 40 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[9.9370s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[10.0166s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[10.1662s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[10.2574s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 23.0, IPC ~ 1.22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[10.3237s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 31.0, IPC ~ 0.90) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[10.3825s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 31.0, IPC ~ 0.90) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:OPTIMAL, wall time: 20.126579 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Booleans in result: 889 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Minimum number of stalls: 27 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:[6.6958s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:[11.3123s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:[13.7095s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:[14.7344s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:[15.8880s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:[17.0924s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.82), bound (Cycles ~ 31.0, IPC ~ 0.90) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:OPTIMAL, wall time: 28.172068 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Booleans in result: 1001 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Minimum number of stalls: 20 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[77.9592s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[78.3179s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[78.3679s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[78.4256s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[78.4797s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[78.5815s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[78.9188s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[79.0078s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[79.2608s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[79.3211s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[79.4751s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[79.5422s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 33.0, IPC ~ 0.85) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:OPTIMAL, wall time: 88.466503 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Minimum number of stalls: 21 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[59.1747s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[59.2400s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[59.3107s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[59.3831s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[59.4931s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[59.5640s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[59.6419s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[60.3076s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[60.3880s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[60.4360s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 1.40) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[60.4794s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 31.0, IPC ~ 0.90) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:OPTIMAL, wall time: 65.127817 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Minimum number of stalls: 21 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[75.7777s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[79.1991s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[82.0480s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[83.1356s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 25.0, IPC ~ 1.12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:OPTIMAL, wall time: 91.122398 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Booleans in result: 884 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Minimum number of stalls: 23 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[2.9349s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[2.9786s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[3.0147s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[3.0256s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[3.0852s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.82), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[3.1330s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 0.88), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:[3.1648s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.90), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:OPTIMAL, wall time: 5.999457 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.0_28:Minimum number of stalls: 17 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ******..................... (6) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *********.................. (9) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ************............... (12) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:[52.6135s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:[52.6939s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:[52.7645s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:[53.3688s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:OPTIMAL, wall time: 71.919549 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.7_35:Minimum number of stalls: 21 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: ********................... (8) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: ***********................ (11) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:[8.1566s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:[8.9081s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 32.0, IPC ~ 0.88) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:OPTIMAL, wall time: 36.241238 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Booleans in result: 702 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.14_42:Minimum number of stalls: 30 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: *****************.......... (17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:INFEASIBLE, wall time: 1.841700 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[0.9002s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.46), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[0.9473s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.47), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[0.9889s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.47), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[1.0339s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.48), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[1.0906s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.49), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:[1.8549s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.50), bound (Cycles ~ 36.0, IPC ~ 0.78) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:OPTIMAL, wall time: 6.714043 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.21_49:Minimum number of stalls: 42 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ********************....... (20) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:INFEASIBLE, wall time: 1.989441 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[23.3688s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.37), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[23.4666s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[23.5386s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[23.6697s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.39), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[23.7483s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.41), bound (Cycles ~ 41.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[23.8612s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.42), bound (Cycles ~ 41.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:[23.9236s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.43), bound (Cycles ~ 41.0, IPC ~ 0.68) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:OPTIMAL, wall time: 24.769645 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.28_56:Minimum number of stalls: 51 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:INFEASIBLE, wall time: 2.463646 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[31.2282s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.36), bound (Cycles ~ 17.0, IPC ~ 1.65) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[31.4208s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 17.0, IPC ~ 1.65) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[31.4638s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.38), bound (Cycles ~ 17.0, IPC ~ 1.65) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[32.0200s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[32.0988s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.39), bound (Cycles ~ 34.0, IPC ~ 0.82) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[32.2190s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.39), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[32.3155s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.40), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[32.4677s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.41), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[32.5625s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.41), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[32.6823s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.42), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[32.9015s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.46), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[33.2209s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.47), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:[33.5374s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.47), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:OPTIMAL, wall time: 36.409164 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.35_63:Minimum number of stalls: 45 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:INFEASIBLE, wall time: 0.122734 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[3.4668s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.36), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[3.4852s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[3.5539s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.38), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[3.5803s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.38), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[3.6007s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.39), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[3.6507s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.41), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[3.6698s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.41), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[3.7236s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.42), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[3.7654s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.42), bound (Cycles ~ 14.0, IPC ~ 2.00) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:[3.8402s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.43), bound (Cycles ~ 17.0, IPC ~ 1.65) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:OPTIMAL, wall time: 4.720808 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.42_70:Minimum number of stalls: 51 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:INFEASIBLE, wall time: 1.109078 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:[89.1609s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.44), bound (Cycles ~ 50.0, IPC ~ 0.54) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:[89.2575s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.46), bound (Cycles ~ 50.0, IPC ~ 0.54) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:[89.4072s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.47), bound (Cycles ~ 50.0, IPC ~ 0.54) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:OPTIMAL, wall time: 92.467108 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.49_76:Minimum number of stalls: 43 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:INFEASIBLE, wall time: 0.117004 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:[0.6471s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.39), bound (Cycles ~ 44.0, IPC ~ 0.61) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:[0.6617s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.40), bound (Cycles ~ 44.0, IPC ~ 0.61) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:[0.6751s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.40), bound (Cycles ~ 44.0, IPC ~ 0.61) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:[0.6886s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.41), bound (Cycles ~ 44.0, IPC ~ 0.61) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:[0.7273s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.42), bound (Cycles ~ 44.0, IPC ~ 0.61) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:OPTIMAL, wall time: 0.993307 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.56_83:Minimum number of stalls: 51 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:INFEASIBLE, wall time: 0.054287 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:[2.4800s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.38), bound (Cycles ~ 37.0, IPC ~ 0.73) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:OPTIMAL, wall time: 33.335082 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.63_90:Minimum number of stalls: 57 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:INFEASIBLE, wall time: 0.164036 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[39.4333s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.36), bound (Cycles ~ 30.0, IPC ~ 0.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[39.5156s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.36), bound (Cycles ~ 30.0, IPC ~ 0.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[39.5379s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.37), bound (Cycles ~ 30.0, IPC ~ 0.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[39.6113s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.37), bound (Cycles ~ 30.0, IPC ~ 0.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:[39.6767s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.47), bound (Cycles ~ 30.0, IPC ~ 0.93) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:OPTIMAL, wall time: 44.724193 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.69_97:Minimum number of stalls: 46 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:INFEASIBLE, wall time: 10.812276 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:[41.3176s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.53), bound (Cycles ~ 35.0, IPC ~ 0.80) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:OPTIMAL, wall time: 76.280367 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Booleans in result: 822 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.76_104:Minimum number of stalls: 39 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[12.2906s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[12.4534s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[12.5766s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[12.8456s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[12.9990s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 26.0, IPC ~ 1.08) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:[13.1042s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 37.0, IPC ~ 0.76) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:OPTIMAL, wall time: 13.827181 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.83_111:Minimum number of stalls: 27 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:[91.6909s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:[91.8285s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:[92.0107s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 22.0, IPC ~ 1.27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:[92.7759s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 33.0, IPC ~ 0.85) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:OPTIMAL, wall time: 96.164949 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.90_118:Minimum number of stalls: 23 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****.................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................. (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********............... (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************............ (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************........... (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************......... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************...... (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************.... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************.... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: **********************... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************.... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************.... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************* (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: ************************* (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: ************************* (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: ************************. (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.. (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************.... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************....... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************.......... (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[120.2547s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[121.6071s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:[121.8947s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 24.0, IPC ~ 1.17) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:OPTIMAL, wall time: 132.134658 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Booleans in result: 914 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.97_125:Minimum number of stalls: 21 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[56.5837s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[56.6329s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[56.6853s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[56.7060s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[56.7527s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[56.7818s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[56.9237s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[57.1376s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.82), bound (Cycles ~ 19.0, IPC ~ 1.47) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:[57.1818s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.85), bound (Cycles ~ 29.0, IPC ~ 0.97) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:OPTIMAL, wall time: 61.586811 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Booleans in result: 0 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.104_132:Minimum number of stalls: 19 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[1.4915s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.61), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[1.5773s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.62), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[1.6036s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.64), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[1.6370s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.65), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[1.6580s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.67), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[1.7903s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.68), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[1.8237s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.70), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[1.8605s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.72), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[2.0796s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.74), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[2.1014s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 0.76), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[2.1272s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.78), bound (Cycles ~ 18.0, IPC ~ 1.56) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:[2.2978s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.80), bound (Cycles ~ 29.0, IPC ~ 0.97) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:OPTIMAL, wall time: 11.048413 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Booleans in result: 888 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.111_139:Minimum number of stalls: 21 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 0- 2]: *****...................... (5) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 2- 5]: *******.................... (7) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 5- 8]: **********................. (10) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 8- 11]: *************.............. (13) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 11- 13]: **************............. (14) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 13- 16]: ****************........... (16) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 16- 19]: *******************........ (19) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 22- 25]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 25- 27]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 27- 30]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 30- 33]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 33- 36]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 36- 38]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 38- 41]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 41- 44]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 47- 50]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 50- 52]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 52- 55]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 55- 58]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 58- 61]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 61- 63]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 63- 66]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 69- 72]: **********************..... (22) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 72- 75]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 75- 77]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 77- 80]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 80- 83]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 83- 86]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 86- 88]: ************************... (24) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 88- 91]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 94- 97]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[ 97-100]: *************************** (27) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[100-102]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[102-105]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[105-108]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[108-111]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[111-113]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[113-116]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[116-119]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[119-122]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[122-125]: **************************. (26) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[125-127]: *************************.. (25) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[127-130]: ***********************.... (23) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[130-133]: *********************...... (21) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[133-136]: ******************......... (18) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split:[136-139]: ***************............ (15) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.split_heuristic_full:OK! +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 0.655069 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 132.869082 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 199.055953 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:[796.6431s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 248.0, IPC ~ 0.56), bound (Cycles ~ 236.0, IPC ~ 0.59) +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:OPTIMAL, wall time: 861.092417 s +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Booleans in result: 4612 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf.selfcheck:OK! +WARNING:kyber_cbd3_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split_estimtate_perf:Minimum number of stalls: 178 +INFO:kyber_cbd3_rvv_vlen128_c908.cbd3_rvv_vlen128_loop.heuristic.split.split_heuristic_full_with_stalls:OK! diff --git a/rvv_run_logs/kyber_normal2ntt_order_rvv_vlen128_c908.log b/rvv_run_logs/kyber_normal2ntt_order_rvv_vlen128_c908.log new file mode 100644 index 000000000..e0ff4f88c --- /dev/null +++ b/rvv_run_logs/kyber_normal2ntt_order_rvv_vlen128_c908.log @@ -0,0 +1,4792 @@ +* Example: kyber_normal2ntt_order_rvv_vlen128_c908... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_normal2ntt_order_rvv_vlen128_c908:Optimizing loop normal2ntt_order_rvv_vlen128_loop (124 instructions) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:INFEASIBLE, wall time: 0.046342 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:[0.3513s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 54.0, IPC ~ 0.46) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:OPTIMAL, wall time: 0.486087 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Minimum number of stalls: 44 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:INFEASIBLE, wall time: 0.085676 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:[0.3151s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 56.0, IPC ~ 0.45) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:OPTIMAL, wall time: 0.436683 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Minimum number of stalls: 46 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:INFEASIBLE, wall time: 0.071197 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:[0.2064s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.35), bound (Cycles ~ 66.0, IPC ~ 0.36) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:OPTIMAL, wall time: 0.275916 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Minimum number of stalls: 57 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:INFEASIBLE, wall time: 0.045612 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:[0.4304s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 54.0, IPC ~ 0.46) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:OPTIMAL, wall time: 0.727775 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Minimum number of stalls: 47 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:INFEASIBLE, wall time: 0.178200 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:[0.2444s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 62.0, IPC ~ 0.40) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:OPTIMAL, wall time: 0.399929 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Minimum number of stalls: 54 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:Initial stalls +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:INFEASIBLE, wall time: 0.077929 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:[0.6517s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.43), bound (Cycles ~ 16.0, IPC ~ 1.56) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:[0.7479s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:OPTIMAL, wall time: 1.291426 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Minimum number of stalls: 44 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:INFEASIBLE, wall time: 1.158014 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:[26.7525s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.34), bound (Cycles ~ 15.0, IPC ~ 1.67) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:[26.8272s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 15.0, IPC ~ 1.67) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:OPTIMAL, wall time: 27.071474 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Minimum number of stalls: 56 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:INFEASIBLE, wall time: 0.106936 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:[1.3486s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:[1.4759s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 40.0, IPC ~ 0.62) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:OPTIMAL, wall time: 1.688411 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Booleans in result: 525 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Minimum number of stalls: 60 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:INFEASIBLE, wall time: 0.107210 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:[2.4770s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.41), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:OPTIMAL, wall time: 4.012901 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Minimum number of stalls: 47 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:INFEASIBLE, wall time: 0.925548 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:[0.8888s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:[0.9537s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:[1.0533s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:[1.1287s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.45), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:OPTIMAL, wall time: 1.260167 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Minimum number of stalls: 42 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:INFEASIBLE, wall time: 0.123348 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:[1.6118s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 50.0, IPC ~ 0.50) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:OPTIMAL, wall time: 3.102329 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Minimum number of stalls: 52 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:INFEASIBLE, wall time: 0.058841 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:[1.5849s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:[1.6115s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.37), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:[1.6282s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:[1.6725s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:OPTIMAL, wall time: 3.283524 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Minimum number of stalls: 52 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:INFEASIBLE, wall time: 0.402284 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:[0.7914s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 16.0, IPC ~ 1.56) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:[0.8125s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 16.0, IPC ~ 1.56) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:[0.8347s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 16.0, IPC ~ 1.56) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:[0.8817s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 16.0, IPC ~ 1.56) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:[0.9307s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:OPTIMAL, wall time: 1.360368 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Minimum number of stalls: 56 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:INFEASIBLE, wall time: 0.160316 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:[2.2087s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.32), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:[2.2352s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.34), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:[2.2574s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.35), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:OPTIMAL, wall time: 2.618126 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Booleans in result: 496 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Minimum number of stalls: 57 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:INFEASIBLE, wall time: 0.051486 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:[2.7585s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.33), bound (Cycles ~ 36.0, IPC ~ 0.69) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:[3.0472s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 36.0, IPC ~ 0.69) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:OPTIMAL, wall time: 5.789116 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Booleans in result: 616 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Minimum number of stalls: 54 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:INFEASIBLE, wall time: 0.041637 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:[1.0874s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:[1.1175s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.48), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:[1.2404s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.49), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:OPTIMAL, wall time: 1.776467 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Minimum number of stalls: 38 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:INFEASIBLE, wall time: 0.286752 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:[27.5577s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:[27.6682s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.37), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:[27.8243s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:[28.0516s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:OPTIMAL, wall time: 29.280397 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Minimum number of stalls: 48 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:INFEASIBLE, wall time: 1.504267 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:[31.9517s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.37), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:[32.0094s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:[32.0589s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:[32.0960s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:[32.1307s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:OPTIMAL, wall time: 32.517691 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Minimum number of stalls: 46 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:INFEASIBLE, wall time: 2.119140 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[6.3251s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.37), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[6.3865s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.38), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[6.4669s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.39), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[6.5319s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.40), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[6.6220s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.41), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[6.7116s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.42), bound (Cycles ~ 55.0, IPC ~ 0.44) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:OPTIMAL, wall time: 7.839968 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Minimum number of stalls: 45 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:INFEASIBLE, wall time: 0.785718 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:[9.4049s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:[9.4709s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:[9.5475s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 63.0, IPC ~ 0.40) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:OPTIMAL, wall time: 9.952332 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Booleans in result: 453 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Minimum number of stalls: 50 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:INFEASIBLE, wall time: 3.146925 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:[8.1122s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:[8.2012s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:OPTIMAL, wall time: 8.624618 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Minimum number of stalls: 50 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:INFEASIBLE, wall time: 0.055775 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:[2.4297s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:[2.8121s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:[3.1328s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 25.0, IPC ~ 1.00) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:[3.7670s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:OPTIMAL, wall time: 5.542714 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Booleans in result: 549 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Minimum number of stalls: 54 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:INFEASIBLE, wall time: 0.341227 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:[1.8596s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 16.0, IPC ~ 1.56) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:[2.0524s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 56.0, IPC ~ 0.45) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:OPTIMAL, wall time: 3.615440 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.0_25:Minimum number of stalls: 46 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:INFEASIBLE, wall time: 0.074301 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:[0.6384s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 35.0, IPC ~ 0.71) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:OPTIMAL, wall time: 0.817161 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Booleans in result: 425 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.6_31:Minimum number of stalls: 50 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:INFEASIBLE, wall time: 0.062287 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:[0.9478s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.32), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:[1.0468s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:OPTIMAL, wall time: 1.295949 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.12_37:Minimum number of stalls: 62 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:INFEASIBLE, wall time: 0.048944 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:[1.9821s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.34), bound (Cycles ~ 37.0, IPC ~ 0.65) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:[2.0178s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.35), bound (Cycles ~ 37.0, IPC ~ 0.65) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:OPTIMAL, wall time: 4.060339 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Booleans in result: 506 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.19_43:Minimum number of stalls: 57 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:INFEASIBLE, wall time: 0.048054 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:[2.7556s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.32), bound (Cycles ~ 52.0, IPC ~ 0.48) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:[2.9871s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 52.0, IPC ~ 0.48) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:[3.0252s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 52.0, IPC ~ 0.48) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:[3.0648s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 52.0, IPC ~ 0.48) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:OPTIMAL, wall time: 3.474906 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.25_50:Minimum number of stalls: 50 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:INFEASIBLE, wall time: 0.048756 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:[1.4824s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 41.0, IPC ~ 0.61) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:[1.5753s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 41.0, IPC ~ 0.61) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:OPTIMAL, wall time: 3.368202 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Booleans in result: 458 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.31_56:Minimum number of stalls: 50 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:INFEASIBLE, wall time: 0.266671 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:[4.2221s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:OPTIMAL, wall time: 4.515783 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Booleans in result: 366 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.37_62:Minimum number of stalls: 58 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:INFEASIBLE, wall time: 0.057039 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:[0.8032s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.38), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:[0.8731s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:OPTIMAL, wall time: 1.774155 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.43_68:Minimum number of stalls: 52 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:INFEASIBLE, wall time: 0.186451 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:INFEASIBLE, wall time: 0.291421 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 128 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:[9.4056s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 105.0, IPC ~ 0.23), bound (Cycles ~ 38.0, IPC ~ 0.63) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:[9.4423s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 101.0, IPC ~ 0.24), bound (Cycles ~ 38.0, IPC ~ 0.63) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:[9.4830s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 97.0, IPC ~ 0.25), bound (Cycles ~ 38.0, IPC ~ 0.63) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:[9.5247s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 93.0, IPC ~ 0.26), bound (Cycles ~ 38.0, IPC ~ 0.63) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:[9.5794s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.30), bound (Cycles ~ 38.0, IPC ~ 0.63) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:[9.6116s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.31), bound (Cycles ~ 38.0, IPC ~ 0.63) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:OPTIMAL, wall time: 10.552362 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.50_74:Minimum number of stalls: 65 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:INFEASIBLE, wall time: 0.226122 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:[8.7811s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 30.0, IPC ~ 0.83) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:[9.1346s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 73.0, IPC ~ 0.34) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:OPTIMAL, wall time: 10.843907 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Booleans in result: 523 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.56_81:Minimum number of stalls: 60 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:INFEASIBLE, wall time: 0.640556 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:[25.6655s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.32), bound (Cycles ~ 60.0, IPC ~ 0.42) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:[25.6874s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.33), bound (Cycles ~ 61.0, IPC ~ 0.41) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:[25.7208s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 62.0, IPC ~ 0.40) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:[25.7456s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 62.0, IPC ~ 0.40) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:[25.7887s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 62.0, IPC ~ 0.40) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:[25.8298s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 62.0, IPC ~ 0.40) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:OPTIMAL, wall time: 26.877224 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Booleans in result: 493 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.62_87:Minimum number of stalls: 52 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:INFEASIBLE, wall time: 0.793137 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:[8.2967s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 47.0, IPC ~ 0.53) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:OPTIMAL, wall time: 8.853913 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Booleans in result: 600 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.68_93:Minimum number of stalls: 52 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:INFEASIBLE, wall time: 0.590692 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:[1.2207s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:[1.2450s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:[1.2751s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 59.0, IPC ~ 0.42) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:OPTIMAL, wall time: 3.419293 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Booleans in result: 455 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.74_99:Minimum number of stalls: 46 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:INFEASIBLE, wall time: 0.109235 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[8.2098s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.38), bound (Cycles ~ 36.0, IPC ~ 0.67) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[8.3711s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.38), bound (Cycles ~ 36.0, IPC ~ 0.67) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[8.4512s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.39), bound (Cycles ~ 36.0, IPC ~ 0.67) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[8.5792s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.40), bound (Cycles ~ 36.0, IPC ~ 0.67) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:[8.6407s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.41), bound (Cycles ~ 59.0, IPC ~ 0.41) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:OPTIMAL, wall time: 9.956634 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Booleans in result: 432 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.81_105:Minimum number of stalls: 47 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:INFEASIBLE, wall time: 1.513005 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:[16.4865s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:[16.5641s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 67.0, IPC ~ 0.37) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:OPTIMAL, wall time: 17.019623 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.87_112:Minimum number of stalls: 54 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:INFEASIBLE, wall time: 0.266465 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:[6.1989s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:[6.2470s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:[6.3177s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 71.0, IPC ~ 0.35) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:OPTIMAL, wall time: 6.847468 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.93_118:Minimum number of stalls: 58 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:INFEASIBLE, wall time: 2.199404 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:[19.6290s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.32), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:[19.6664s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:[19.7323s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:[19.8519s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:OPTIMAL, wall time: 21.038031 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Booleans in result: 548 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.99_124:Minimum number of stalls: 54 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ****.................... (4) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ******.................. (6) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *********............... (9) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[104-106]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.split_heuristic_full:OK! +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 0.495527 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 1.530025 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 3.293687 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:[9.6328s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 316.0, IPC ~ 0.39), bound (Cycles ~ 310.0, IPC ~ 0.40) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:[9.7240s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 314.0, IPC ~ 0.39), bound (Cycles ~ 312.0, IPC ~ 0.40) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:OPTIMAL, wall time: 10.953207 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Minimum number of stalls: 252 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.slothy.split.split_heuristic_full_with_stalls:OK! +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.halving_heuristic_1:OK! +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop:Apply halving heuristic to optimize two halves of consecutive loop kernels... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:INFEASIBLE, wall time: 0.084206 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:[0.4606s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 59.0, IPC ~ 0.42) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:OPTIMAL, wall time: 0.625522 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Minimum number of stalls: 48 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:INFEASIBLE, wall time: 0.046644 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:[0.4889s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 61.0, IPC ~ 0.41) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:OPTIMAL, wall time: 0.554930 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Minimum number of stalls: 54 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:[0.2863s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.59), bound (Cycles ~ 36.0, IPC ~ 0.67) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:OPTIMAL, wall time: 0.530061 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Minimum number of stalls: 29 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:INFEASIBLE, wall time: 0.125509 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:INFEASIBLE, wall time: 0.121392 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 128 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:[0.7754s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.32), bound (Cycles ~ 76.0, IPC ~ 0.33) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:OPTIMAL, wall time: 1.309933 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Minimum number of stalls: 66 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:INFEASIBLE, wall time: 2.586130 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[15.2850s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 54.0, IPC ~ 0.46) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:OPTIMAL, wall time: 16.132576 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Minimum number of stalls: 44 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:Initial stalls +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:INFEASIBLE, wall time: 0.219899 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:[36.6000s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 58.0, IPC ~ 0.43) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:[36.6652s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 61.0, IPC ~ 0.41) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:[36.7627s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 61.0, IPC ~ 0.41) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:OPTIMAL, wall time: 37.318643 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Minimum number of stalls: 48 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ***********............. (11) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:INFEASIBLE, wall time: 0.440351 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:[26.6125s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 46.0, IPC ~ 0.54) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:[26.6515s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:OPTIMAL, wall time: 27.781562 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Minimum number of stalls: 46 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:INFEASIBLE, wall time: 0.158443 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:[2.3910s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.34), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:[2.4313s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:[2.4473s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:[2.4626s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:[2.4919s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:[2.5094s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:OPTIMAL, wall time: 3.376675 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Minimum number of stalls: 54 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:INFEASIBLE, wall time: 0.759868 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:[1.8818s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.36), bound (Cycles ~ 37.0, IPC ~ 0.65) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:[2.0193s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.36), bound (Cycles ~ 37.0, IPC ~ 0.65) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:[2.1192s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.37), bound (Cycles ~ 37.0, IPC ~ 0.65) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:OPTIMAL, wall time: 3.580440 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Minimum number of stalls: 53 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:INFEASIBLE, wall time: 0.285488 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:[20.5588s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 37.0, IPC ~ 0.68) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:[20.9308s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 37.0, IPC ~ 0.68) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:[20.9940s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 37.0, IPC ~ 0.68) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:[21.4570s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.37), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:[22.1760s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.38), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:[22.5494s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 65.0, IPC ~ 0.38) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:OPTIMAL, wall time: 25.846318 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Booleans in result: 497 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Minimum number of stalls: 52 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:INFEASIBLE, wall time: 1.769120 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:[45.3963s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 14.0, IPC ~ 1.79) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:[45.4374s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 14.0, IPC ~ 1.79) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:[45.4907s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 67.0, IPC ~ 0.37) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:OPTIMAL, wall time: 47.670546 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Minimum number of stalls: 54 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:INFEASIBLE, wall time: 3.789815 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:[1.8405s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:[1.8789s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:[1.9093s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:OPTIMAL, wall time: 3.213965 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Minimum number of stalls: 50 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:INFEASIBLE, wall time: 1.928049 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[14.8518s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.45), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[14.8930s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.47), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[14.9203s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.48), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[14.9512s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.50), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[14.9747s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.52), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[14.9972s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.53), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:OPTIMAL, wall time: 16.589570 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Minimum number of stalls: 34 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:INFEASIBLE, wall time: 0.065806 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:[27.8304s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.46), bound (Cycles ~ 38.0, IPC ~ 0.63) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:[27.8855s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.47), bound (Cycles ~ 38.0, IPC ~ 0.63) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:[27.8968s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.50), bound (Cycles ~ 38.0, IPC ~ 0.63) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:[28.0926s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.51), bound (Cycles ~ 38.0, IPC ~ 0.63) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:OPTIMAL, wall time: 30.591594 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Minimum number of stalls: 35 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:INFEASIBLE, wall time: 1.953723 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:[33.2049s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.45), bound (Cycles ~ 30.0, IPC ~ 0.83) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:[33.3551s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.47), bound (Cycles ~ 30.0, IPC ~ 0.83) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:OPTIMAL, wall time: 34.907110 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Minimum number of stalls: 40 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:INFEASIBLE, wall time: 0.149535 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:[0.4891s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 18.0, IPC ~ 1.39) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:OPTIMAL, wall time: 1.259694 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Minimum number of stalls: 44 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:INFEASIBLE, wall time: 0.066197 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:[8.2476s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 41.0, IPC ~ 0.61) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:[8.2614s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 41.0, IPC ~ 0.61) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:OPTIMAL, wall time: 10.299064 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Booleans in result: 368 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Minimum number of stalls: 58 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:INFEASIBLE, wall time: 0.301774 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:[1.0190s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 41.0, IPC ~ 0.61) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:OPTIMAL, wall time: 3.463847 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Minimum number of stalls: 62 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:INFEASIBLE, wall time: 0.309048 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:[20.3906s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.35), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:OPTIMAL, wall time: 21.086053 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Minimum number of stalls: 57 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:INFEASIBLE, wall time: 1.130866 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:[16.0517s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 56.0, IPC ~ 0.45) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:[16.2059s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 59.0, IPC ~ 0.42) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:OPTIMAL, wall time: 17.142219 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Minimum number of stalls: 46 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ****************........ (16) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:INFEASIBLE, wall time: 0.889850 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:[2.6232s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 50.0, IPC ~ 0.50) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:OPTIMAL, wall time: 3.622166 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Minimum number of stalls: 48 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:INFEASIBLE, wall time: 0.671945 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.2559s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.33), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.3276s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.34), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.4019s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.4603s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.5002s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.5124s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.5246s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:OPTIMAL, wall time: 3.871910 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Minimum number of stalls: 56 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:INFEASIBLE, wall time: 0.555856 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:[46.9438s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:OPTIMAL, wall time: 49.911411 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.0_25:Minimum number of stalls: 48 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:INFEASIBLE, wall time: 0.123618 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:[1.8010s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 56.0, IPC ~ 0.45) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:[1.8502s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 56.0, IPC ~ 0.45) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:[1.8973s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 56.0, IPC ~ 0.45) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:[1.9362s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 58.0, IPC ~ 0.43) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:OPTIMAL, wall time: 2.710422 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Booleans in result: 506 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.6_31:Minimum number of stalls: 56 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:INFEASIBLE, wall time: 0.234798 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:[1.0643s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.34), bound (Cycles ~ 40.0, IPC ~ 0.62) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:[1.1550s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:OPTIMAL, wall time: 2.490811 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.12_37:Minimum number of stalls: 60 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:INFEASIBLE, wall time: 0.147695 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:[1.1586s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.35), bound (Cycles ~ 29.0, IPC ~ 0.83) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:[1.2878s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.36), bound (Cycles ~ 29.0, IPC ~ 0.83) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:OPTIMAL, wall time: 3.431851 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Booleans in result: 489 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.19_43:Minimum number of stalls: 55 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:INFEASIBLE, wall time: 4.814436 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:[1.0315s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 35.0, IPC ~ 0.71) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:OPTIMAL, wall time: 3.102555 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Booleans in result: 394 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.25_50:Minimum number of stalls: 50 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:INFEASIBLE, wall time: 3.307228 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:[1.4885s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:OPTIMAL, wall time: 3.864934 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.31_56:Minimum number of stalls: 62 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:INFEASIBLE, wall time: 5.032127 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:[23.3999s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:OPTIMAL, wall time: 26.020200 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.37_62:Minimum number of stalls: 60 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:INFEASIBLE, wall time: 0.831536 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[1.4723s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[1.5118s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[1.5198s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[1.5589s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:[1.5818s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:OPTIMAL, wall time: 2.549350 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Booleans in result: 412 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.43_68:Minimum number of stalls: 44 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************........... (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************........ (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************...... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************..... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************........ (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************.......... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:INFEASIBLE, wall time: 5.803808 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:[46.1000s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.45), bound (Cycles ~ 42.0, IPC ~ 0.57) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:OPTIMAL, wall time: 47.137588 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.50_74:Minimum number of stalls: 41 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************........... (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************........ (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************...... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************..... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************........ (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************.......... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:INFEASIBLE, wall time: 0.840175 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:[0.5198s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:[0.6322s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:[0.7064s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.45), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:[0.7295s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.45), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:OPTIMAL, wall time: 0.937907 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.56_81:Minimum number of stalls: 42 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************........... (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************........ (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************...... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************..... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************........ (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************.......... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:INFEASIBLE, wall time: 0.071672 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:[1.4444s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 40.0, IPC ~ 0.62) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:[1.8485s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 63.0, IPC ~ 0.40) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:OPTIMAL, wall time: 2.241216 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Booleans in result: 422 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.62_87:Minimum number of stalls: 50 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************........... (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************........ (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************...... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************..... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************........ (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************.......... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:INFEASIBLE, wall time: 0.159361 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:[0.7576s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 37.0, IPC ~ 0.68) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:[0.8101s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 37.0, IPC ~ 0.68) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:[0.8336s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 61.0, IPC ~ 0.41) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:OPTIMAL, wall time: 3.447927 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Booleans in result: 437 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.68_93:Minimum number of stalls: 48 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************........... (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************........ (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************...... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************.... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************.. (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************** (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************..... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************........ (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************.......... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:INFEASIBLE, wall time: 1.011146 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:[10.6255s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.38), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:[10.7277s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 65.0, IPC ~ 0.38) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:OPTIMAL, wall time: 11.729118 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.74_99:Minimum number of stalls: 52 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:INFEASIBLE, wall time: 1.253767 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:[37.5243s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.33), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:[37.6792s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.34), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:OPTIMAL, wall time: 38.751116 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.81_105:Minimum number of stalls: 59 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:INFEASIBLE, wall time: 0.131878 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:[1.5284s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 27.0, IPC ~ 0.93) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:OPTIMAL, wall time: 2.574009 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Booleans in result: 437 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.87_112:Minimum number of stalls: 60 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:INFEASIBLE, wall time: 0.200290 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:[2.7879s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:[2.9440s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:[2.9977s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:[3.0811s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.37), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:[3.1118s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:OPTIMAL, wall time: 3.592502 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.93_118:Minimum number of stalls: 54 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:INFEASIBLE, wall time: 1.623942 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.5349s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.6212s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.6587s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:[1.7090s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:OPTIMAL, wall time: 2.928411 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.99_124:Minimum number of stalls: 52 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************.... (20) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ************************ (24) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[101-104]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[109-111]: **********************.. (22) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.split_heuristic_full:OK! +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 26.472021 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 6.624467 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 85.211246 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:[551.4641s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 312.0, IPC ~ 0.40), bound (Cycles ~ 304.0, IPC ~ 0.41) +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:OPTIMAL, wall time: 553.293425 s +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Booleans in result: 0 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf.selfcheck:OK! +WARNING:kyber_normal2ntt_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Minimum number of stalls: 250 +INFO:kyber_normal2ntt_order_rvv_vlen128_c908.normal2ntt_order_rvv_vlen128_loop.heuristic.split.split_heuristic_full_with_stalls:OK! diff --git a/rvv_run_logs/kyber_ntt2normal_order_rvv_vlen128_c908.log b/rvv_run_logs/kyber_ntt2normal_order_rvv_vlen128_c908.log new file mode 100644 index 000000000..62a6c5820 --- /dev/null +++ b/rvv_run_logs/kyber_ntt2normal_order_rvv_vlen128_c908.log @@ -0,0 +1,4774 @@ +* Example: kyber_ntt2normal_order_rvv_vlen128_c908... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_ntt2normal_order_rvv_vlen128_c908:Optimizing loop ntt2normal_order_rvv_vlen128_loop (124 instructions) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:INFEASIBLE, wall time: 0.199251 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:[0.3311s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 57.0, IPC ~ 0.44) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:OPTIMAL, wall time: 0.769657 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Minimum number of stalls: 47 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:INFEASIBLE, wall time: 0.086973 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:[0.5805s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 58.0, IPC ~ 0.43) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:OPTIMAL, wall time: 0.947843 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Minimum number of stalls: 48 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:INFEASIBLE, wall time: 0.995144 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:[11.4805s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.35), bound (Cycles ~ 66.0, IPC ~ 0.36) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:OPTIMAL, wall time: 12.685238 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Minimum number of stalls: 57 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:INFEASIBLE, wall time: 1.922517 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:[2.6980s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.45), bound (Cycles ~ 54.0, IPC ~ 0.46) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:OPTIMAL, wall time: 2.888364 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Minimum number of stalls: 42 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:INFEASIBLE, wall time: 0.123508 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:[4.3773s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 56.0, IPC ~ 0.45) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:OPTIMAL, wall time: 4.486798 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Minimum number of stalls: 46 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:Initial stalls +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ***********............. (11) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:INFEASIBLE, wall time: 0.117497 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:[0.6066s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 17.0, IPC ~ 1.47) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:[0.6277s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 59.0, IPC ~ 0.42) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:[0.6586s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 59.0, IPC ~ 0.42) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:OPTIMAL, wall time: 2.359928 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Booleans in result: 507 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Minimum number of stalls: 46 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:INFEASIBLE, wall time: 0.061781 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:[0.6822s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:[0.7224s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:[0.8528s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:OPTIMAL, wall time: 1.087191 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Minimum number of stalls: 58 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:INFEASIBLE, wall time: 0.050678 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:[1.0806s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 16.0, IPC ~ 1.56) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:OPTIMAL, wall time: 1.694649 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Minimum number of stalls: 60 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:INFEASIBLE, wall time: 0.287703 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:[2.7185s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.39), bound (Cycles ~ 34.0, IPC ~ 0.71) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:OPTIMAL, wall time: 4.200011 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Booleans in result: 433 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Minimum number of stalls: 49 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:INFEASIBLE, wall time: 0.226555 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:[1.3416s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.34), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:[1.4239s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:[1.4777s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:[1.5129s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:[1.5513s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:[1.5532s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:OPTIMAL, wall time: 2.347810 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Minimum number of stalls: 54 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:INFEASIBLE, wall time: 1.224455 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:[15.5470s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:OPTIMAL, wall time: 17.331096 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Minimum number of stalls: 50 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:INFEASIBLE, wall time: 0.898414 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:[37.8911s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 28.0, IPC ~ 0.89) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:OPTIMAL, wall time: 39.408706 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Minimum number of stalls: 54 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:INFEASIBLE, wall time: 0.125038 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:[2.3294s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.32), bound (Cycles ~ 14.0, IPC ~ 1.79) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:[2.4731s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:[2.5169s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:[2.5877s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:OPTIMAL, wall time: 2.703963 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Minimum number of stalls: 56 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:INFEASIBLE, wall time: 0.045702 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:[1.2302s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.32), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:[1.5049s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.33), bound (Cycles ~ 34.0, IPC ~ 0.71) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:[1.6513s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.34), bound (Cycles ~ 34.0, IPC ~ 0.71) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:OPTIMAL, wall time: 2.454323 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Booleans in result: 474 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Minimum number of stalls: 59 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:INFEASIBLE, wall time: 0.045016 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:[1.5628s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:OPTIMAL, wall time: 2.407247 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Booleans in result: 434 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Minimum number of stalls: 46 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:INFEASIBLE, wall time: 0.244424 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:[1.8645s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 50.0, IPC ~ 0.50) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:OPTIMAL, wall time: 3.025603 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Minimum number of stalls: 48 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:INFEASIBLE, wall time: 3.236447 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:[18.5602s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 46.0, IPC ~ 0.54) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:OPTIMAL, wall time: 19.818738 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Minimum number of stalls: 54 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:INFEASIBLE, wall time: 0.507967 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:[22.5642s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:[22.8354s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:[22.9079s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 69.0, IPC ~ 0.36) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:OPTIMAL, wall time: 25.009620 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Booleans in result: 509 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Minimum number of stalls: 56 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:INFEASIBLE, wall time: 0.074037 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:[36.8646s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.39), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:[36.8793s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.40), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:[36.9080s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.41), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:[36.9272s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.42), bound (Cycles ~ 55.0, IPC ~ 0.44) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:OPTIMAL, wall time: 37.461386 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Minimum number of stalls: 45 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:INFEASIBLE, wall time: 0.202862 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:[1.6359s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 20.0, IPC ~ 1.25) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:OPTIMAL, wall time: 2.371321 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Minimum number of stalls: 50 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:INFEASIBLE, wall time: 0.191583 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:[26.8197s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 20.0, IPC ~ 1.25) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:[26.8455s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 20.0, IPC ~ 1.25) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:[26.8712s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 20.0, IPC ~ 1.25) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:[26.9017s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 20.0, IPC ~ 1.25) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:OPTIMAL, wall time: 27.467254 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Minimum number of stalls: 54 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:INFEASIBLE, wall time: 3.259782 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:[0.8441s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 26.0, IPC ~ 0.96) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:OPTIMAL, wall time: 2.964832 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Minimum number of stalls: 46 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:INFEASIBLE, wall time: 3.071072 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:[8.6320s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.46), bound (Cycles ~ 15.0, IPC ~ 1.67) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:[8.6825s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.47), bound (Cycles ~ 15.0, IPC ~ 1.67) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:OPTIMAL, wall time: 9.635130 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.0_25:Minimum number of stalls: 40 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: ********................ (8) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:INFEASIBLE, wall time: 3.096403 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:[21.0533s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:[21.3067s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.37), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:[21.3795s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:OPTIMAL, wall time: 24.861930 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Booleans in result: 441 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.6_31:Minimum number of stalls: 54 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:INFEASIBLE, wall time: 1.255588 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:[43.5098s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:[43.6899s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 73.0, IPC ~ 0.34) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:OPTIMAL, wall time: 44.473857 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Booleans in result: 554 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.12_37:Minimum number of stalls: 60 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:INFEASIBLE, wall time: 4.274792 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:[39.7605s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.34), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:OPTIMAL, wall time: 40.477879 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.19_43:Minimum number of stalls: 59 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:INFEASIBLE, wall time: 2.874402 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:[3.6332s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 64.0, IPC ~ 0.39) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:OPTIMAL, wall time: 4.705423 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Booleans in result: 479 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.25_50:Minimum number of stalls: 56 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:INFEASIBLE, wall time: 1.807578 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:[22.6814s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.33), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:[22.7126s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:[22.7436s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.34), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:[22.7725s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:OPTIMAL, wall time: 23.603527 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.31_56:Minimum number of stalls: 60 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:INFEASIBLE, wall time: 1.829162 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:[9.2918s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 28.0, IPC ~ 0.89) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:[9.4495s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 28.0, IPC ~ 0.89) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:OPTIMAL, wall time: 9.645537 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.37_62:Minimum number of stalls: 48 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:INFEASIBLE, wall time: 0.052783 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:[11.1776s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 14.0, IPC ~ 1.79) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:[11.2227s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 33.0, IPC ~ 0.76) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:[11.2671s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 33.0, IPC ~ 0.76) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:[11.3374s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 33.0, IPC ~ 0.76) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:OPTIMAL, wall time: 12.942816 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.43_68:Minimum number of stalls: 46 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:INFEASIBLE, wall time: 0.263174 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:[1.5382s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.34), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:OPTIMAL, wall time: 2.917281 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.50_74:Minimum number of stalls: 59 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:INFEASIBLE, wall time: 0.274567 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:[24.7202s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 40.0, IPC ~ 0.62) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:OPTIMAL, wall time: 26.601400 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Booleans in result: 565 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.56_81:Minimum number of stalls: 60 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:INFEASIBLE, wall time: 2.562416 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:[31.1519s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 54.0, IPC ~ 0.46) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:[31.2968s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 54.0, IPC ~ 0.46) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:OPTIMAL, wall time: 33.078978 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.62_87:Minimum number of stalls: 52 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:INFEASIBLE, wall time: 0.065509 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:[4.2829s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.33), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:[4.3496s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:[4.4336s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:[4.4815s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:[4.4879s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 48.0, IPC ~ 0.52) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:[4.6025s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 49.0, IPC ~ 0.51) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:OPTIMAL, wall time: 6.014156 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.68_93:Minimum number of stalls: 56 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:INFEASIBLE, wall time: 0.320728 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:[12.7139s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.32), bound (Cycles ~ 38.0, IPC ~ 0.66) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:[14.4911s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:[14.7764s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:OPTIMAL, wall time: 16.417161 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.74_99:Minimum number of stalls: 54 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:INFEASIBLE, wall time: 0.186421 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:[21.4040s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.40), bound (Cycles ~ 48.0, IPC ~ 0.50) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:[21.4065s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.41), bound (Cycles ~ 48.0, IPC ~ 0.50) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:OPTIMAL, wall time: 22.979916 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.81_105:Minimum number of stalls: 47 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:INFEASIBLE, wall time: 2.902437 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:[17.1045s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:OPTIMAL, wall time: 18.941204 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.87_112:Minimum number of stalls: 56 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:INFEASIBLE, wall time: 3.589497 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:[31.3741s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:[31.6799s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:[31.7937s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:OPTIMAL, wall time: 32.878322 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Booleans in result: 489 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.93_118:Minimum number of stalls: 56 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:INFEASIBLE, wall time: 0.174313 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:[30.5784s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 28.0, IPC ~ 0.89) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:OPTIMAL, wall time: 30.822510 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Booleans in result: 480 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.99_124:Minimum number of stalls: 50 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 0- 2]: *******................. (7) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 2- 4]: *********............... (9) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 4- 7]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 7- 9]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 9- 12]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 12- 14]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 14- 17]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 17- 19]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 19- 22]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 22- 24]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 24- 27]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 27- 29]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 37- 39]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 54- 57]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 59- 62]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 62- 64]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 64- 66]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 66- 69]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 69- 71]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 71- 74]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 76- 79]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 79- 81]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 81- 84]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 84- 86]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 86- 89]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 89- 91]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 91- 94]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 94- 96]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[ 99-101]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[101-104]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[104-106]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[106-109]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[109-111]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[111-114]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[114-116]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[116-119]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[119-121]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split:[121-124]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.split_heuristic_full:OK! +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 0.961471 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 33.780588 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:INFEASIBLE, wall time: 146.905462 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:[142.3730s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 318.0, IPC ~ 0.39), bound (Cycles ~ 310.0, IPC ~ 0.40) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:[142.4255s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 316.0, IPC ~ 0.39), bound (Cycles ~ 312.0, IPC ~ 0.40) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:OPTIMAL, wall time: 143.538291 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split_estimtate_perf:Minimum number of stalls: 254 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.slothy.split.split_heuristic_full_with_stalls:OK! +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.halving_heuristic_1:OK! +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop:Apply halving heuristic to optimize two halves of consecutive loop kernels... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:INFEASIBLE, wall time: 0.222274 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:[0.6147s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 56.0, IPC ~ 0.45) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:OPTIMAL, wall time: 1.093422 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Minimum number of stalls: 46 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:INFEASIBLE, wall time: 4.568126 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:[8.4027s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 68.0, IPC ~ 0.37) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:OPTIMAL, wall time: 9.821782 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Minimum number of stalls: 58 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:INFEASIBLE, wall time: 4.153992 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:[13.5646s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.51), bound (Cycles ~ 40.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:[13.5782s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.55), bound (Cycles ~ 40.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:OPTIMAL, wall time: 13.959923 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Minimum number of stalls: 32 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:INFEASIBLE, wall time: 0.040874 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:[0.1594s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 75.0, IPC ~ 0.33) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:OPTIMAL, wall time: 0.395810 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Minimum number of stalls: 62 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:INFEASIBLE, wall time: 0.131290 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:[0.5581s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 54.0, IPC ~ 0.46) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:[0.5746s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.43), bound (Cycles ~ 58.0, IPC ~ 0.43) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:OPTIMAL, wall time: 1.113198 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Minimum number of stalls: 45 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:Initial stalls +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:INFEASIBLE, wall time: 0.917523 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:[37.8629s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 54.0, IPC ~ 0.46) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:[37.9394s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 54.0, IPC ~ 0.46) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:OPTIMAL, wall time: 40.296419 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Minimum number of stalls: 46 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:INFEASIBLE, wall time: 0.207746 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:[9.3781s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 47.0, IPC ~ 0.53) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:[9.4086s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 47.0, IPC ~ 0.53) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:[9.4437s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 47.0, IPC ~ 0.53) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:[9.4968s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 47.0, IPC ~ 0.53) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:OPTIMAL, wall time: 9.871712 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Booleans in result: 516 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Minimum number of stalls: 48 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:INFEASIBLE, wall time: 1.196104 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:[0.8716s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 28.0, IPC ~ 0.89) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:[1.0418s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 30.0, IPC ~ 0.83) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:OPTIMAL, wall time: 1.995507 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Minimum number of stalls: 48 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:INFEASIBLE, wall time: 6.951812 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[38.1199s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.32), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[38.1447s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.33), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[38.1906s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.34), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[38.2130s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.34), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[38.2297s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.35), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[38.2623s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.36), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[38.2812s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.37), bound (Cycles ~ 30.0, IPC ~ 0.80) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:OPTIMAL, wall time: 40.195092 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Minimum number of stalls: 53 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:INFEASIBLE, wall time: 1.449528 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:[40.1984s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:[40.2851s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:[40.2945s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 22.0, IPC ~ 1.14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:[40.3516s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 61.0, IPC ~ 0.41) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:OPTIMAL, wall time: 42.894546 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Minimum number of stalls: 48 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:INFEASIBLE, wall time: 2.001700 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:[48.7397s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:OPTIMAL, wall time: 50.339999 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Minimum number of stalls: 50 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:INFEASIBLE, wall time: 5.792139 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:[2.6348s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 26.0, IPC ~ 0.96) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:[2.6788s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 26.0, IPC ~ 0.96) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:[2.7265s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 26.0, IPC ~ 0.96) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:OPTIMAL, wall time: 4.400023 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Minimum number of stalls: 50 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:INFEASIBLE, wall time: 0.248864 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:[1.2210s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.47), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:[1.3014s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.49), bound (Cycles ~ 44.0, IPC ~ 0.57) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:OPTIMAL, wall time: 2.597479 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Minimum number of stalls: 38 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:INFEASIBLE, wall time: 4.014382 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:[28.3847s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.49), bound (Cycles ~ 37.0, IPC ~ 0.65) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:[28.4377s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.50), bound (Cycles ~ 37.0, IPC ~ 0.65) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:[28.4905s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.53), bound (Cycles ~ 37.0, IPC ~ 0.65) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:OPTIMAL, wall time: 30.233427 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Minimum number of stalls: 33 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:INFEASIBLE, wall time: 0.068740 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:[0.6861s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.45), bound (Cycles ~ 36.0, IPC ~ 0.69) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:[0.6955s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.46), bound (Cycles ~ 36.0, IPC ~ 0.69) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:[0.7055s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.47), bound (Cycles ~ 36.0, IPC ~ 0.69) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:OPTIMAL, wall time: 2.324827 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Minimum number of stalls: 40 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:INFEASIBLE, wall time: 0.900018 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:[13.0984s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 16.0, IPC ~ 1.56) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:OPTIMAL, wall time: 15.875455 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Minimum number of stalls: 44 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:INFEASIBLE, wall time: 0.366008 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:[55.0522s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:[55.1143s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.38), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:[55.2781s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 46.0, IPC ~ 0.54) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:OPTIMAL, wall time: 59.944761 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Minimum number of stalls: 52 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:INFEASIBLE, wall time: 1.582286 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:[72.1918s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:OPTIMAL, wall time: 73.120778 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Minimum number of stalls: 62 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:INFEASIBLE, wall time: 3.486246 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:[32.5737s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.38), bound (Cycles ~ 12.0, IPC ~ 2.00) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:OPTIMAL, wall time: 35.090534 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Minimum number of stalls: 51 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:INFEASIBLE, wall time: 3.435211 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:[32.1390s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 56.0, IPC ~ 0.45) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:[32.3009s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 59.0, IPC ~ 0.42) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:OPTIMAL, wall time: 33.210150 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Minimum number of stalls: 46 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:INFEASIBLE, wall time: 0.487806 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.3980s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.33), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.4426s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.34), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.4899s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.5504s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.5974s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.6529s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.6992s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.7462s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.7896s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.8315s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[13.9981s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[14.0600s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.42), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[14.1068s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[14.1447s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:OPTIMAL, wall time: 17.019675 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Minimum number of stalls: 44 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:INFEASIBLE, wall time: 0.079983 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:[72.1766s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 28.0, IPC ~ 0.89) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:OPTIMAL, wall time: 74.166398 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Minimum number of stalls: 46 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:INFEASIBLE, wall time: 0.799676 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:[18.5255s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 36.0, IPC ~ 0.69) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:OPTIMAL, wall time: 19.208337 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.0_25:Minimum number of stalls: 52 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:INFEASIBLE, wall time: 0.049218 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:[0.8882s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 46.0, IPC ~ 0.54) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:OPTIMAL, wall time: 1.952986 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.6_31:Minimum number of stalls: 60 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:INFEASIBLE, wall time: 1.652968 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:[5.1108s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.34), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:[5.1706s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 42.0, IPC ~ 0.60) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:OPTIMAL, wall time: 9.351886 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.12_37:Minimum number of stalls: 58 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:INFEASIBLE, wall time: 5.148825 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[26.8344s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.35), bound (Cycles ~ 32.0, IPC ~ 0.75) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[26.8662s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.36), bound (Cycles ~ 32.0, IPC ~ 0.75) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[26.8792s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.36), bound (Cycles ~ 32.0, IPC ~ 0.75) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:[26.8928s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.37), bound (Cycles ~ 32.0, IPC ~ 0.75) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:OPTIMAL, wall time: 27.386082 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.19_43:Minimum number of stalls: 53 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:INFEASIBLE, wall time: 0.108850 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:[9.8452s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.32), bound (Cycles ~ 23.0, IPC ~ 1.09) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:[9.8866s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.33), bound (Cycles ~ 24.0, IPC ~ 1.04) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:[9.9576s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 25.0, IPC ~ 1.00) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:[10.1052s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 25.0, IPC ~ 1.00) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:OPTIMAL, wall time: 13.125551 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Booleans in result: 387 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.25_50:Minimum number of stalls: 54 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************........... (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************........ (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************...... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: *********************** (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: *********************** (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: *********************** (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: *********************** (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: ********************... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: ********************... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *******************.... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *******************.... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************.... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************.... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************.. (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************.... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************...... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************........... (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:INFEASIBLE, wall time: 0.216995 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:[19.4015s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:[19.5657s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.36), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:OPTIMAL, wall time: 21.401774 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.31_56:Minimum number of stalls: 56 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:INFEASIBLE, wall time: 2.047935 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:[2.0207s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.34), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:[2.2588s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.35), bound (Cycles ~ 39.0, IPC ~ 0.64) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:OPTIMAL, wall time: 3.454246 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Booleans in result: 566 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.37_62:Minimum number of stalls: 58 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:INFEASIBLE, wall time: 0.237070 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:[0.9672s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 36.0, IPC ~ 0.69) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:[1.0383s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 36.0, IPC ~ 0.69) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:[1.1039s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 36.0, IPC ~ 0.69) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:[1.1726s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.42), bound (Cycles ~ 36.0, IPC ~ 0.69) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:OPTIMAL, wall time: 3.708116 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Booleans in result: 446 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.43_68:Minimum number of stalls: 46 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:INFEASIBLE, wall time: 1.365628 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:[20.7746s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.43), bound (Cycles ~ 43.0, IPC ~ 0.56) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:[20.7789s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.46), bound (Cycles ~ 43.0, IPC ~ 0.56) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:[20.8022s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.47), bound (Cycles ~ 43.0, IPC ~ 0.56) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:OPTIMAL, wall time: 22.040640 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.50_74:Minimum number of stalls: 39 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:INFEASIBLE, wall time: 0.844974 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:[2.5247s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:[2.5957s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 32.0, IPC ~ 0.78) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:OPTIMAL, wall time: 4.149135 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Booleans in result: 357 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.56_81:Minimum number of stalls: 44 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:INFEASIBLE, wall time: 1.856798 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:[6.7634s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.43), bound (Cycles ~ 21.0, IPC ~ 1.19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:[6.7960s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.44), bound (Cycles ~ 21.0, IPC ~ 1.19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:OPTIMAL, wall time: 7.766738 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.62_87:Minimum number of stalls: 44 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:INFEASIBLE, wall time: 7.550768 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:[30.1541s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 13.0, IPC ~ 1.92) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:OPTIMAL, wall time: 31.765074 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.68_93:Minimum number of stalls: 50 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:INFEASIBLE, wall time: 6.053369 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:INFEASIBLE, wall time: 5.869772 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Attempt optimization with max 128 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:[15.5034s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.32), bound (Cycles ~ 68.0, IPC ~ 0.37) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:OPTIMAL, wall time: 18.249670 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Booleans in result: 419 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.74_99:Minimum number of stalls: 66 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:INFEASIBLE, wall time: 0.409024 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:[0.8106s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.34), bound (Cycles ~ 51.0, IPC ~ 0.47) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:OPTIMAL, wall time: 0.983540 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Booleans in result: 408 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.81_105:Minimum number of stalls: 59 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: **************.......... (14) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:INFEASIBLE, wall time: 0.147245 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:[2.8303s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.32), bound (Cycles ~ 60.0, IPC ~ 0.42) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:[2.8515s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.33), bound (Cycles ~ 60.0, IPC ~ 0.42) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:[2.8689s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.37), bound (Cycles ~ 60.0, IPC ~ 0.42) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:[2.8875s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.38), bound (Cycles ~ 60.0, IPC ~ 0.42) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:[2.9044s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 60.0, IPC ~ 0.42) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:[2.9241s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 60.0, IPC ~ 0.42) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:[2.9426s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 63.0, IPC ~ 0.40) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:OPTIMAL, wall time: 4.060267 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.87_112:Minimum number of stalls: 50 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:INFEASIBLE, wall time: 2.995921 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[78.5955s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.38), bound (Cycles ~ 50.0, IPC ~ 0.50) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[78.7740s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 50.0, IPC ~ 0.50) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[78.8882s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.40), bound (Cycles ~ 50.0, IPC ~ 0.50) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:[78.9617s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.41), bound (Cycles ~ 61.0, IPC ~ 0.41) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:OPTIMAL, wall time: 83.614005 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.93_118:Minimum number of stalls: 48 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:INFEASIBLE, wall time: 0.217294 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:[25.0701s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.35), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:[25.1072s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.36), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:[25.1590s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.38), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:[25.2078s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.39), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:[25.3128s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.40), bound (Cycles ~ 34.0, IPC ~ 0.74) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:OPTIMAL, wall time: 26.491935 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.99_124:Minimum number of stalls: 50 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 0- 2]: **********.............. (10) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 2- 4]: ************............ (12) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 4- 7]: ***************......... (15) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 7- 9]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 9- 12]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 12- 14]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 14- 17]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 17- 19]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 19- 22]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 22- 24]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 24- 27]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 27- 29]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 29- 32]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 32- 34]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 34- 37]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 37- 39]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 39- 42]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 42- 44]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 44- 47]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 47- 49]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 49- 52]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 52- 54]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 54- 57]: **********************.. (22) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 57- 59]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 59- 62]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 62- 64]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 64- 66]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 66- 69]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 69- 71]: *****************....... (17) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 71- 74]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 74- 76]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 76- 79]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 79- 81]: *******************..... (19) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 81- 84]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 84- 86]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 86- 89]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 89- 91]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 91- 94]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 94- 96]: ************************ (24) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 96- 99]: ***********************. (23) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[ 99-101]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[101-104]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[104-106]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[106-109]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[109-111]: *********************... (21) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[111-114]: ********************.... (20) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[114-116]: ******************...... (18) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[116-119]: ****************........ (16) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[119-121]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split:[121-124]: *************........... (13) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.split_heuristic_full:OK! +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 0.638385 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 1.552163 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:INFEASIBLE, wall time: 41.746392 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Objective: minimize cycles +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:[8.6874s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 313.0, IPC ~ 0.40), bound (Cycles ~ 304.0, IPC ~ 0.41) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:[8.7178s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 311.0, IPC ~ 0.40), bound (Cycles ~ 304.0, IPC ~ 0.41) +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:OPTIMAL, wall time: 12.537185 s +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Booleans in result: 0 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf.selfcheck:OK! +WARNING:kyber_ntt2normal_order_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split_estimtate_perf:Minimum number of stalls: 249 +INFO:kyber_ntt2normal_order_rvv_vlen128_c908.ntt2normal_order_rvv_vlen128_loop.heuristic.split.split_heuristic_full_with_stalls:OK! diff --git a/rvv_run_logs/kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.log b/rvv_run_logs/kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.log new file mode 100644 index 000000000..19a3db4be --- /dev/null +++ b/rvv_run_logs/kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.log @@ -0,0 +1,19 @@ +* Example: kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908... +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908:Optimizing loop poly_basemul_acc_cache_init_rvv_vlen128_loop (201 instructions) ... +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 48.227112 s +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Attempt optimization with max 64 stalls... +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 631.348672 s +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Attempt optimization with max 128 stalls... +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 2773.486382 s +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Attempt optimization with max 256 stalls... +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_acc_cache_init_rvv_vlen128_c908.poly_basemul_acc_cache_init_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... diff --git a/rvv_run_logs/kyber_poly_basemul_acc_cached_rvv_vlen128_c908.log b/rvv_run_logs/kyber_poly_basemul_acc_cached_rvv_vlen128_c908.log new file mode 100644 index 000000000..367924ee6 --- /dev/null +++ b/rvv_run_logs/kyber_poly_basemul_acc_cached_rvv_vlen128_c908.log @@ -0,0 +1,19 @@ +* Example: kyber_poly_basemul_acc_cached_rvv_vlen128_c908... +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908:Optimizing loop poly_basemul_acc_cached_rvv_vlen128_loop (173 instructions) ... +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 216.885470 s +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Attempt optimization with max 64 stalls... +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 473.941912 s +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Attempt optimization with max 128 stalls... +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 1216.204129 s +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Attempt optimization with max 256 stalls... +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_acc_cached_rvv_vlen128_c908.poly_basemul_acc_cached_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... diff --git a/rvv_run_logs/kyber_poly_basemul_acc_rvv_vlen128_c908.log b/rvv_run_logs/kyber_poly_basemul_acc_rvv_vlen128_c908.log new file mode 100644 index 000000000..83d06f1ea --- /dev/null +++ b/rvv_run_logs/kyber_poly_basemul_acc_rvv_vlen128_c908.log @@ -0,0 +1,14 @@ +* Example: kyber_poly_basemul_acc_rvv_vlen128_c908... +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908:Optimizing loop poly_basemul_acc_rvv_vlen128_loop (192 instructions) ... +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 30.636179 s +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Attempt optimization with max 64 stalls... +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:[5997.2397s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 160.0, IPC ~ 1.20), bound (Cycles ~ 154.0, IPC ~ 1.25) +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:[6389.7811s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 159.0, IPC ~ 1.21), bound (Cycles ~ 154.0, IPC ~ 1.25) +INFO:kyber_poly_basemul_acc_rvv_vlen128_c908.poly_basemul_acc_rvv_vlen128_loop.slothy:[6488.2356s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 158.0, IPC ~ 1.22), bound (Cycles ~ 154.0, IPC ~ 1.25) diff --git a/rvv_run_logs/kyber_poly_basemul_cache_init_rvv_vlen128_c908.log b/rvv_run_logs/kyber_poly_basemul_cache_init_rvv_vlen128_c908.log new file mode 100644 index 000000000..12efb1475 --- /dev/null +++ b/rvv_run_logs/kyber_poly_basemul_cache_init_rvv_vlen128_c908.log @@ -0,0 +1,19 @@ +* Example: kyber_poly_basemul_cache_init_rvv_vlen128_c908... +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908:Optimizing loop poly_basemul_cache_init_rvv_vlen128_loop (177 instructions) ... +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 105.368220 s +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Attempt optimization with max 64 stalls... +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 1805.104496 s +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Attempt optimization with max 128 stalls... +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 3717.653748 s +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Attempt optimization with max 256 stalls... +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_cache_init_rvv_vlen128_c908.poly_basemul_cache_init_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... diff --git a/rvv_run_logs/kyber_poly_basemul_cached_rvv_vlen128_c908.log b/rvv_run_logs/kyber_poly_basemul_cached_rvv_vlen128_c908.log new file mode 100644 index 000000000..654442c50 --- /dev/null +++ b/rvv_run_logs/kyber_poly_basemul_cached_rvv_vlen128_c908.log @@ -0,0 +1,52 @@ +* Example: kyber_poly_basemul_cached_rvv_vlen128_c908... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908:Optimizing loop poly_basemul_cached_rvv_vlen128_loop (148 instructions) ... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 47.364594 s +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Attempt optimization with max 64 stalls... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 638.368302 s +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Attempt optimization with max 128 stalls... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 703.173770 s +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Attempt optimization with max 256 stalls... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12573.0011s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 330.0, IPC ~ 0.45), bound (Cycles ~ 175.0, IPC ~ 0.85) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12704.9459s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 329.0, IPC ~ 0.45), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12708.8396s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 327.0, IPC ~ 0.45), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12727.9633s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 323.0, IPC ~ 0.46), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12728.9686s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 297.0, IPC ~ 0.50), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12737.2857s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 273.0, IPC ~ 0.54), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12741.3506s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 259.0, IPC ~ 0.57), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12753.5755s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 258.0, IPC ~ 0.57), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12756.6466s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 252.0, IPC ~ 0.59), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12758.4090s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 244.0, IPC ~ 0.61), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12761.2659s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 233.0, IPC ~ 0.64), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12773.3677s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 229.0, IPC ~ 0.65), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12785.1771s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 226.0, IPC ~ 0.65), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12791.3444s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 224.0, IPC ~ 0.66), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12798.3060s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 223.0, IPC ~ 0.66), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12813.5818s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 222.0, IPC ~ 0.67), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12829.4383s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 221.0, IPC ~ 0.67), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12897.7222s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 220.0, IPC ~ 0.67), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12906.1371s]: Found 19 solutions so far... objective (minimize cycles): currently (Cycles ~ 219.0, IPC ~ 0.68), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[12917.7754s]: Found 20 solutions so far... objective (minimize cycles): currently (Cycles ~ 218.0, IPC ~ 0.68), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[13015.6195s]: Found 21 solutions so far... objective (minimize cycles): currently (Cycles ~ 217.0, IPC ~ 0.68), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[13028.4459s]: Found 22 solutions so far... objective (minimize cycles): currently (Cycles ~ 216.0, IPC ~ 0.69), bound (Cycles ~ 176.0, IPC ~ 0.84) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[13082.4725s]: Found 23 solutions so far... objective (minimize cycles): currently (Cycles ~ 215.0, IPC ~ 0.69), bound (Cycles ~ 178.0, IPC ~ 0.83) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[13393.3310s]: Found 24 solutions so far... objective (minimize cycles): currently (Cycles ~ 214.0, IPC ~ 0.69), bound (Cycles ~ 180.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[13784.5055s]: Found 25 solutions so far... objective (minimize cycles): currently (Cycles ~ 213.0, IPC ~ 0.69), bound (Cycles ~ 183.0, IPC ~ 0.81) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[13986.4238s]: Found 26 solutions so far... objective (minimize cycles): currently (Cycles ~ 212.0, IPC ~ 0.70), bound (Cycles ~ 184.0, IPC ~ 0.80) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[25658.3959s]: Found 27 solutions so far... objective (minimize cycles): currently (Cycles ~ 211.0, IPC ~ 0.70), bound (Cycles ~ 207.0, IPC ~ 0.71) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:[27007.5036s]: Found 28 solutions so far... objective (minimize cycles): currently (Cycles ~ 210.0, IPC ~ 0.70), bound (Cycles ~ 207.0, IPC ~ 0.71) +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:FEASIBLE, wall time: 94027.756187 s +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Booleans in result: 11186 +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy.selfcheck:OK! +WARNING:kyber_poly_basemul_cached_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_poly_basemul_cached_rvv_vlen128_c908.poly_basemul_cached_rvv_vlen128_loop.slothy:Minimum number of stalls: 136 diff --git a/rvv_run_logs/kyber_poly_basemul_rvv_vlen128_c908.log b/rvv_run_logs/kyber_poly_basemul_rvv_vlen128_c908.log new file mode 100644 index 000000000..e3ed863ee --- /dev/null +++ b/rvv_run_logs/kyber_poly_basemul_rvv_vlen128_c908.log @@ -0,0 +1,41 @@ +* Example: kyber_poly_basemul_rvv_vlen128_c908... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_poly_basemul_rvv_vlen128_c908:Optimizing loop poly_basemul_rvv_vlen128_loop (168 instructions) ... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 23.757846 s +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Attempt optimization with max 64 stalls... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 200.161769 s +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Attempt optimization with max 128 stalls... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:INFEASIBLE, wall time: 371.354340 s +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Attempt optimization with max 256 stalls... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19618.9861s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 336.0, IPC ~ 0.50), bound (Cycles ~ 205.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19742.5863s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 303.0, IPC ~ 0.55), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19749.9782s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 298.0, IPC ~ 0.56), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19761.8010s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 276.0, IPC ~ 0.61), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19777.4579s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 275.0, IPC ~ 0.61), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19787.4591s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 273.0, IPC ~ 0.62), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19800.7050s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 269.0, IPC ~ 0.62), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19831.2196s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 268.0, IPC ~ 0.63), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19848.7032s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 267.0, IPC ~ 0.63), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19853.5559s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 266.0, IPC ~ 0.63), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19857.8695s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 265.0, IPC ~ 0.63), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19916.6980s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 264.0, IPC ~ 0.64), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19927.8979s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 261.0, IPC ~ 0.64), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19932.8697s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 260.0, IPC ~ 0.65), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[19972.5024s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 259.0, IPC ~ 0.65), bound (Cycles ~ 206.0, IPC ~ 0.82) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[20326.8914s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 258.0, IPC ~ 0.65), bound (Cycles ~ 207.0, IPC ~ 0.81) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[20506.3568s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 257.0, IPC ~ 0.65), bound (Cycles ~ 209.0, IPC ~ 0.80) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[20697.3647s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 256.0, IPC ~ 0.66), bound (Cycles ~ 210.0, IPC ~ 0.80) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[20743.6780s]: Found 19 solutions so far... objective (minimize cycles): currently (Cycles ~ 255.0, IPC ~ 0.66), bound (Cycles ~ 210.0, IPC ~ 0.80) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[21542.3360s]: Found 20 solutions so far... objective (minimize cycles): currently (Cycles ~ 254.0, IPC ~ 0.66), bound (Cycles ~ 222.0, IPC ~ 0.76) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[23727.6465s]: Found 21 solutions so far... objective (minimize cycles): currently (Cycles ~ 253.0, IPC ~ 0.66), bound (Cycles ~ 243.0, IPC ~ 0.69) +INFO:kyber_poly_basemul_rvv_vlen128_c908.poly_basemul_rvv_vlen128_loop.slothy:[33143.6712s]: Found 22 solutions so far... objective (minimize cycles): currently (Cycles ~ 252.0, IPC ~ 0.67), bound (Cycles ~ 247.0, IPC ~ 0.68) diff --git a/rvv_run_logs/kyber_poly_reduce_rvv_vlen128_c908.log b/rvv_run_logs/kyber_poly_reduce_rvv_vlen128_c908.log new file mode 100644 index 000000000..b0365233a --- /dev/null +++ b/rvv_run_logs/kyber_poly_reduce_rvv_vlen128_c908.log @@ -0,0 +1,16 @@ +* Example: kyber_poly_reduce_rvv_vlen128_c908... +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_poly_reduce_rvv_vlen128_c908:Optimizing loop poly_reduce_rvv_vlen128_loop (11 instructions) ... +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:[1.4998s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 0.35), bound (Cycles ~ 17.0, IPC ~ 0.65) +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:[1.5158s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.50), bound (Cycles ~ 17.0, IPC ~ 0.65) +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:[1.5954s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 21.0, IPC ~ 0.52), bound (Cycles ~ 17.0, IPC ~ 0.65) +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:[1.6117s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 19.0, IPC ~ 0.58), bound (Cycles ~ 17.0, IPC ~ 0.65) +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:OPTIMAL, wall time: 1.811521 s +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:Booleans in result: 0 +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy.selfcheck:OK! +WARNING:kyber_poly_reduce_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_poly_reduce_rvv_vlen128_c908.poly_reduce_rvv_vlen128_loop.slothy:Minimum number of stalls: 13 diff --git a/rvv_run_logs/kyber_poly_tomont_rvv_vlen128_c908.log b/rvv_run_logs/kyber_poly_tomont_rvv_vlen128_c908.log new file mode 100644 index 000000000..2bda3c258 --- /dev/null +++ b/rvv_run_logs/kyber_poly_tomont_rvv_vlen128_c908.log @@ -0,0 +1,58 @@ +* Example: kyber_poly_tomont_rvv_vlen128_c908... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop:SLOTHY version: unknown +INFO:kyber_poly_tomont_rvv_vlen128_c908:Optimizing loop poly_tomont_rvv_vlen128_loop (15 instructions) ... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Objective: minimize cycles +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[3.3193s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.38), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[3.5034s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 0.39), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[3.7453s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 0.42), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[3.8072s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 0.43), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[3.8733s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.44), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[3.9957s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 0.45), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[4.2161s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 0.52), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[4.6966s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.58), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[4.8370s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 0.60), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[5.0033s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 24.0, IPC ~ 0.62), bound (Cycles ~ 10.0, IPC ~ 1.50) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[5.8550s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 23.0, IPC ~ 0.65), bound (Cycles ~ 11.0, IPC ~ 1.36) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:OPTIMAL, wall time: 134.438238 s +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Booleans in result: 427 +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Number of early instructions: 1 +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy.selfcheck:OK! +WARNING:kyber_poly_tomont_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Minimum number of stalls: 15 +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Optimize again with minimal number of 15 stalls, with objective... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Objective: minimize iteration overlapping +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Invoking external constraint solver... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:[3.2168s]: Found 1 solutions so far... objective (minimize iteration overlapping): currently 1.0, bound 0.0 +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:OPTIMAL, wall time: 5.064671 s +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy:Number of early instructions: 1 +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.slothy.selfcheck:OK! +WARNING:kyber_poly_tomont_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.preamble.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.preamble.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.preamble.slothy:Objective: minimize cycles +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.preamble.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.preamble.slothy:[3.7811s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 1.0, IPC ~ 1.00), bound (Cycles ~ 1.0, IPC ~ 1.00) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.preamble.slothy:Closer than 0 stalls to theoretical optimum... stop +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.preamble.slothy:OPTIMAL, wall time: 4.513433 s +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.preamble.slothy:Booleans in result: 0 +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.preamble.slothy.selfcheck:OK! +WARNING:kyber_poly_tomont_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.preamble.slothy:Minimum number of stalls: 0 +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:Objective: minimize cycles +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:[4.6978s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 0.52), bound (Cycles ~ 17.0, IPC ~ 0.82) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:[4.8464s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 0.54), bound (Cycles ~ 17.0, IPC ~ 0.82) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:[4.8948s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 24.0, IPC ~ 0.58), bound (Cycles ~ 17.0, IPC ~ 0.82) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:[4.9293s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 23.0, IPC ~ 0.61), bound (Cycles ~ 17.0, IPC ~ 0.82) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:[4.9660s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 22.0, IPC ~ 0.64), bound (Cycles ~ 17.0, IPC ~ 0.82) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:[5.0306s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 21.0, IPC ~ 0.67), bound (Cycles ~ 17.0, IPC ~ 0.82) +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:OPTIMAL, wall time: 6.263159 s +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:Booleans in result: 0 +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy.selfcheck:OK! +WARNING:kyber_poly_tomont_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_poly_tomont_rvv_vlen128_c908.poly_tomont_rvv_vlen128_loop.postamble.slothy:Minimum number of stalls: 14 diff --git a/rvv_run_logs/kyber_rej_uniform_rvv_vlen128_c908.log b/rvv_run_logs/kyber_rej_uniform_rvv_vlen128_c908.log new file mode 100644 index 000000000..455ca3229 --- /dev/null +++ b/rvv_run_logs/kyber_rej_uniform_rvv_vlen128_c908.log @@ -0,0 +1,47 @@ +* Example: kyber_rej_uniform_rvv_vlen128_c908... +INFO:kyber_rej_uniform_rvv_vlen128_c908:Apply C preprocessor... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start:SLOTHY version: unknown +INFO:kyber_rej_uniform_rvv_vlen128_c908:Instructions in body: 46 +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:Objective: minimize cycles +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:INFEASIBLE, wall time: 0.145152 s +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:Attempt optimization with max 64 stalls... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:Objective: minimize cycles +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:[20.3063s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.58), bound (Cycles ~ 56.0, IPC ~ 0.82) +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:[38.2318s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.59), bound (Cycles ~ 56.0, IPC ~ 0.82) +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:[39.3430s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.61), bound (Cycles ~ 56.0, IPC ~ 0.82) +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:OPTIMAL, wall time: 181.033824 s +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:Booleans in result: 1633 +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy.selfcheck:OK! +WARNING:kyber_rej_uniform_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_rej_uniform_rvv_vlen128_c908.start.slothy:Minimum number of stalls: 52 +INFO:kyber_rej_uniform_rvv_vlen128_c908:Apply C preprocessor... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x2:SLOTHY version: unknown +INFO:kyber_rej_uniform_rvv_vlen128_c908:Instructions in body: 24 +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x2.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x2.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x2.slothy:Objective: minimize cycles +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x2.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x2.slothy:[1.4442s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.55), bound (Cycles ~ 35.0, IPC ~ 0.69) +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x2.slothy:OPTIMAL, wall time: 2.618496 s +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x2.slothy:Booleans in result: 0 +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x2.slothy.selfcheck:OK! +WARNING:kyber_rej_uniform_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x2.slothy:Minimum number of stalls: 32 +INFO:kyber_rej_uniform_rvv_vlen128_c908:Apply C preprocessor... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1:SLOTHY version: unknown +INFO:kyber_rej_uniform_rvv_vlen128_c908:Instructions in body: 13 +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1.slothy:Perform internal binary search for minimal number of stalls... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1.slothy:Attempt optimization with max 32 stalls... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1.slothy:Objective: minimize cycles +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1.slothy:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1.slothy:[0.4611s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.33), bound (Cycles ~ 32.0, IPC ~ 0.41) +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1.slothy:[0.5013s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 0.38), bound (Cycles ~ 33.0, IPC ~ 0.39) +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1.slothy:OPTIMAL, wall time: 1.577015 s +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1.slothy:Booleans in result: 0 +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1.slothy.selfcheck:OK! +WARNING:kyber_rej_uniform_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:kyber_rej_uniform_rvv_vlen128_c908.start_x1.slothy:Minimum number of stalls: 27 diff --git a/rvv_run_logs/ntt_dilithium_rvv_vlen128_c908.log b/rvv_run_logs/ntt_dilithium_rvv_vlen128_c908.log new file mode 100644 index 000000000..bea7b63a1 --- /dev/null +++ b/rvv_run_logs/ntt_dilithium_rvv_vlen128_c908.log @@ -0,0 +1,3797 @@ +* Example: ntt_dilithium_rvv_vlen128_c908... +INFO:ntt_dilithium_rvv_vlen128_c908:Apply C preprocessor... +INFO:ntt_dilithium_rvv_vlen128_c908.start:SLOTHY version: unknown +INFO:ntt_dilithium_rvv_vlen128_c908:Instructions in body: 2406 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:[5.1331s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 39.0, IPC ~ 1.03) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:[5.1497s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 39.0, IPC ~ 1.03) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:[5.1619s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 39.0, IPC ~ 1.03) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:OPTIMAL, wall time: 5.639333 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Minimum number of stalls: 19 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80:[1.2204s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 40.0, IPC ~ 1.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80:OPTIMAL, wall time: 1.526645 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.40_80:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120:[10.0592s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120:OPTIMAL, wall time: 10.436264 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.80_120:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[2.1009s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 35.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:OPTIMAL, wall time: 3.308762 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.160_200:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.160_200:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.160_200:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.160_200:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.160_200:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.160_200:[2.7355s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 36.0, IPC ~ 1.11) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.160_200:OPTIMAL, wall time: 3.513207 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.160_200:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.160_200.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.160_200:Minimum number of stalls: 19 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241:[1.7414s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.05), bound (Cycles ~ 34.0, IPC ~ 1.21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241:[1.7883s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.08), bound (Cycles ~ 35.0, IPC ~ 1.17) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241:OPTIMAL, wall time: 2.653593 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.200_241:Minimum number of stalls: 17 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[5.9602s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 37.0, IPC ~ 1.08) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:OPTIMAL, wall time: 6.633730 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Minimum number of stalls: 19 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.281_321:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.281_321:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.281_321:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.281_321:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.281_321:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.281_321:[0.3080s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 36.0, IPC ~ 1.11) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.281_321:OPTIMAL, wall time: 0.367002 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.281_321:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.281_321.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.281_321:Minimum number of stalls: 17 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361:[2.3985s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 40.0, IPC ~ 1.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361:OPTIMAL, wall time: 3.033087 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.321_361:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[1.1126s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[1.1226s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:OPTIMAL, wall time: 1.267974 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Booleans in result: 460 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.401_441:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.401_441:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.401_441:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.401_441:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.401_441:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.401_441:[1.0567s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 35.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.401_441:OPTIMAL, wall time: 2.586255 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.401_441:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.401_441.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.401_441:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481:[1.5726s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481:[1.5922s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481:OPTIMAL, wall time: 1.868985 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.441_481:Minimum number of stalls: 19 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[0.7504s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 31.0, IPC ~ 1.29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[0.7743s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 32.0, IPC ~ 1.25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:OPTIMAL, wall time: 2.228693 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Minimum number of stalls: 16 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.521_561:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.521_561:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.521_561:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.521_561:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.521_561:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.521_561:[0.7634s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.521_561:OPTIMAL, wall time: 2.206575 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.521_561:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.521_561.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.521_561:Minimum number of stalls: 19 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.561_601:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.561_601:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.561_601:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.561_601:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.561_601:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.561_601:[1.0013s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 36.0, IPC ~ 1.11) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.561_601:OPTIMAL, wall time: 1.748441 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.561_601:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.561_601.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.561_601:Minimum number of stalls: 17 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642:[1.4336s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642:OPTIMAL, wall time: 1.922845 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642:Booleans in result: 440 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.601_642:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:[2.0321s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:[2.0394s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:OPTIMAL, wall time: 3.037065 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.642_682:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:[52.2052s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 35.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:[52.2427s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:OPTIMAL, wall time: 52.949230 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.682_722:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[1.5007s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 40.0, IPC ~ 1.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[1.5139s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 40.0, IPC ~ 1.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:OPTIMAL, wall time: 2.423281 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Booleans in result: 478 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:[3.8897s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 32.0, IPC ~ 1.25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:[3.9291s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 37.0, IPC ~ 1.08) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:OPTIMAL, wall time: 5.099496 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.762_802:Minimum number of stalls: 17 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.802_842:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.802_842:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.802_842:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.802_842:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.802_842:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.802_842:[0.6491s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 37.0, IPC ~ 1.08) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.802_842:OPTIMAL, wall time: 1.161123 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.802_842:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.802_842.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.802_842:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:[0.7115s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:[0.7334s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 39.0, IPC ~ 1.03) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:[0.7535s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 39.0, IPC ~ 1.03) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:OPTIMAL, wall time: 0.858553 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Minimum number of stalls: 19 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922:[3.8980s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 40.0, IPC ~ 1.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922:OPTIMAL, wall time: 4.060040 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922:Booleans in result: 379 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.882_922:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962:[33.2398s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962:OPTIMAL, wall time: 34.861399 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.922_962:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[46.1647s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 36.0, IPC ~ 1.11) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[46.2091s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 37.0, IPC ~ 1.08) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:OPTIMAL, wall time: 48.055107 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Minimum number of stalls: 19 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043:[5.1323s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 41.0, IPC ~ 1.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043:OPTIMAL, wall time: 5.418855 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1002_1043:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:[5.1382s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 34.0, IPC ~ 1.18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:[5.1640s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 37.0, IPC ~ 1.08) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:OPTIMAL, wall time: 5.674093 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1043_1083:Minimum number of stalls: 17 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[0.5431s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 34.0, IPC ~ 1.18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[0.5635s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 36.0, IPC ~ 1.11) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:OPTIMAL, wall time: 1.109507 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163:[1.1838s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 32.0, IPC ~ 1.25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163:[1.1869s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 32.0, IPC ~ 1.25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163:OPTIMAL, wall time: 1.687801 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1123_1163:Minimum number of stalls: 16 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203:[1.4034s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 40.0, IPC ~ 1.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203:OPTIMAL, wall time: 2.831411 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1163_1203:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[1.2279s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 34.0, IPC ~ 1.18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[1.2606s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 37.0, IPC ~ 1.08) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:OPTIMAL, wall time: 2.536945 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Minimum number of stalls: 17 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283:[30.1692s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 35.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283:[30.1872s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 35.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283:OPTIMAL, wall time: 31.327038 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1243_1283:Minimum number of stalls: 17 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:INFEASIBLE, wall time: 0.856294 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:INFEASIBLE, wall time: 0.266245 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Attempt optimization with max 128 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:[1.4219s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 103.0, IPC ~ 0.39), bound (Cycles ~ 100.0, IPC ~ 0.40) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:OPTIMAL, wall time: 2.880799 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1283_1323:Minimum number of stalls: 83 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[0.9081s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 42.0, IPC ~ 0.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:OPTIMAL, wall time: 2.112088 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Minimum number of stalls: 22 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:INFEASIBLE, wall time: 0.140278 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:INFEASIBLE, wall time: 0.201484 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Attempt optimization with max 128 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:[3.3325s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 100.0, IPC ~ 0.41), bound (Cycles ~ 94.0, IPC ~ 0.44) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:[3.3914s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 98.0, IPC ~ 0.42), bound (Cycles ~ 98.0, IPC ~ 0.42) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:OPTIMAL, wall time: 4.234524 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1363_1404:Minimum number of stalls: 77 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:[0.6939s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 46.0, IPC ~ 0.87) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:[0.7162s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 46.0, IPC ~ 0.87) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:[0.7308s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 47.0, IPC ~ 0.85) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:[0.7415s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 47.0, IPC ~ 0.85) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:OPTIMAL, wall time: 1.935656 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1404_1444:Minimum number of stalls: 27 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[1.9229s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 35.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:OPTIMAL, wall time: 2.574044 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:[1.4166s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 40.0, IPC ~ 1.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:[1.4234s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 40.0, IPC ~ 1.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:OPTIMAL, wall time: 2.928495 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1484_1524:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1524_1564:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1524_1564:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1524_1564:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1524_1564:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1524_1564:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1524_1564:[4.9348s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 31.0, IPC ~ 1.29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1524_1564:OPTIMAL, wall time: 6.022663 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1524_1564:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1524_1564.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1524_1564:Minimum number of stalls: 17 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[0.4543s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 49.0, IPC ~ 0.82) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[0.4634s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 49.0, IPC ~ 0.82) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:OPTIMAL, wall time: 0.636244 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Minimum number of stalls: 29 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:INFEASIBLE, wall time: 0.114126 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:INFEASIBLE, wall time: 0.109497 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Attempt optimization with max 128 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:UNKNOWN, wall time: 98.203412 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Attempt optimization with max 256 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:UNKNOWN, wall time: 180.824741 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Attempt optimization with max 512 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:UNKNOWN, wall time: 127.356848 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Attempt optimization with max 1024 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:UNKNOWN, wall time: 150.413214 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Attempt optimization with max 2048 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:[17.6094s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 2059.0, IPC ~ 0.02), bound (Cycles ~ 41.0, IPC ~ 0.98) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:[17.8804s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 1914.0, IPC ~ 0.02), bound (Cycles ~ 41.0, IPC ~ 0.98) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:[18.2492s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 1913.0, IPC ~ 0.02), bound (Cycles ~ 41.0, IPC ~ 0.98) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:[19.3481s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 1910.0, IPC ~ 0.02), bound (Cycles ~ 41.0, IPC ~ 0.98) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:[19.8300s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 1908.0, IPC ~ 0.02), bound (Cycles ~ 41.0, IPC ~ 0.98) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:[22.6916s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 1754.0, IPC ~ 0.02), bound (Cycles ~ 41.0, IPC ~ 0.98) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:[23.8249s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 89.0, IPC ~ 0.45), bound (Cycles ~ 76.0, IPC ~ 0.53) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:OPTIMAL, wall time: 28.675200 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Booleans in result: 706 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1604_1644:Minimum number of stalls: 69 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:[0.8827s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 41.0, IPC ~ 0.98) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:[0.8862s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 41.0, IPC ~ 0.98) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:OPTIMAL, wall time: 1.177918 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1644_1684:Minimum number of stalls: 21 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:INFEASIBLE, wall time: 0.483761 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:INFEASIBLE, wall time: 0.219641 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Attempt optimization with max 128 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:[13.7950s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 104.0, IPC ~ 0.38), bound (Cycles ~ 99.0, IPC ~ 0.40) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:[13.8512s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 103.0, IPC ~ 0.39), bound (Cycles ~ 103.0, IPC ~ 0.39) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:OPTIMAL, wall time: 15.302203 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Minimum number of stalls: 83 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764:[0.9729s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 41.0, IPC ~ 0.98) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764:[0.9921s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 41.0, IPC ~ 0.98) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764:OPTIMAL, wall time: 2.721721 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1724_1764:Minimum number of stalls: 22 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:[0.6914s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 36.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:[0.7461s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 36.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:[0.7636s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 36.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:[0.7761s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 37.0, IPC ~ 1.11) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:[0.8104s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 37.0, IPC ~ 1.11) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:[0.8148s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.05), bound (Cycles ~ 39.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:OPTIMAL, wall time: 3.331003 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1764_1805:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[7.7813s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 39.0, IPC ~ 1.03) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:OPTIMAL, wall time: 7.904138 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Booleans in result: 474 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Minimum number of stalls: 19 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885:[0.9085s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 33.0, IPC ~ 1.21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885:[0.9167s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 33.0, IPC ~ 1.21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885:OPTIMAL, wall time: 1.985895 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1845_1885:Minimum number of stalls: 17 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:INFEASIBLE, wall time: 0.881346 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:[9.2162s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.59), bound (Cycles ~ 61.0, IPC ~ 0.66) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:[9.2324s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.60), bound (Cycles ~ 61.0, IPC ~ 0.66) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:[9.2407s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.61), bound (Cycles ~ 61.0, IPC ~ 0.66) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:[9.2571s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.62), bound (Cycles ~ 62.0, IPC ~ 0.65) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:[9.2643s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.62), bound (Cycles ~ 64.0, IPC ~ 0.62) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:OPTIMAL, wall time: 9.761182 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1885_1925:Minimum number of stalls: 44 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:INFEASIBLE, wall time: 3.807632 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[5.0029s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.51), bound (Cycles ~ 74.0, IPC ~ 0.54) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[5.0473s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.52), bound (Cycles ~ 77.0, IPC ~ 0.52) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:OPTIMAL, wall time: 5.505262 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Minimum number of stalls: 57 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:[1.6916s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 39.0, IPC ~ 1.03) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:[1.7036s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 39.0, IPC ~ 1.03) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:OPTIMAL, wall time: 3.331350 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1965_2005:Minimum number of stalls: 19 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:INFEASIBLE, wall time: 0.736024 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:INFEASIBLE, wall time: 0.860504 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Attempt optimization with max 128 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:[29.2925s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 104.0, IPC ~ 0.38), bound (Cycles ~ 101.0, IPC ~ 0.40) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:OPTIMAL, wall time: 30.277559 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2005_2045:Minimum number of stalls: 84 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[3.1221s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 42.0, IPC ~ 0.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:OPTIMAL, wall time: 4.386104 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Minimum number of stalls: 23 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:[47.3175s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 35.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:[47.3363s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 35.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:[47.3526s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 36.0, IPC ~ 1.11) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:[47.3608s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 38.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:OPTIMAL, wall time: 48.410900 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2085_2125:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2125_2165:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2125_2165:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2125_2165:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2125_2165:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2125_2165:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2125_2165:[46.2681s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 35.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2125_2165:OPTIMAL, wall time: 47.512011 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2125_2165:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2125_2165.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2125_2165:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[13.7681s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 36.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[13.7860s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.05), bound (Cycles ~ 39.0, IPC ~ 1.05) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:OPTIMAL, wall time: 14.154325 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:INFEASIBLE, wall time: 0.255143 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:[1.5711s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.59), bound (Cycles ~ 67.0, IPC ~ 0.60) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:OPTIMAL, wall time: 2.125444 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2206_2246:Minimum number of stalls: 48 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:INFEASIBLE, wall time: 0.101912 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:[0.8789s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.54), bound (Cycles ~ 70.0, IPC ~ 0.57) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:[0.8862s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.55), bound (Cycles ~ 73.0, IPC ~ 0.55) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:OPTIMAL, wall time: 1.006515 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Booleans in result: 349 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2246_2286:Minimum number of stalls: 53 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:INFEASIBLE, wall time: 2.439960 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[54.2665s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.68), bound (Cycles ~ 52.0, IPC ~ 0.77) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[54.3538s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.69), bound (Cycles ~ 52.0, IPC ~ 0.77) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[54.3985s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.70), bound (Cycles ~ 56.0, IPC ~ 0.71) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[54.4037s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.71), bound (Cycles ~ 56.0, IPC ~ 0.71) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:OPTIMAL, wall time: 55.377096 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Minimum number of stalls: 36 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:INFEASIBLE, wall time: 3.017479 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:INFEASIBLE, wall time: 3.954945 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Attempt optimization with max 128 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:[91.1576s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 86.0, IPC ~ 0.47), bound (Cycles ~ 83.0, IPC ~ 0.48) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:OPTIMAL, wall time: 92.486382 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Booleans in result: 644 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2326_2366:Minimum number of stalls: 66 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406:[21.0717s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 45.0, IPC ~ 0.89) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406:[21.0902s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 45.0, IPC ~ 0.89) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406:OPTIMAL, wall time: 22.241690 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2366_2406:Minimum number of stalls: 26 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:Initial stalls +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:[13.7098s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:[13.7639s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:[13.7894s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:[13.8518s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:OPTIMAL, wall time: 17.192614 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Minimum number of stalls: 15 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[5.2942s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[11.0254s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[12.2685s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[12.9325s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 1.18), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[15.4783s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 1.21), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[16.8116s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.25), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:FEASIBLE, wall time: 190.507689 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Booleans in result: 1040 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Minimum number of stalls: 12 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[3.1000s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[3.7434s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[3.9127s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[4.1777s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[5.4909s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[9.9210s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[11.5436s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 1.18), bound (Cycles ~ 22.0, IPC ~ 1.82) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[20.7095s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 1.21), bound (Cycles ~ 24.0, IPC ~ 1.67) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[32.6609s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.25), bound (Cycles ~ 26.0, IPC ~ 1.54) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:FEASIBLE, wall time: 197.847490 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Booleans in result: 1398 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Minimum number of stalls: 12 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[4.7322s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[5.2849s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[5.4503s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[5.7002s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[5.9103s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[6.1104s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[6.2777s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[6.4595s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:OPTIMAL, wall time: 102.611670 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Booleans in result: 1350 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Minimum number of stalls: 16 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.5549s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.6351s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.6735s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.6928s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.7221s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.7563s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.25), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.7819s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 1.43), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.8058s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 1.48), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.8826s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 1.54), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[4.4879s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 1.60), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:FEASIBLE, wall time: 190.246467 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Minimum number of stalls: 5 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[5.3082s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[5.9070s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[6.0400s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[6.6195s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[6.9419s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[7.0064s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[7.0604s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[7.1611s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[7.2656s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[7.4123s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[7.4925s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[7.5464s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[8.3241s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[12.0508s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 23.0, IPC ~ 1.74) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:FEASIBLE, wall time: 192.881267 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Booleans in result: 1493 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[2.9606s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[3.0498s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[3.0909s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[3.1876s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[3.2918s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[3.3890s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[3.5186s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[3.6779s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[3.7918s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[4.1668s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[4.2793s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[4.3818s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[4.5797s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:FEASIBLE, wall time: 197.559949 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Booleans in result: 1570 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:[0.9700s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:[1.0142s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:[1.0674s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:[1.1175s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:[1.1629s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:OPTIMAL, wall time: 5.986123 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Minimum number of stalls: 15 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[6.3819s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[6.4139s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.25), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:OPTIMAL, wall time: 133.002489 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Booleans in result: 1056 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Minimum number of stalls: 12 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[1.5561s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[1.6535s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[1.7357s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[1.7656s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 1.43), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[2.5867s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 1.48), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[3.2678s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 1.54), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[6.4129s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 1.60), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[143.4790s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 24.0, IPC ~ 1.67), bound (Cycles ~ 24.0, IPC ~ 1.67) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:OPTIMAL, wall time: 148.983930 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Minimum number of stalls: 4 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[1.9485s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[1.9735s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[1.9988s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.0235s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.0509s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.0798s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.1081s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.1381s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.1631s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.1904s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.2170s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.2400s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.2690s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.3016s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.3237s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.3467s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 1.18), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.3780s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 1.21), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.4047s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.25), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[2.5117s]: Found 19 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 1.29), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:FEASIBLE, wall time: 194.914939 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Minimum number of stalls: 11 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:UNKNOWN, wall time: 149.970514 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[4.3633s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.48), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[4.4741s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.48), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[4.5982s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.49), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[4.7970s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.49), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.0399s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.50), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.3718s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.62), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.4741s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 64.0, IPC ~ 0.62), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.5311s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.63), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.5696s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.65), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.6180s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 61.0, IPC ~ 0.66), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.6796s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 59.0, IPC ~ 0.68), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.7109s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.69), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.7772s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.70), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.8545s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.71), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.9310s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.73), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.0057s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 54.0, IPC ~ 0.74), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.0407s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.0753s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.1074s]: Found 19 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.1441s]: Found 20 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.1868s]: Found 21 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.2231s]: Found 22 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.2715s]: Found 23 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.2795s]: Found 24 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.3536s]: Found 25 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.4042s]: Found 26 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.4380s]: Found 27 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[76.9313s]: Found 28 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 25.0, IPC ~ 1.60) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:OPTIMAL, wall time: 155.100462 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.6810s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.7075s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.7665s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.7883s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.8098s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.8309s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.8658s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.8902s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.9110s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.9441s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.9705s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[67.9935s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[68.0145s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[68.0596s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 1.29), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[68.0811s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 1.33), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[68.1191s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 1.38), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[71.9982s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 1.43), bound (Cycles ~ 27.0, IPC ~ 1.48) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:OPTIMAL, wall time: 80.925153 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Booleans in result: 777 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Minimum number of stalls: 8 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[4.3511s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[4.5332s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[4.5737s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[4.6048s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[4.7292s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[4.7890s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[4.8612s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[4.9570s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[5.0651s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[5.1850s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[5.3884s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[5.5825s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[6.3074s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[6.4543s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[10.1048s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[141.8688s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 35.0, IPC ~ 1.14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:FEASIBLE, wall time: 183.252640 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Minimum number of stalls: 16 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:INFEASIBLE, wall time: 0.210972 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:INFEASIBLE, wall time: 0.207108 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Attempt optimization with max 128 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:[5.5486s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 103.0, IPC ~ 0.39), bound (Cycles ~ 55.0, IPC ~ 0.73) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:[6.9843s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 102.0, IPC ~ 0.39), bound (Cycles ~ 56.0, IPC ~ 0.71) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:OPTIMAL, wall time: 8.476944 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Booleans in result: 1144 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Minimum number of stalls: 82 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.6046s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.6311s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.6554s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.6801s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.6982s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.7194s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.7428s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.7667s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.7897s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.8159s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.8427s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.8690s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.8962s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.9227s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.9465s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.9702s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:FEASIBLE, wall time: 189.973323 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Minimum number of stalls: 15 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:INFEASIBLE, wall time: 2.557485 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[92.8895s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.48), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[102.9396s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.53), bound (Cycles ~ 60.0, IPC ~ 0.67) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[103.1938s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.67), bound (Cycles ~ 60.0, IPC ~ 0.67) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:OPTIMAL, wall time: 119.027594 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Booleans in result: 1380 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Minimum number of stalls: 40 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[103.9487s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[103.9849s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[104.0467s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[104.1078s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[104.1689s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[104.2148s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[104.2559s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[104.3109s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[104.3486s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[108.0832s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:FEASIBLE, wall time: 198.811526 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Minimum number of stalls: 21 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.6933s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.8723s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.9652s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[3.0534s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[3.0768s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[3.1839s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[3.2931s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[3.4521s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[3.4671s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.05), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[3.6204s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.08), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[3.7709s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.11), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[3.9232s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.14), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[4.1092s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.17), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[4.2596s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 1.21), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[4.3962s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 1.24), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:OPTIMAL, wall time: 167.175473 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Minimum number of stalls: 12 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[5.2730s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[7.1332s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[7.5188s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[8.4885s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 22.0, IPC ~ 1.82) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[12.3590s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 23.0, IPC ~ 1.74) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[12.4281s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 23.0, IPC ~ 1.74) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[17.7371s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 23.0, IPC ~ 1.74) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[64.1555s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 26.0, IPC ~ 1.54) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:FEASIBLE, wall time: 193.044911 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Booleans in result: 1205 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ******************...................... (18) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:[0.9528s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 24.0, IPC ~ 1.67) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:[1.0027s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 24.0, IPC ~ 1.67) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:OPTIMAL, wall time: 4.022590 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Booleans in result: 738 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.0_40:Minimum number of stalls: 15 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[2.3549s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[2.4005s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[2.4686s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[2.5008s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[2.5703s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[2.6726s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[2.7862s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[3.0176s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[4.9182s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 1.18), bound (Cycles ~ 22.0, IPC ~ 1.82) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:[5.0780s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.25), bound (Cycles ~ 22.0, IPC ~ 1.82) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:OPTIMAL, wall time: 64.073569 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Booleans in result: 1040 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.120_160:Minimum number of stalls: 12 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.0602s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.0913s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.1901s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.2478s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.2873s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.3120s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.3380s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.3641s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.3965s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.4259s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.4605s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[2.4924s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[3.3065s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[3.8257s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[4.3009s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[4.4876s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 1.18), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[4.6646s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 1.21), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:[8.3005s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.25), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:FEASIBLE, wall time: 190.426725 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.241_281:Minimum number of stalls: 12 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[2.4510s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[2.5242s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[2.5949s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[2.6725s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[2.7383s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[2.7973s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[2.8760s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[2.9427s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[2.9967s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[3.0782s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[3.1391s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:[3.2000s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:FEASIBLE, wall time: 192.000667 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.361_401:Minimum number of stalls: 16 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.4284s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.4774s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.5249s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.5732s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:[1.6154s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 1.60), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:FEASIBLE, wall time: 189.098439 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.481_521:Minimum number of stalls: 5 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[5.2853s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[5.5158s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[5.6672s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[5.8890s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[6.0282s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[6.0666s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[6.1141s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[6.1518s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[6.2421s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[6.3742s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[6.6934s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[7.4022s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:[17.7911s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 25.0, IPC ~ 1.60) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:FEASIBLE, wall time: 192.075274 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Booleans in result: 1493 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.602_642:Minimum number of stalls: 18 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[51.5307s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[51.7043s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[51.8240s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[52.0665s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[52.1930s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[52.3268s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[52.4092s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[52.4927s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[52.5878s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[52.7209s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[52.7845s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:[52.9147s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:FEASIBLE, wall time: 195.118852 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.722_762:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:[1.2362s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:[1.3803s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:OPTIMAL, wall time: 3.270571 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.842_882:Minimum number of stalls: 15 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[2.5696s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[2.6280s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[2.6883s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[2.7489s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[2.8011s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[2.8378s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[2.8744s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[2.9172s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[2.9540s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[2.9952s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[3.0388s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[3.0815s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[3.1187s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[3.1705s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[3.2085s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[3.2428s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 1.18), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[3.2898s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 1.21), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:[3.3295s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.25), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:OPTIMAL, wall time: 78.440820 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.962_1002:Minimum number of stalls: 12 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.1487s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.2849s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.4231s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.4755s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.5434s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.5908s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.6354s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.6845s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.7481s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.8711s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.9531s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[15.9671s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 1.54), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[18.2229s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 25.0, IPC ~ 1.60), bound (Cycles ~ 22.0, IPC ~ 1.82) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:[20.6624s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 24.0, IPC ~ 1.67), bound (Cycles ~ 24.0, IPC ~ 1.67) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:OPTIMAL, wall time: 23.992375 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Booleans in result: 968 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1083_1123:Minimum number of stalls: 4 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[3.8474s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[4.3640s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[4.8112s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[5.2127s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[5.3261s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[5.4455s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[5.5482s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[5.6962s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[5.8283s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 1.21), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[5.9869s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.25), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:[6.1686s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 1.29), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:FEASIBLE, wall time: 189.796121 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Booleans in result: 1235 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1203_1243:Minimum number of stalls: 11 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.3039s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.77), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.4394s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.5867s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.7201s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[5.9342s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.0811s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.2595s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.2987s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.3387s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.3793s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[6.4193s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[11.7676s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 22.0, IPC ~ 1.82) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:[54.3236s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 26.0, IPC ~ 1.54) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:OPTIMAL, wall time: 175.057968 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Booleans in result: 1521 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1323_1363:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[19.5422s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[19.6028s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[19.6733s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[19.7302s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[19.7883s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[19.8444s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[19.9088s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[19.9631s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[20.0308s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[20.0886s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[20.1618s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 1.18), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[20.2437s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 1.21), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[20.3146s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.25), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[20.4069s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 1.29), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[20.5260s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 1.33), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[21.3753s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 1.38), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:[21.8911s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 1.43), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:OPTIMAL, wall time: 112.600779 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1444_1484:Minimum number of stalls: 8 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[23.3714s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[23.4339s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[23.4725s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[23.5089s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[23.5368s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[23.6842s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[23.8837s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[23.9816s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[24.0070s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[24.0354s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[24.0782s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[24.1038s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[24.1379s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[27.0453s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.08), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:[29.3693s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:FEASIBLE, wall time: 184.814993 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Booleans in result: 1086 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1564_1604:Minimum number of stalls: 16 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:INFEASIBLE, wall time: 0.203833 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:INFEASIBLE, wall time: 0.184040 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Attempt optimization with max 128 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:[8.5055s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 104.0, IPC ~ 0.38), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:[8.9244s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 103.0, IPC ~ 0.39), bound (Cycles ~ 55.0, IPC ~ 0.73) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:[9.1301s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 102.0, IPC ~ 0.39), bound (Cycles ~ 55.0, IPC ~ 0.73) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:OPTIMAL, wall time: 15.959020 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Booleans in result: 1156 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1684_1724:Minimum number of stalls: 82 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.2289s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:[4.3033s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.14), bound (Cycles ~ 20.0, IPC ~ 2.00) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:OPTIMAL, wall time: 190.465282 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Booleans in result: 0 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1805_1845:Minimum number of stalls: 15 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:INFEASIBLE, wall time: 0.787772 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[47.0836s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.48), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[52.3747s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.49), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[54.5911s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.49), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[55.7804s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.50), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[56.9661s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.51), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[58.9395s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.51), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[60.5594s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.52), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[62.1803s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 76.0, IPC ~ 0.53), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[62.9673s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.56), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[64.8590s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.57), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[66.0370s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.61), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[66.9314s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 63.0, IPC ~ 0.63), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[68.9435s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 62.0, IPC ~ 0.65), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:[69.9957s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 60.0, IPC ~ 0.67), bound (Cycles ~ 59.0, IPC ~ 0.68) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:OPTIMAL, wall time: 89.544644 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Booleans in result: 1380 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.1925_1965:Minimum number of stalls: 40 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[6.2016s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[7.1130s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[7.2086s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[7.2622s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[7.5963s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[7.9261s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:[8.9193s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:FEASIBLE, wall time: 195.416712 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Booleans in result: 1486 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2045_2085:Minimum number of stalls: 21 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.2644s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 53.0, IPC ~ 0.77), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.2953s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.79), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.3211s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.3471s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.3713s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.4163s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.4388s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.4747s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.4984s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.98), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.5216s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.5473s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.02), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.5720s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.05), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.6016s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.08), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.6473s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.11), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.6816s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.14), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.7209s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.17), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[2.7472s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 34.0, IPC ~ 1.21), bound (Cycles ~ 21.0, IPC ~ 1.95) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:[4.7417s]: Found 18 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 1.24), bound (Cycles ~ 22.0, IPC ~ 1.86) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:OPTIMAL, wall time: 72.173840 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Booleans in result: 1260 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2165_2206:Minimum number of stalls: 12 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Setting timeout of 180 seconds... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[69.4262s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[69.9500s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.82), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[70.0232s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.83), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[70.2052s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[70.4684s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[70.7034s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[70.9509s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[72.0924s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[76.4193s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.90) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[80.0790s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.98), bound (Cycles ~ 22.0, IPC ~ 1.82) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:[131.2422s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 1.00), bound (Cycles ~ 27.0, IPC ~ 1.48) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:FEASIBLE, wall time: 191.575739 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Booleans in result: 1140 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326.selfcheck:OK! +WARNING:ntt_dilithium_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.2286_2326:Minimum number of stalls: 20 +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 0- 48]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 48- 96]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[ 96-144]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[144-192]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[192-240]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[240-288]: ***********************................. (23) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[288-336]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[336-384]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[384-433]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[433-481]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[481-529]: **************.......................... (14) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[529-577]: **************************.............. (26) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[577-625]: *************************............... (25) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[625-673]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[673-721]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[721-769]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[769-818]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[818-866]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[866-914]: ****************************............ (28) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[914-962]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[962-1010]: *****************************........... (29) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1010-1058]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1058-1106]: ********************.................... (20) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1106-1154]: *********************................... (21) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1154-1203]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1203-1251]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1251-1299]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1299-1347]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1347-1395]: *******************************......... (31) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1395-1443]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1443-1491]: *******************..................... (19) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1491-1539]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1539-1587]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1587-1636]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1636-1684]: *************************************... (37) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1684-1732]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1732-1780]: ***********************************..... (35) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1780-1828]: ***************************............. (27) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1828-1876]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1876-1924]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1924-1972]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[1972-2021]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2021-2069]: **************************************.. (38) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2069-2117]: ********************************........ (32) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2117-2165]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2165-2213]: ************************................ (24) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2213-2261]: *********************************....... (33) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2261-2309]: ******************************.......... (30) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2309-2357]: ************************************.... (36) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split:[2357-2406]: **********************************...... (34) +INFO:ntt_dilithium_rvv_vlen128_c908.start.split.split_heuristic_full:OK! +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Perform internal binary search for minimal number of stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 32 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:INFEASIBLE, wall time: 2786.434916 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 64 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:INFEASIBLE, wall time: 2782.304547 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 128 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:INFEASIBLE, wall time: 7673.477641 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 256 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:INFEASIBLE, wall time: 23711.138000 s +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Attempt optimization with max 512 stalls... +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Objective: minimize cycles +INFO:ntt_dilithium_rvv_vlen128_c908.start.split_estimtate_perf:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +malloc(): unaligned tcache chunk detected diff --git a/rvv_run_logs/ntt_kyber_rvv_vlen128_c908.log b/rvv_run_logs/ntt_kyber_rvv_vlen128_c908.log new file mode 100644 index 000000000..43cef5a77 --- /dev/null +++ b/rvv_run_logs/ntt_kyber_rvv_vlen128_c908.log @@ -0,0 +1,3249 @@ +* Example: ntt_kyber_rvv_vlen128_c908... +INFO:ntt_kyber_rvv_vlen128_c908.start:SLOTHY version: unknown +INFO:ntt_kyber_rvv_vlen128_c908:Instructions in body: 778 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:INFEASIBLE, wall time: 0.225092 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:INFEASIBLE, wall time: 0.960161 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[8.9006s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 91.0, IPC ~ 0.43), bound (Cycles ~ 46.0, IPC ~ 0.85) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[8.9246s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 90.0, IPC ~ 0.43), bound (Cycles ~ 46.0, IPC ~ 0.85) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[8.9599s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 89.0, IPC ~ 0.44), bound (Cycles ~ 48.0, IPC ~ 0.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:OPTIMAL, wall time: 9.976954 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Minimum number of stalls: 69 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:INFEASIBLE, wall time: 0.069534 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:INFEASIBLE, wall time: 2.290764 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:INFEASIBLE, wall time: 14.586390 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 256 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[6.1556s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 169.0, IPC ~ 0.23), bound (Cycles ~ 60.0, IPC ~ 0.65) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[9.2635s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 168.0, IPC ~ 0.23), bound (Cycles ~ 61.0, IPC ~ 0.64) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[10.8811s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 167.0, IPC ~ 0.23), bound (Cycles ~ 62.0, IPC ~ 0.63) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[12.5478s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 154.0, IPC ~ 0.25), bound (Cycles ~ 63.0, IPC ~ 0.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:OPTIMAL, wall time: 199.721093 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Booleans in result: 379 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Minimum number of stalls: 134 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:INFEASIBLE, wall time: 4.338019 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:INFEASIBLE, wall time: 2.808815 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[1.9731s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 109.0, IPC ~ 0.36), bound (Cycles ~ 98.0, IPC ~ 0.40) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[2.0398s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 107.0, IPC ~ 0.36), bound (Cycles ~ 98.0, IPC ~ 0.40) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[2.0561s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 105.0, IPC ~ 0.37), bound (Cycles ~ 98.0, IPC ~ 0.40) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:OPTIMAL, wall time: 3.547386 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Minimum number of stalls: 85 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:INFEASIBLE, wall time: 2.811876 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:INFEASIBLE, wall time: 2.565744 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:[41.7752s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 97.0, IPC ~ 0.40), bound (Cycles ~ 94.0, IPC ~ 0.41) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:OPTIMAL, wall time: 42.730489 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Minimum number of stalls: 77 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[3.4915s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.95), bound (Cycles ~ 40.0, IPC ~ 0.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:OPTIMAL, wall time: 3.724549 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Booleans in result: 415 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Minimum number of stalls: 21 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:INFEASIBLE, wall time: 0.535532 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[3.5011s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.48), bound (Cycles ~ 76.0, IPC ~ 0.51) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[3.5998s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.49), bound (Cycles ~ 79.0, IPC ~ 0.49) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[3.6284s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.49), bound (Cycles ~ 79.0, IPC ~ 0.49) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:OPTIMAL, wall time: 3.900039 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Minimum number of stalls: 59 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:INFEASIBLE, wall time: 4.870576 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[3.2246s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.67), bound (Cycles ~ 56.0, IPC ~ 0.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:OPTIMAL, wall time: 3.914049 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Booleans in result: 632 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Minimum number of stalls: 38 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[15.6364s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 40.0, IPC ~ 0.97) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:OPTIMAL, wall time: 16.592572 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Minimum number of stalls: 20 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[5.3934s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 39.0, IPC ~ 1.00) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[5.4206s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.95), bound (Cycles ~ 39.0, IPC ~ 1.00) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[5.4326s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 39.0, IPC ~ 1.00) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[5.4430s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 39.0, IPC ~ 1.00) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:OPTIMAL, wall time: 6.126206 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Minimum number of stalls: 19 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[24.3981s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 42.0, IPC ~ 0.93) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:OPTIMAL, wall time: 25.258598 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Minimum number of stalls: 23 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:INFEASIBLE, wall time: 0.489857 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:INFEASIBLE, wall time: 1.352459 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[31.3365s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 107.0, IPC ~ 0.36), bound (Cycles ~ 49.0, IPC ~ 0.80) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[31.3649s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 104.0, IPC ~ 0.38), bound (Cycles ~ 49.0, IPC ~ 0.80) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[31.4133s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 103.0, IPC ~ 0.38), bound (Cycles ~ 49.0, IPC ~ 0.80) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[31.4919s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 101.0, IPC ~ 0.39), bound (Cycles ~ 49.0, IPC ~ 0.80) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[31.9690s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 92.0, IPC ~ 0.42), bound (Cycles ~ 49.0, IPC ~ 0.80) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:OPTIMAL, wall time: 32.983950 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Minimum number of stalls: 72 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:INFEASIBLE, wall time: 0.136101 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:INFEASIBLE, wall time: 0.259539 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[31.1457s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 113.0, IPC ~ 0.35), bound (Cycles ~ 86.0, IPC ~ 0.45) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:OPTIMAL, wall time: 40.999628 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Booleans in result: 500 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Minimum number of stalls: 93 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:INFEASIBLE, wall time: 1.176333 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:INFEASIBLE, wall time: 6.245589 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:[36.4005s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 100.0, IPC ~ 0.39), bound (Cycles ~ 96.0, IPC ~ 0.41) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:[36.4168s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 99.0, IPC ~ 0.39), bound (Cycles ~ 99.0, IPC ~ 0.39) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:OPTIMAL, wall time: 37.149818 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Minimum number of stalls: 79 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:INFEASIBLE, wall time: 1.532274 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[2.4626s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 58.0, IPC ~ 0.67), bound (Cycles ~ 53.0, IPC ~ 0.74) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[2.4705s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 57.0, IPC ~ 0.68), bound (Cycles ~ 53.0, IPC ~ 0.74) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[2.4745s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 56.0, IPC ~ 0.70), bound (Cycles ~ 55.0, IPC ~ 0.71) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[2.4769s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 55.0, IPC ~ 0.71), bound (Cycles ~ 55.0, IPC ~ 0.71) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:OPTIMAL, wall time: 3.681784 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Booleans in result: 659 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Minimum number of stalls: 35 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:INFEASIBLE, wall time: 0.305792 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[2.0303s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.56), bound (Cycles ~ 65.0, IPC ~ 0.60) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[2.0475s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.57), bound (Cycles ~ 66.0, IPC ~ 0.59) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[2.0578s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 68.0, IPC ~ 0.57), bound (Cycles ~ 68.0, IPC ~ 0.57) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:OPTIMAL, wall time: 2.768337 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Minimum number of stalls: 48 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:INFEASIBLE, wall time: 0.243226 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:[1.6473s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.53), bound (Cycles ~ 68.0, IPC ~ 0.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:[1.6643s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.54), bound (Cycles ~ 70.0, IPC ~ 0.54) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:[1.6729s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.54), bound (Cycles ~ 70.0, IPC ~ 0.54) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:OPTIMAL, wall time: 1.918500 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Minimum number of stalls: 51 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:[1.0794s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.93), bound (Cycles ~ 40.0, IPC ~ 0.97) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:[1.0864s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 40.0, IPC ~ 0.97) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:OPTIMAL, wall time: 2.020038 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Minimum number of stalls: 20 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[1.3610s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 39.0, IPC ~ 1.00) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[1.3786s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 39.0, IPC ~ 1.00) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:OPTIMAL, wall time: 2.214842 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Minimum number of stalls: 19 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[39.2539s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 42.0, IPC ~ 0.93) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:OPTIMAL, wall time: 40.703263 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Minimum number of stalls: 23 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[40.1460s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.95), bound (Cycles ~ 34.0, IPC ~ 1.15) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[40.1596s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 40.0, IPC ~ 0.97) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:OPTIMAL, wall time: 40.870872 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Minimum number of stalls: 20 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:Initial stalls +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:INFEASIBLE, wall time: 2.884459 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[2.5919s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.46), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[3.5589s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.47), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[3.6452s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 81.0, IPC ~ 0.48), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[3.9469s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.49), bound (Cycles ~ 28.0, IPC ~ 1.39) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[4.0521s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 78.0, IPC ~ 0.50), bound (Cycles ~ 28.0, IPC ~ 1.39) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[4.2933s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.51), bound (Cycles ~ 28.0, IPC ~ 1.39) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[4.4368s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.52), bound (Cycles ~ 28.0, IPC ~ 1.39) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[5.0096s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.53), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[5.0673s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 73.0, IPC ~ 0.53), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[5.1854s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 72.0, IPC ~ 0.54), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[5.2470s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 71.0, IPC ~ 0.55), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[5.3383s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.56), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[5.4192s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 67.0, IPC ~ 0.58), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[5.4851s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.60), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:OPTIMAL, wall time: 6.039438 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Booleans in result: 297 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Minimum number of stalls: 45 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:INFEASIBLE, wall time: 0.466701 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:INFEASIBLE, wall time: 9.313434 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:INFEASIBLE, wall time: 5.237670 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 256 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[46.6459s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 157.0, IPC ~ 0.25), bound (Cycles ~ 112.0, IPC ~ 0.35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[65.1969s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 156.0, IPC ~ 0.25), bound (Cycles ~ 112.0, IPC ~ 0.35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[69.7242s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 155.0, IPC ~ 0.25), bound (Cycles ~ 112.0, IPC ~ 0.35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[71.0552s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 153.0, IPC ~ 0.25), bound (Cycles ~ 112.0, IPC ~ 0.35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:FEASIBLE, wall time: 303.446450 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Booleans in result: 1030 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Minimum number of stalls: 133 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:INFEASIBLE, wall time: 1.941710 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:INFEASIBLE, wall time: 5.163326 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[91.4292s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 148.0, IPC ~ 0.26), bound (Cycles ~ 41.0, IPC ~ 0.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[91.8602s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 146.0, IPC ~ 0.27), bound (Cycles ~ 41.0, IPC ~ 0.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[92.1452s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 142.0, IPC ~ 0.27), bound (Cycles ~ 41.0, IPC ~ 0.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[92.2135s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 140.0, IPC ~ 0.28), bound (Cycles ~ 41.0, IPC ~ 0.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[92.4058s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 136.0, IPC ~ 0.29), bound (Cycles ~ 41.0, IPC ~ 0.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[92.5391s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 106.0, IPC ~ 0.37), bound (Cycles ~ 41.0, IPC ~ 0.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[95.6903s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 105.0, IPC ~ 0.37), bound (Cycles ~ 56.0, IPC ~ 0.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:OPTIMAL, wall time: 101.604904 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Booleans in result: 1141 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Minimum number of stalls: 85 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:INFEASIBLE, wall time: 0.299859 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:INFEASIBLE, wall time: 0.216034 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:[8.3142s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 95.0, IPC ~ 0.41), bound (Cycles ~ 51.0, IPC ~ 0.76) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:OPTIMAL, wall time: 12.884590 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Booleans in result: 1022 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Minimum number of stalls: 75 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[4.7149s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.75), bound (Cycles ~ 19.0, IPC ~ 2.00) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[4.9848s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.90) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[5.9458s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.84), bound (Cycles ~ 21.0, IPC ~ 1.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[6.1921s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.88), bound (Cycles ~ 21.0, IPC ~ 1.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[8.0046s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.90), bound (Cycles ~ 21.0, IPC ~ 1.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[8.3180s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[9.8954s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[24.2508s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.97), bound (Cycles ~ 23.0, IPC ~ 1.65) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[31.7075s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.00), bound (Cycles ~ 23.0, IPC ~ 1.65) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:OPTIMAL, wall time: 108.691081 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Booleans in result: 1417 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Minimum number of stalls: 19 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:INFEASIBLE, wall time: 0.208353 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[4.2255s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.46), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[4.5026s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 83.0, IPC ~ 0.47), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[5.1536s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.49), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[5.6955s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 77.0, IPC ~ 0.51), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[6.0974s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.53), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[6.1220s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 70.0, IPC ~ 0.56), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[6.9292s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 69.0, IPC ~ 0.57), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[8.4513s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.59), bound (Cycles ~ 66.0, IPC ~ 0.59) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Closer than 0 stalls to theoretical optimum... stop +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:OPTIMAL, wall time: 10.260247 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Booleans in result: 1101 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Minimum number of stalls: 46 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[5.8496s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[8.2743s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[8.5261s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[12.9510s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[16.6426s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 24.0, IPC ~ 1.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[44.9207s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 25.0, IPC ~ 1.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[57.0631s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 26.0, IPC ~ 1.50) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:FEASIBLE, wall time: 307.423555 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Minimum number of stalls: 23 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[1.9683s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[1.9977s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.0294s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.0504s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.0730s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.1063s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.1274s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.1512s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.1741s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.1981s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.4965s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[14.8507s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.03), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:OPTIMAL, wall time: 308.602663 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Booleans in result: 1191 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Minimum number of stalls: 18 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[3.4334s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[3.7859s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[3.8867s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.78), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[4.0077s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[4.1078s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[4.2221s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[4.3594s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[4.5835s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[4.7632s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[4.8916s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[5.1687s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[5.3494s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.03), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[13.1376s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.05), bound (Cycles ~ 24.0, IPC ~ 1.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:OPTIMAL, wall time: 173.280683 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Booleans in result: 1232 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Minimum number of stalls: 17 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[5.4153s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[7.6451s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 22.0, IPC ~ 1.77) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[8.0941s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 22.0, IPC ~ 1.77) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:OPTIMAL, wall time: 213.306758 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Booleans in result: 1422 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Minimum number of stalls: 19 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:INFEASIBLE, wall time: 3.228915 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:INFEASIBLE, wall time: 15.650822 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[157.1233s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 143.0, IPC ~ 0.27), bound (Cycles ~ 48.0, IPC ~ 0.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[157.8841s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 142.0, IPC ~ 0.27), bound (Cycles ~ 48.0, IPC ~ 0.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[158.0360s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 137.0, IPC ~ 0.28), bound (Cycles ~ 48.0, IPC ~ 0.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[158.5670s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 136.0, IPC ~ 0.29), bound (Cycles ~ 48.0, IPC ~ 0.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[158.7525s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 102.0, IPC ~ 0.38), bound (Cycles ~ 48.0, IPC ~ 0.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[159.5187s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 94.0, IPC ~ 0.41), bound (Cycles ~ 48.0, IPC ~ 0.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[161.6216s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 91.0, IPC ~ 0.43), bound (Cycles ~ 48.0, IPC ~ 0.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:FEASIBLE, wall time: 313.005583 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Booleans in result: 1824 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Minimum number of stalls: 71 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:INFEASIBLE, wall time: 0.175012 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:INFEASIBLE, wall time: 0.172878 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[33.9211s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 119.0, IPC ~ 0.33), bound (Cycles ~ 63.0, IPC ~ 0.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[36.5304s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 117.0, IPC ~ 0.33), bound (Cycles ~ 64.0, IPC ~ 0.61) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[38.7734s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 115.0, IPC ~ 0.34), bound (Cycles ~ 64.0, IPC ~ 0.61) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[40.5445s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 113.0, IPC ~ 0.35), bound (Cycles ~ 66.0, IPC ~ 0.59) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:FEASIBLE, wall time: 309.349142 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Booleans in result: 1157 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Minimum number of stalls: 93 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:INFEASIBLE, wall time: 8.180657 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:INFEASIBLE, wall time: 0.272911 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:[122.8635s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 108.0, IPC ~ 0.36), bound (Cycles ~ 39.0, IPC ~ 1.00) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:[133.1339s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 99.0, IPC ~ 0.39), bound (Cycles ~ 54.0, IPC ~ 0.72) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:OPTIMAL, wall time: 139.355767 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Booleans in result: 1042 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Minimum number of stalls: 79 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[97.4201s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[99.2625s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[99.5560s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[104.2727s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.85), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[107.2060s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[117.5060s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 24.0, IPC ~ 1.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[147.9170s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 26.0, IPC ~ 1.50) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:OPTIMAL, wall time: 177.548616 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Booleans in result: 1334 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Minimum number of stalls: 23 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[123.9492s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[129.2767s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[131.7643s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.78), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[132.8138s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.80), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[132.9448s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:OPTIMAL, wall time: 146.051778 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Minimum number of stalls: 28 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:[48.8701s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.75), bound (Cycles ~ 19.0, IPC ~ 2.00) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:OPTIMAL, wall time: 52.852881 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Minimum number of stalls: 32 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:[94.4574s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:[94.4926s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:FEASIBLE, wall time: 312.295419 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Minimum number of stalls: 18 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[3.8631s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[3.9431s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[4.0307s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[4.1154s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[4.1948s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[4.2775s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[4.3620s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[4.4398s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[4.5106s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[4.5860s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[4.6581s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[5.4796s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[5.7781s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:OPTIMAL, wall time: 212.664774 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Booleans in result: 1519 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Minimum number of stalls: 19 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[49.8998s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 26.0, IPC ~ 1.50) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[50.5992s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 26.0, IPC ~ 1.50) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[53.1089s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.95), bound (Cycles ~ 26.0, IPC ~ 1.50) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[54.2540s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[54.5235s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:FEASIBLE, wall time: 304.186763 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Booleans in result: 1259 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Minimum number of stalls: 19 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: ************************.............. (24) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[38.7326s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[38.7844s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[38.8321s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[38.9464s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.1228s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.3386s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.3707s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.4005s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.4402s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.4953s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.5411s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.05), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.5783s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.08), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.6367s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.6438s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 1.30), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.7065s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 1.34), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.8064s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 1.44), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[39.9345s]: Found 17 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 1.50), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:OPTIMAL, wall time: 131.398033 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Minimum number of stalls: 6 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *****................................. (5) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *****************..................... (17) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: **************************............ (26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:INFEASIBLE, wall time: 20.234605 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[13.1868s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.46), bound (Cycles ~ 26.0, IPC ~ 1.50) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[13.9702s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 82.0, IPC ~ 0.48), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[14.2342s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 80.0, IPC ~ 0.49), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[14.6979s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 79.0, IPC ~ 0.49), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[16.3184s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 75.0, IPC ~ 0.52), bound (Cycles ~ 28.0, IPC ~ 1.39) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[19.5650s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 74.0, IPC ~ 0.53), bound (Cycles ~ 30.0, IPC ~ 1.30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[20.1053s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.59), bound (Cycles ~ 31.0, IPC ~ 1.26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:[20.6658s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 65.0, IPC ~ 0.60), bound (Cycles ~ 31.0, IPC ~ 1.26) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:OPTIMAL, wall time: 22.602184 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Booleans in result: 301 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.0_39:Minimum number of stalls: 45 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:INFEASIBLE, wall time: 0.674252 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:INFEASIBLE, wall time: 3.879640 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:INFEASIBLE, wall time: 11.027046 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Attempt optimization with max 256 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[31.1910s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 265.0, IPC ~ 0.15), bound (Cycles ~ 61.0, IPC ~ 0.64) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[40.7014s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 173.0, IPC ~ 0.23), bound (Cycles ~ 63.0, IPC ~ 0.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[44.6415s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 164.0, IPC ~ 0.24), bound (Cycles ~ 63.0, IPC ~ 0.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[51.7070s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 161.0, IPC ~ 0.24), bound (Cycles ~ 63.0, IPC ~ 0.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[59.1374s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 156.0, IPC ~ 0.25), bound (Cycles ~ 70.0, IPC ~ 0.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[70.8850s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 155.0, IPC ~ 0.25), bound (Cycles ~ 70.0, IPC ~ 0.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[75.2101s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 154.0, IPC ~ 0.25), bound (Cycles ~ 71.0, IPC ~ 0.55) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:[106.0611s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 153.0, IPC ~ 0.25), bound (Cycles ~ 79.0, IPC ~ 0.49) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:FEASIBLE, wall time: 307.489422 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Booleans in result: 3558 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.39_78:Minimum number of stalls: 133 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:INFEASIBLE, wall time: 0.319229 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:INFEASIBLE, wall time: 0.420216 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:[7.2564s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 105.0, IPC ~ 0.37), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:OPTIMAL, wall time: 11.646738 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Booleans in result: 1141 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.78_117:Minimum number of stalls: 85 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:INFEASIBLE, wall time: 0.278356 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:INFEASIBLE, wall time: 0.104429 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:[8.9464s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 95.0, IPC ~ 0.41), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:OPTIMAL, wall time: 9.458158 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Booleans in result: 1022 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.117_156:Minimum number of stalls: 75 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[3.6184s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.90) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[3.7622s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.90) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[3.8461s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 1.90) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[3.9743s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.79), bound (Cycles ~ 20.0, IPC ~ 1.90) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[4.0815s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 1.90) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[4.5782s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 1.90) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[5.3269s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 0.97), bound (Cycles ~ 21.0, IPC ~ 1.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:[7.5321s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.81) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:OPTIMAL, wall time: 192.291280 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Booleans in result: 1417 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.156_194:Minimum number of stalls: 19 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:INFEASIBLE, wall time: 0.281774 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[8.7237s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 84.0, IPC ~ 0.46), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:[25.1609s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 66.0, IPC ~ 0.59), bound (Cycles ~ 22.0, IPC ~ 1.77) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:OPTIMAL, wall time: 29.915352 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Booleans in result: 1101 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.194_233:Minimum number of stalls: 46 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[28.8111s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[28.9982s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[29.6674s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[30.0385s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.80), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[30.1779s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[30.3447s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 24.0, IPC ~ 1.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[31.2228s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 24.0, IPC ~ 1.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:[31.4150s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 24.0, IPC ~ 1.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:FEASIBLE, wall time: 302.306504 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Booleans in result: 1380 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.233_272:Minimum number of stalls: 23 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.6909s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.8261s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.8484s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.8730s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.8958s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.9185s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.9457s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[2.9815s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[3.5296s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[3.6884s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[3.7468s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[3.7754s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.95), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[3.8014s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[4.1610s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:[15.1949s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.03), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:FEASIBLE, wall time: 316.684039 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Booleans in result: 1248 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.272_311:Minimum number of stalls: 18 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[25.7539s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[25.8166s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[25.8764s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[25.9472s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[26.0012s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[26.0719s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[26.1531s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.85), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[26.2268s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[26.2948s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[26.4153s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[26.8397s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.93), bound (Cycles ~ 22.0, IPC ~ 1.77) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[26.9131s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.95), bound (Cycles ~ 22.0, IPC ~ 1.77) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[26.9512s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 22.0, IPC ~ 1.77) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[27.4456s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 23.0, IPC ~ 1.70) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[28.1861s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.03), bound (Cycles ~ 24.0, IPC ~ 1.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:[29.5976s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 37.0, IPC ~ 1.05), bound (Cycles ~ 24.0, IPC ~ 1.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:OPTIMAL, wall time: 97.056375 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.311_350:Minimum number of stalls: 17 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ***************************........... (27) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[69.1392s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[69.1845s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[69.2584s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[69.3216s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[69.3887s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[69.4260s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[69.4583s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.95), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[69.5477s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:[73.4927s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:OPTIMAL, wall time: 302.823779 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Booleans in result: 1422 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.350_389:Minimum number of stalls: 19 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: *********************................. (21) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:INFEASIBLE, wall time: 0.429563 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:INFEASIBLE, wall time: 4.692073 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[71.4206s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 141.0, IPC ~ 0.28), bound (Cycles ~ 51.0, IPC ~ 0.76) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[84.1146s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 95.0, IPC ~ 0.41), bound (Cycles ~ 51.0, IPC ~ 0.76) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[137.0164s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 94.0, IPC ~ 0.41), bound (Cycles ~ 52.0, IPC ~ 0.75) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[147.1373s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 92.0, IPC ~ 0.42), bound (Cycles ~ 52.0, IPC ~ 0.75) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:[157.0357s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 91.0, IPC ~ 0.43), bound (Cycles ~ 52.0, IPC ~ 0.75) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:FEASIBLE, wall time: 308.535294 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Booleans in result: 926 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.389_428:Minimum number of stalls: 71 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ***********************............... (23) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:INFEASIBLE, wall time: 0.200130 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:INFEASIBLE, wall time: 0.390344 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[4.4985s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 129.0, IPC ~ 0.30), bound (Cycles ~ 24.0, IPC ~ 1.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[4.6673s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 128.0, IPC ~ 0.30), bound (Cycles ~ 24.0, IPC ~ 1.62) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[4.8645s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 127.0, IPC ~ 0.31), bound (Cycles ~ 53.0, IPC ~ 0.74) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[4.9404s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 124.0, IPC ~ 0.31), bound (Cycles ~ 53.0, IPC ~ 0.74) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[5.1127s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 123.0, IPC ~ 0.32), bound (Cycles ~ 53.0, IPC ~ 0.74) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[7.5813s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 117.0, IPC ~ 0.33), bound (Cycles ~ 55.0, IPC ~ 0.71) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:[8.0770s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 113.0, IPC ~ 0.35), bound (Cycles ~ 55.0, IPC ~ 0.71) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:FEASIBLE, wall time: 308.694834 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.428_467:Minimum number of stalls: 93 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ***********************............... (23) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:INFEASIBLE, wall time: 3.715416 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Attempt optimization with max 64 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:INFEASIBLE, wall time: 0.147875 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Attempt optimization with max 128 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:[8.8644s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 99.0, IPC ~ 0.39), bound (Cycles ~ 54.0, IPC ~ 0.72) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:OPTIMAL, wall time: 14.856624 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Booleans in result: 1042 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.467_506:Minimum number of stalls: 79 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ***********************............... (23) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[15.7566s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 25.0, IPC ~ 1.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[16.5870s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 25.0, IPC ~ 1.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[16.7759s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.78), bound (Cycles ~ 25.0, IPC ~ 1.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[16.8115s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.80), bound (Cycles ~ 25.0, IPC ~ 1.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[16.8415s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 25.0, IPC ~ 1.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[17.0046s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 25.0, IPC ~ 1.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[18.8896s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.85), bound (Cycles ~ 25.0, IPC ~ 1.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[20.8213s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 25.0, IPC ~ 1.56) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[27.8645s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:[61.6505s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 29.0, IPC ~ 1.34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:OPTIMAL, wall time: 86.485772 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Booleans in result: 1334 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.506_545:Minimum number of stalls: 23 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ***********************............... (23) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[99.4951s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[99.6589s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[100.2794s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[100.3383s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:[100.4246s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 47.0, IPC ~ 0.83) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:OPTIMAL, wall time: 116.249133 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.545_584:Minimum number of stalls: 28 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ***********************............... (23) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:[2.6194s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.75), bound (Cycles ~ 19.0, IPC ~ 2.00) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:OPTIMAL, wall time: 5.503580 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.584_622:Minimum number of stalls: 32 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ***********************............... (23) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:[3.4495s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:[3.5089s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:[3.5759s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.78), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:[3.6239s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.80), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:[3.6710s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:[3.7206s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:OPTIMAL, wall time: 163.723396 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Booleans in result: 1175 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.622_661:Minimum number of stalls: 18 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ***********************............... (23) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[7.3650s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[7.8313s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 51.0, IPC ~ 0.76), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[7.8947s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 50.0, IPC ~ 0.78), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[8.1901s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[8.3696s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[8.4528s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 46.0, IPC ~ 0.85), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[8.5368s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[8.6149s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[8.7871s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 43.0, IPC ~ 0.91), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[8.8916s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.93), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:[9.3245s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 21.0, IPC ~ 1.86) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:OPTIMAL, wall time: 246.631100 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Booleans in result: 1519 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.661_700:Minimum number of stalls: 19 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ***********************............... (23) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: ******************.................... (18) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[9.9718s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 26.0, IPC ~ 1.50) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[12.2774s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 49.0, IPC ~ 0.80), bound (Cycles ~ 26.0, IPC ~ 1.50) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[12.5204s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 45.0, IPC ~ 0.87), bound (Cycles ~ 26.0, IPC ~ 1.50) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[12.8270s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 41.0, IPC ~ 0.95), bound (Cycles ~ 26.0, IPC ~ 1.50) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[13.2832s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 40.0, IPC ~ 0.97), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:[13.6197s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 39.0, IPC ~ 1.00), bound (Cycles ~ 27.0, IPC ~ 1.44) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:OPTIMAL, wall time: 96.977465 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Booleans in result: 1259 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.700_739:Minimum number of stalls: 19 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ***********************............... (23) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Perform internal binary search for minimal number of stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Attempt optimization with max 32 stalls... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Setting timeout of 300 seconds... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Objective: minimize cycles +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Invoking external constraint solver (OR-Tools CP-SAT v9.7.2996) ... +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[51.5104s]: Found 1 solutions so far... objective (minimize cycles): currently (Cycles ~ 52.0, IPC ~ 0.75), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[51.5366s]: Found 2 solutions so far... objective (minimize cycles): currently (Cycles ~ 48.0, IPC ~ 0.81), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[51.5865s]: Found 3 solutions so far... objective (minimize cycles): currently (Cycles ~ 47.0, IPC ~ 0.83), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[51.6393s]: Found 4 solutions so far... objective (minimize cycles): currently (Cycles ~ 44.0, IPC ~ 0.89), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[51.6566s]: Found 5 solutions so far... objective (minimize cycles): currently (Cycles ~ 42.0, IPC ~ 0.93), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[51.7274s]: Found 6 solutions so far... objective (minimize cycles): currently (Cycles ~ 38.0, IPC ~ 1.03), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[51.8000s]: Found 7 solutions so far... objective (minimize cycles): currently (Cycles ~ 36.0, IPC ~ 1.08), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[51.8638s]: Found 8 solutions so far... objective (minimize cycles): currently (Cycles ~ 35.0, IPC ~ 1.11), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[51.9054s]: Found 9 solutions so far... objective (minimize cycles): currently (Cycles ~ 33.0, IPC ~ 1.18), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[51.9717s]: Found 10 solutions so far... objective (minimize cycles): currently (Cycles ~ 32.0, IPC ~ 1.22), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[52.0241s]: Found 11 solutions so far... objective (minimize cycles): currently (Cycles ~ 31.0, IPC ~ 1.26), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[52.0878s]: Found 12 solutions so far... objective (minimize cycles): currently (Cycles ~ 30.0, IPC ~ 1.30), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[52.1380s]: Found 13 solutions so far... objective (minimize cycles): currently (Cycles ~ 29.0, IPC ~ 1.34), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[52.1860s]: Found 14 solutions so far... objective (minimize cycles): currently (Cycles ~ 28.0, IPC ~ 1.39), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[52.2887s]: Found 15 solutions so far... objective (minimize cycles): currently (Cycles ~ 27.0, IPC ~ 1.44), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:[52.3529s]: Found 16 solutions so far... objective (minimize cycles): currently (Cycles ~ 26.0, IPC ~ 1.50), bound (Cycles ~ 20.0, IPC ~ 1.95) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:OPTIMAL, wall time: 151.610732 s +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Booleans in result: 0 +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778.selfcheck:OK! +WARNING:ntt_kyber_rvv_vlen128_c908:LLVM (llvm-mc, llvm-nm, llvm-readobj) not found, disabling selftest. Consider installing LLVM. +INFO:ntt_kyber_rvv_vlen128_c908.start.split.739_778:Minimum number of stalls: 6 +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 0- 15]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 15- 31]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 31- 46]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 46- 62]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 62- 77]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 77- 93]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[ 93-108]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[108-124]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[124-140]: ******************************........ (30) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[140-155]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[155-171]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[171-186]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[186-202]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[202-217]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[217-233]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[233-248]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[248-264]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[264-280]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[280-295]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[295-311]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[311-326]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[326-342]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[342-357]: ************************************** (38) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[357-373]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[373-389]: ****************************.......... (28) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[389-404]: **********************................ (22) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[404-420]: ***********************............... (23) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[420-435]: *****************************......... (29) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[435-451]: ********************************...... (32) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[451-466]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[466-482]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[482-497]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[497-513]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[513-529]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[529-544]: ***********************************... (35) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[544-560]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[560-575]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[575-591]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[591-606]: **********************************.... (34) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[606-622]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[622-637]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[637-653]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[653-669]: *************************************. (37) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[669-684]: ************************************.. (36) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[684-700]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[700-715]: *********************************..... (33) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[715-731]: *******************************....... (31) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[731-746]: *******************................... (19) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[746-762]: ******................................ (6) +INFO:ntt_kyber_rvv_vlen128_c908.start.split:[762-778]: *******............................... (7) +INFO:ntt_kyber_rvv_vlen128_c908.start.split.split_heuristic_full:OK! diff --git a/rvv_run_logs/summary.txt b/rvv_run_logs/summary.txt new file mode 100644 index 000000000..b2b6eac07 --- /dev/null +++ b/rvv_run_logs/summary.txt @@ -0,0 +1 @@ +PASS ntt_kyber_rvv_vlen128_c908 11987s diff --git a/scripts/run_rvv_examples.sh b/scripts/run_rvv_examples.sh new file mode 100755 index 000000000..e3b60accc --- /dev/null +++ b/scripts/run_rvv_examples.sh @@ -0,0 +1,137 @@ +#!/usr/bin/env bash +# +# Run all SLOTHY examples whose name contains "rvv", in parallel. +# +# Each example is run as `python3 example.py --examples `. Jobs are +# distributed across cores, one example per worker. Per-example stdout/stderr +# is captured into a log directory, and a summary is printed at the end. +# +# Usage: +# scripts/run_rvv_examples.sh [-j N] [-r] [-- extra args passed to example.py] +# +# -j N Number of parallel jobs (default: number of cores). +# -r, --rerun-failed +# Re-run only the examples that failed in the previous run +# (read from rvv_run_logs/summary.txt). +# +# Examples: +# scripts/run_rvv_examples.sh +# scripts/run_rvv_examples.sh -j 4 +# scripts/run_rvv_examples.sh -r +# scripts/run_rvv_examples.sh -j 4 -- --timeout 300 + +set -u + +# Resolve repo root (this script lives in scripts/). +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +cd "$REPO_ROOT" + +# Defaults. +JOBS="$(nproc 2>/dev/null || echo 4)" +RERUN_FAILED=0 +EXTRA_ARGS=() + +# Parse args. +while [[ $# -gt 0 ]]; do + case "$1" in + -j) + JOBS="$2"; shift 2 ;; + -j*) + JOBS="${1#-j}"; shift ;; + -r|--rerun-failed) + RERUN_FAILED=1; shift ;; + --) + shift; EXTRA_ARGS=("$@"); break ;; + -h|--help) + sed -n '2,24p' "$0"; exit 0 ;; + *) + echo "Unknown argument: $1" >&2; exit 2 ;; + esac +done + +PYTHON="${PYTHON:-python3}" +LOG_DIR="$REPO_ROOT/rvv_run_logs" +SUMMARY="$LOG_DIR/summary.txt" + +if [[ $RERUN_FAILED -eq 1 ]]; then + # Re-run only the examples that failed in the previous run. + if [[ ! -f "$SUMMARY" ]]; then + echo "No previous summary at $SUMMARY; run without -r first." >&2 + exit 1 + fi + mapfile -t EXAMPLES < <(awk '/^FAIL/ {print $2}' "$SUMMARY") + if [[ ${#EXAMPLES[@]} -eq 0 ]]; then + echo "No failed examples in the previous run. Nothing to re-run." + exit 0 + fi +else + # Discover all example names containing "rvv" from example.py's help output. + mapfile -t EXAMPLES < <( + "$PYTHON" example.py --help 2>&1 \ + | tr ',' '\n' \ + | grep -i 'rvv' \ + | sed "s/[][' ]//g" \ + | grep -E '^[A-Za-z0-9_]+$' + ) + if [[ ${#EXAMPLES[@]} -eq 0 ]]; then + echo "No examples containing 'rvv' found." >&2 + exit 1 + fi +fi + +mkdir -p "$LOG_DIR" + +if [[ $RERUN_FAILED -eq 1 ]]; then + echo "Re-running ${#EXAMPLES[@]} previously failed examples with -j $JOBS." +else + echo "Found ${#EXAMPLES[@]} rvv examples. Running with -j $JOBS." +fi +echo "Logs: $LOG_DIR" +echo + +# Worker: run a single example, capture output, report status. +run_one() { + local name="$1" + local log="$LOG_DIR/${name}.log" + local start end rc + start=$SECONDS + if "$PYTHON" example.py --examples "$name" "${EXTRA_ARGS[@]}" >"$log" 2>&1; then + rc=0 + else + rc=$? + fi + end=$SECONDS + if [[ $rc -eq 0 ]]; then + printf 'PASS %-50s %4ds\n' "$name" "$((end - start))" + else + printf 'FAIL %-50s %4ds (rc=%d, see %s)\n' "$name" "$((end - start))" "$rc" "$log" + fi + return $rc +} +export -f run_one +export PYTHON LOG_DIR +# Export extra args for the subshells (bash arrays don't export; serialize). +export EXTRA_ARGS_STR="${EXTRA_ARGS[*]}" + +# xargs spawns subshells that don't inherit the EXTRA_ARGS bash array, so +# re-parse it inside each worker from the serialized string. +run_one_wrapper() { + # shellcheck disable=SC2206 + EXTRA_ARGS=($EXTRA_ARGS_STR) + run_one "$1" +} +export -f run_one_wrapper + +START_ALL=$SECONDS +printf '%s\n' "${EXAMPLES[@]}" \ + | xargs -P "$JOBS" -I{} bash -c 'run_one_wrapper "$@"' _ {} \ + | tee "$LOG_DIR/summary.txt" +END_ALL=$SECONDS + +echo +PASS=$(grep -c '^PASS' "$LOG_DIR/summary.txt" || true) +FAIL=$(grep -c '^FAIL' "$LOG_DIR/summary.txt" || true) +echo "Done in $((END_ALL - START_ALL))s: $PASS passed, $FAIL failed (of ${#EXAMPLES[@]})." + +[[ "$FAIL" -eq 0 ]] diff --git a/slothy/core/core.py b/slothy/core/core.py index c255535da..09612c17c 100644 --- a/slothy/core/core.py +++ b/slothy/core/core.py @@ -2642,39 +2642,55 @@ def _add_variables_functional_units(self): return for t in self._get_nodes(): - cycles_unit_occupied = self.target.get_inverse_throughput(t.inst) + tp = self.target.get_inverse_throughput(t.inst) + # The target may return a fixed int, or a callable mapping a choice + # (the list of units it occupies) to its inverse throughput -- so the + # *model* decides under which condition a different throughput applies. + throughput_for = tp if callable(tp) else (lambda _units, _tp=tp: _tp) units = self.target.get_units(t.inst) - if len(units) == 1: - if isinstance(units[0], list): + if len(units) == 1: # [[...]] + if isinstance(units[0], list): # [[U1, U2,...]] # multiple execution units in use + dur = throughput_for(units[0]) for unit in units[0]: t.exec_unit_choices = None t.exec = self._NewIntervalVar( - t.cycle_start_var, cycles_unit_occupied, t.cycle_end_var, "" - ) + t.cycle_start_var, dur, t.cycle_end_var, "" + ) # ensures instr start + inverse throughput == instr end self._model.intervals_for_unit[unit].append(t.exec) - else: + else: # [[U1]] t.exec_unit_choices = None unit = units[0] + dur = throughput_for([unit]) t.exec = self._NewIntervalVar( - t.cycle_start_var, cycles_unit_occupied, t.cycle_end_var, "" + t.cycle_start_var, dur, t.cycle_end_var, "" ) self._model.intervals_for_unit[unit].append(t.exec) - else: + else: # [[U1...], [U2...],...] t.unique_unit = False + # One BoolVar per *choice*, keyed by the (hashable) tuple of the + # choice's units. This keeps a multi-unit choice (e.g. + # (VEC0, VEC1), occupying both pipes at once) distinct from the + # single-unit choices (VEC0,) / (VEC1,) -- keying by unit would + # collide when a unit appears in several choices. t.exec_unit_choices = {} - for unit_choices in units: + for unit_choices in units: # combinations of Units inside list if not isinstance(unit_choices, list): - unit_choices = [unit_choices] + unit_choices = [unit_choices] # U1 -> [U1] + key = tuple(unit_choices) + choice_var = self._NewBoolVar(f"[{t.inst}].unit_choice.{key}") + t.exec_unit_choices[key] = choice_var + # When this choice is active the instruction occupies ALL of + # its units; one optional interval per unit, gated by the + # same choice_var. The model decides the per-choice duration. + dur = throughput_for(unit_choices) for unit in unit_choices: - unit_var = self._NewBoolVar(f"[{t.inst}].unit_choice.{unit}") - t.exec_unit_choices[unit] = unit_var t.exec = self._NewOptionalIntervalVar( t.cycle_start_var, - cycles_unit_occupied, + dur, t.cycle_end_var, - unit_var, - f"{t.varname}_usage_{unit}", + choice_var, + f"{t.varname}_usage_{key}_{unit}", ) self._model.intervals_for_unit[unit].append(t.exec) @@ -3613,20 +3629,57 @@ def _add_constraints_latencies(self): # be used as an alternative to the latency constraint. # # This mechanism is e.g. used to model very constrained forwarding paths - exception = latency[1] - latency = latency[0] - self._add_path_constraint_from( - t, - i.src, - [ + if len(latency) == 2: + exception = latency[1] + latency = latency[0] + self._add_path_constraint_from( + t, + i.src, + [ + lambda t=t, i=i, latency=latency: self._Add( + t.cycle_start_var >= i.src.cycle_start_var + latency + ), + lambda t=t, i=i, exception=exception: self._Add( + exception(i.src, t) + ), + ], + ) + elif len(latency) == 3 and latency[2] is True: + # Unlike the `len == 2` forwarding case (an optional + # alternative the solver may pick), here the standard latency + # is _always_ enforced as a lower bound and the exception + # (e.g. a doubled latency) is enforced only when its condition + # holds, reified via `OnlyEnforceIf`. Models a forced penalty. + exception = latency[1] + latency = latency[0] + # Standard latency: always (lower bound). + # TODO: this could also be modeled like above when we say latency*2 + # is the default case + # and the alternative is normal latency but then it must choose + # that the instr runs on both units + self._add_path_constraint( + t, + i.src, lambda t=t, i=i, latency=latency: self._Add( t.cycle_start_var >= i.src.cycle_start_var + latency ), - lambda t=t, i=i, exception=exception: self._Add( - exception(i.src, t) - ), - ], - ) + ) + # Doubled latency: only when the producer runs on a single + # pipe, i.e. when it did NOT pick the multi-unit choice. That + # choice is the `exec_unit_choices` entry whose tuple key holds + # more than one unit. Requires functional units to be modeled. + choices = getattr(i.src, "exec_unit_choices", None) or {} + both_var = next((v for k, v in choices.items() if len(k) > 1), None) + if both_var is not None: + self._add_path_constraint( + t, + i.src, + lambda t=t, i=i, exception=exception, both_var=both_var: self._Add( # noqa: E501 + exception(i.src, t) + ).OnlyEnforceIf( + both_var.Not() + ), + ) # ================================================================# # CONSTRAINTS (Functional correctness) # diff --git a/slothy/core/heuristics.py b/slothy/core/heuristics.py index 186dd22a1..3c3199ffe 100644 --- a/slothy/core/heuristics.py +++ b/slothy/core/heuristics.py @@ -961,15 +961,25 @@ def not_empty(x): conf2.constraints.allow_renaming = False conf2.constraints.allow_reordering = False conf2.variable_size = True - stall_res = Heuristics.optimize_binsearch( - res.code, logger.getChild("split_estimtate_perf"), conf2 - ) - if stall_res.success is False: - log.error( - "Stall-estimate for final code after split heuristic failed" - " -- should not happen? Maybe increase timeout?" - " Just returning the result without stall-estimate." + conf2.timeout = None + stall_res = None + try: + stall_res = Heuristics.optimize_binsearch( + res.code, logger.getChild("split_estimtate_perf"), conf2 + ) + except SlothyException: + log.warning( + "Performance estimate for final code after split heuristic" + " failed -- keeping the optimized code, but without a" + " stall/performance estimate." ) + if stall_res is None or stall_res.success is False: + if stall_res is not None: + log.warning( + "Stall-estimate for final code after split heuristic" + " failed -- returning the optimized result without" + " stall-estimate." + ) else: res2 = Result(conf2) res2.orig_code = orig_body diff --git a/slothy/targets/riscv/helpers/__init__.py b/slothy/targets/riscv/helpers/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/slothy/targets/riscv/helpers/cpi_import_helper.py b/slothy/targets/riscv/helpers/cpi_import_helper.py new file mode 100644 index 000000000..10964cd80 --- /dev/null +++ b/slothy/targets/riscv/helpers/cpi_import_helper.py @@ -0,0 +1,142 @@ +import pandas as pd +import os + +script_dir = os.path.dirname(os.path.abspath(__file__)) +ods_path = os.path.join(script_dir, "riscv_v_instr_benchmarks.ods") +table = pd.read_excel(ods_path, sheet_name="vl=VMAX tu mu", engine="odf") +two_units = {} +one_unit = {} +uncategorized = {} +missing = [] + +actual_instr = [ + "vle", + "vlse", + "vluxei", + "vloxei", + "vse", + "vsse", + "vsuxei", + "vsoxei", + "vadd.vv", + "vsub.vv", + "vrsub.vv", + "vand.vv", + "vor.vv", + "vxor.vv", + "vsll.vv", + "vsrl.vv", + "vmseq.vv", + "vmsne.vv", + "vmsltu.vv", + "vmslt.vv", + "vmsleu.vv", + "vmsle.vv", + "vminu.vv", + "vmin.vv", + "vmaxu.vv", + "vmax.vv", + "vmul.vv", + "vmulh.vv", + "vmulhu.vv", + "vmulhsu.vv", + "vdivu.vv", + "vdiv.vv", + "vremu.vv", + "vrem.vv", + "vmacc.vv", + "vnmsac.vv", + "vmadd.vv", + "vnmsub.vv", + "vadd.vx", + "vsub.vx", + "vrsub.vx", + "vand.vx", + "vor.vx", + "vxor.vx", + "vsll.vx", + "vsrl.vx", + "vmseq.vx", + "vmsne.vx", + "vmsltu.vx", + "vmslt.vx", + "vmsleu.vx", + "vmsle.vx", + "vmsgtu.vx", + "vmsgt.vx", + "vmsgeu.vx", + "vmsge.vx", + "vminu.vx", + "vmin.vx", + "vmaxu.vx", + "vmax.vx", + "vmul.vx", + "vmulh.vx", + "vmulhu.vx", + "vmulhsu.vx", + "vdivu.vx", + "vdiv.vx", + "vremu.vx", + "vrem.vx", + "vmacc.vx", + "vnmsac.vx", + "vmadd.vx", + "vnmsub.vx", + "vadd.vi", + "vrsub.vi", + "vand.vi", + "vor.vi", + "vxor.vi", + "vsll.vi", + "vsrl.vi", + "vsra.vi", + "vmseq.vi", + "vmsne.vi", + "vmsleu.vi", + "vmsle.vi", + "vmsgtu.vi", + "vmsgt.vi", + "vmerge.vvm", + "vmerge.vxm", + "vmerge.vim", + "vrgather.vv", + "vrgatherei16.vv", + "vrgather.vx", + "vrgather.vi", + "vsetvli", + "vsetivli", + "vsetvl", +] + +# Loop over all instructions +for act in actual_instr: + found = False + for row in table.itertuples(index=False): + instr_str = getattr(row, "instruction") + if "v0.t" in instr_str: + continue # skip masked instructions + + instr_base = instr_str.split()[0] + if act == instr_base: + found = True + e8m1 = int(getattr(row, "e8m1")) + e8m2 = int(getattr(row, "e8m2")) + e32m1 = int(getattr(row, "e32m1")) + + if e8m1 == 1 and e8m2 == 2: + two_units[act] = str(e32m1) + elif e8m1 == 2 and e8m2 == 4: + one_unit[act] = str(e32m1) + else: + uncategorized[act] = str(e32m1) + break # stop scanning table once matched + if not found: + missing.append(act) +print("One unit:") +print(one_unit) +print("Two Units") +print(two_units) +print("uncategorized") +print(uncategorized) +print("missing") +print(missing) diff --git a/slothy/targets/riscv/helpers/lmul_helper.py b/slothy/targets/riscv/helpers/lmul_helper.py new file mode 100644 index 000000000..9f1935cd7 --- /dev/null +++ b/slothy/targets/riscv/helpers/lmul_helper.py @@ -0,0 +1,442 @@ +"""This module contains helper functions to deal with LMUL and SEW""" + +import itertools +from slothy.targets.riscv.riscv import RegisterType +from slothy.targets.riscv.riscv_instruction_core import RISCVInstruction + + +def _get_sew_value(obj=None): + """Get SEW value for an instruction, mirroring _get_lmul_value. + + Lookup order: + 1. obj.sew – the sew field parsed from the instruction's own text (vsetvli). + 2. obj._sew – sew cached on the object from a previous call to this function. + 3. Module-level global set by the most recently parsed vsetvli – last resort. + + The computed value is stored as obj._sew so subsequent calls skip the global + entirely, making re-parses independent of stale global state. + + Returns the SEW as an int (8, 16, 32, 64, ...) or None when nothing is known. + """ + import sys + + if obj is not None: + sew = getattr(obj, "sew", None) + if sew is not None: + result = _parse_sew_string(sew) + if result is not None: + obj._sew = result + return result + + cached = getattr(obj, "_sew", None) + if cached is not None: + return cached + + for module_name, module in sys.modules.items(): + if ( + module_name.startswith("slothy.targets.riscv.") + and hasattr(module, "sew") + and module.sew is not None + ): + result = _parse_sew_string(module.sew) + if obj is not None and result is not None: + obj._sew = result + return result + + return None # No safe default for SEW + + +def _parse_sew_string(sew): + """Parse SEW string (e.g., 'e8', 'e16', 'e32', 'e64') to integer. + + Also accepts an already-parsed int (e.g. from a cached SourceLine tag) + and returns it unchanged when valid. + """ + if isinstance(sew, int): + return sew if sew in [8, 16, 32, 64, 128, 256, 512, 1024] else None + if isinstance(sew, str) and sew.startswith("e"): + try: + value = int(sew[1:]) + except ValueError: + return None + return value if value in [8, 16, 32, 64, 128, 256, 512, 1024] else None + return None + + +def _get_lmul_value(obj=None): + """Get LMUL value from instruction object or any loaded RISC-V target module. + + Lookup order: + 1. obj.lmul – the lmul field parsed from the instruction's own text (vsetvli). + 2. obj._lmul – lmul cached on the object from a previous call to this function. + Using a dedicated attribute (not _expansion_factor) avoids confusion + with whole-register instructions where _expansion_factor equals NF, + not lmul. + 3. Module-level global set by the most recently parsed vsetvli – last resort only. + + The computed value is stored as obj._lmul so subsequent calls skip the global + entirely, making re-parses independent of stale global state. + """ + import sys + + if obj is not None: + # 1. lmul from the instruction's own parsed text (e.g. vsetvli "m8" field). + lmul = getattr(obj, "lmul", None) + if lmul is not None: + result = _parse_lmul_string(lmul) + obj._lmul = result + return result + + # 2. Previously cached lmul (set by an earlier call on this object). + cached = getattr(obj, "_lmul", None) + if cached is not None: + return cached + + # 3. Fall back to the module-level global. + for module_name, module in sys.modules.items(): + if ( + module_name.startswith("slothy.targets.riscv.") + and hasattr(module, "lmul") + and module.lmul is not None + ): + result = _parse_lmul_string(module.lmul) + if obj is not None: + obj._lmul = result # cache so next call doesn't need the global + return result + + return 1 # Default + + +def _parse_lmul_string(lmul): + """Parse LMUL string (e.g., 'm2', 'm4', 'm8', 'mf2', 'mf4', 'mf8') to integer""" + if isinstance(lmul, str): + if lmul.startswith("m") and not lmul.startswith("mf"): + lmul = int(lmul[1:]) # e.g., "m2" -> 2 + elif lmul.startswith("mf"): + lmul = 1 # Fractional LMUL, treat as 1 for now + else: + lmul = 1 + + # Ensure LMUL is valid + if lmul not in [1, 2, 4, 8]: + lmul = 1 + + return lmul + + +def _expand_vector_registers_generic( + obj: any, + expansion_factor: int, + expand_output_indices: list = None, + expand_input_indices: list = None, +) -> any: + """ + Expand vector registers based on expansion factor for vector instructions. + + Groups consecutive vector registers together based on the expansion factor + (LMUL or NF value): + + - With expansion=2: ``v8`` becomes [``v8, v9``], ``v4`` becomes [``v4, v5``] + - With expansion=4: ``v8`` becomes [``v8, v9, v10, v11``] + + This function: + + #. Automatically detects which operands are vector registers + #. Expands vector operands into register groups + #. Preserves scalar/immediate operands unchanged + #. Sets up constraint combinations for SLOTHY's register allocator + #. Allows selective expansion of specific operands (useful for masked instructions) + + :param obj: Instruction object to modify + :type obj: any + :param expansion_factor: Expansion value (LMUL or NF value) + :type expansion_factor: int + :param expand_output_indices: Indices of outputs to expand + (None = expand all vector outputs) + :type expand_output_indices: list + :param expand_input_indices: Indices of inputs to expand + (None = expand all vector inputs) + :type expand_input_indices: list + :return: modified obj + :rtype: any + """ + + obj._expansion_factor = expansion_factor + + if expansion_factor <= 1: + return obj + + available_regs = RegisterType.list_registers(RegisterType.VECT) + + def is_vector_register(reg): + """Check if a register is a vector register.""" + return reg in available_regs + + def expand_vector_register(reg): + """Expand a vector register into a group of consecutive registers.""" + if not is_vector_register(reg): + return [reg] # Not a vector register, keep as-is + + start_idx = available_regs.index(reg) + if start_idx + expansion_factor > len(available_regs): + raise ValueError( + f"Register {reg} cannot be used as a base for a group of " + f"{expansion_factor} consecutive registers (only " + f"{len(available_regs) - start_idx} available from {reg}). " + f"This is invalid for expansion factor {expansion_factor}." + ) + + return [available_regs[start_idx + i] for i in range(expansion_factor)] + + def expand_register_list( + orig_args: any, orig_arg_types: any, expand_indices: any + ) -> any: + """Expand a list of registers, tracking expansion info for constraints. + + TODO: add proper documentation + :param orig_args: + :type orig_args: any + :param orig_arg_types: + :type orig_arg_types: any + :param expand_indices: Indices to expand (None = expand all vectors) + :type expand_indices: any + + :returns: + :rtype: any + """ + expanded_args = [] + new_arg_types = [] + constraint_indices = [] + num_vectors = 0 + expanded_idx = 0 + + for i, reg in enumerate(orig_args): + should_expand = is_vector_register(reg) and ( + expand_indices is None or i in expand_indices + ) + + if should_expand: + expanded_regs = expand_vector_register(reg) + expanded_args.extend(expanded_regs) + new_arg_types.extend([RegisterType.VECT] * len(expanded_regs)) + constraint_indices.extend( + range(expanded_idx, expanded_idx + len(expanded_regs)) + ) + expanded_idx += len(expanded_regs) + num_vectors += 1 + else: + expanded_args.append(reg) + new_arg_types.append(orig_arg_types[i]) + expanded_idx += 1 + + return expanded_args, new_arg_types, constraint_indices, num_vectors + + def generate_combinations(): + """Generate all possible register group combinations (aligned groups).""" + return [ + [available_regs[i + j] for j in range(expansion_factor)] + for i in range(0, len(available_regs), expansion_factor) + if i + expansion_factor <= len(available_regs) + ] + + # Expand outputs and inputs + expanded_outputs, new_arg_types_out, output_constraint_indices, _ = ( + expand_register_list(obj.args_out, obj.arg_types_out, expand_output_indices) + ) + expanded_inputs, new_arg_types_in, input_constraint_indices, num_vector_inputs = ( + expand_register_list(obj.args_in, obj.arg_types_in, expand_input_indices) + ) + + # Update instruction object + obj.args_out = expanded_outputs + obj.args_in = expanded_inputs + obj.num_out = len(expanded_outputs) + obj.num_in = len(expanded_inputs) + obj.arg_types_out = new_arg_types_out + obj.arg_types_in = new_arg_types_in + + # Set up register allocation constraints + valid_combinations = generate_combinations() + + if output_constraint_indices: + obj.args_out_combinations = [(output_constraint_indices, valid_combinations)] + + if input_constraint_indices: + # Generate combinations for multiple vector inputs using Cartesian product + multi_combinations = [ + [reg for combo in combination for reg in combo] + for combination in itertools.product( + valid_combinations, repeat=num_vector_inputs + ) + ] + obj.args_in_combinations = [(input_constraint_indices, multi_combinations)] + + # Set up empty restrictions + obj.args_out_restrictions = [None] * obj.num_out + obj.args_in_restrictions = [None] * obj.num_in + + return obj + + +def _extract_base_registers( + args_list: list, + expansion_factor: int, + num_expandable: int, + arg_types: list = None, +) -> list: + """Extract base registers from expanded register groups. + + :param args_list: List of register arguments + :type args_list: list + :param expansion_factor: LMUL or NF expansion factor + :type expansion_factor: int + :param num_expandable: Number of expandable register groups + :type num_expandable: int + :param arg_types: Register types corresponding to args_list, used to + skip non-vector registers (e.g. scalar address registers) that + appear before expandable vector groups + :type arg_types: list + :returns: List of base registers for display + :rtype: list + """ + if not args_list or expansion_factor == 1: + return args_list.copy() + + # When type information is available, walk the list and use types to + # identify the start of each expanded vector group. This handles + # instructions like stores where a scalar address register precedes + # the expanded vector operand(s) in args_in. + if arg_types is not None: + available_regs = RegisterType.list_registers(RegisterType.VECT) + display_args = [] + idx = 0 + groups_found = 0 + while idx < len(args_list): + is_vector = idx < len(arg_types) and args_list[idx] in available_regs + if is_vector and groups_found < num_expandable: + display_args.append(args_list[idx]) + idx += expansion_factor + groups_found += 1 + else: + display_args.append(args_list[idx]) + idx += 1 + return display_args + + # Fallback (no type info): assume expandable groups are at the front + display_args = [] + idx = 0 + for _ in range(num_expandable): + if idx < len(args_list): + display_args.append(args_list[idx]) + idx += expansion_factor + display_args.extend(args_list[idx:]) + return display_args + + +def _write_expanded_instruction( + self: any, + expansion_factor: int, + num_expandable_vector_inputs: int, +) -> any: + """Custom write method for expanded instructions that shows only base registers. + + Works for both LMUL and NF expansion, handles cases with: + + - Only expanded outputs (load instructions) + - Only expanded inputs (store instructions) + - Both expanded inputs and outputs + + :param self: self + :type self: any + :param expansion_factor: The LMUL or NF expansion factor + :type expansion_factor: int + :param num_expandable_vector_inputs: + Number of vector inputs that get expanded + (excludes mask registers and other non-expandable vectors) + :type num_expandable_vector_inputs: int + :returns: Formatted instruction string with base registers only + :rtype: any + """ + # Early return for simple case + if expansion_factor <= 1: + return RISCVInstruction.write(self) + + # Check if we have expansion (either inputs or outputs) + has_expansion = expansion_factor > 1 + has_expanded_inputs = ( + has_expansion + and num_expandable_vector_inputs > 0 + and len(self.args_in) > num_expandable_vector_inputs + ) + has_expanded_outputs = has_expansion and len(self.args_out) > 1 + + if has_expanded_inputs or has_expanded_outputs: + out = self.pattern + + # Extract base registers for display. Pass arg_types so that + # scalar registers appearing before vector groups (e.g. the + # address register in store instructions) are not mistaken for + # the base of an expanded group. + display_args_out = _extract_base_registers( + self.args_out, + expansion_factor if has_expanded_outputs else 1, + 1, + getattr(self, "arg_types_out", None), + ) + display_args_in = _extract_base_registers( + self.args_in, + expansion_factor if has_expanded_inputs else 1, + num_expandable_vector_inputs, + getattr(self, "arg_types_in", None), + ) + + list_zipped = ( + list(zip(display_args_in, self.pattern_inputs)) + + list(zip(display_args_out, self.pattern_outputs)) + + list(zip(self.args_in_out, self.pattern_in_outs)) + ) + + for arg, (s, ty) in list_zipped: + out = RISCVInstruction._instantiate_pattern(s, ty, arg, out) + + # Handle other pattern replacements + # TODO: split default write method and use parts here + def replace_pattern(txt, attr_name, mnemonic_key, t=None): + def t_default(x): + return x + + if t is None: + t = t_default + a = getattr(self, attr_name) + if a is None and attr_name == "is32bit": + return txt.replace("", "") + if a is None: + return txt + if not isinstance(a, list): + txt = txt.replace(f"<{mnemonic_key}>", t(a)) + return txt + for i, v in enumerate(a): + txt = txt.replace(f"<{mnemonic_key}{i}>", t(v)) + return txt + + out = replace_pattern(out, "immediate", "imm", lambda x: f"{x}") + out = replace_pattern(out, "datatype", "dt", lambda x: x.upper()) + out = replace_pattern(out, "flag", "flag") + out = replace_pattern(out, "index", "index", str) + out = replace_pattern(out, "is32bit", "w", lambda x: x.lower()) + out = replace_pattern(out, "len", "len") + out = replace_pattern(out, "vm", "vm") + out = replace_pattern(out, "vtype", "vtype") + out = replace_pattern(out, "sew", "sew") + out = replace_pattern(out, "lmul", "lmul") + out = replace_pattern(out, "tpol", "tpol") + out = replace_pattern(out, "mpol", "mpol") + out = replace_pattern(out, "nf", "nf") + out = replace_pattern(out, "ew", "ew") + + out = out.replace("\\[", "[") + out = out.replace("\\]", "]") + return out + + # Should not reach here, but fallback to default behavior + return RISCVInstruction.write(self) diff --git a/slothy/targets/riscv/helpers/riscv_v_instr_benchmarks.ods b/slothy/targets/riscv/helpers/riscv_v_instr_benchmarks.ods new file mode 100644 index 000000000..0ee3dd32c Binary files /dev/null and b/slothy/targets/riscv/helpers/riscv_v_instr_benchmarks.ods differ diff --git a/slothy/targets/riscv/instruction_core.py b/slothy/targets/riscv/instruction_core.py index 9c252fc9c..5180f4a88 100644 --- a/slothy/targets/riscv/instruction_core.py +++ b/slothy/targets/riscv/instruction_core.py @@ -288,6 +288,17 @@ def parser(src_line): instnames = [] src = src_line.text.strip() + + # If a previous parse of this SourceLine stored the correct lmul/sew as + # tags, restore them now so make() sees the right values instead of + # whatever stale global state was left by a previous parse session. + from slothy.targets.riscv import xuantie_c908 + + if "lmul" in src_line._tags: + xuantie_c908.lmul = src_line._tags["lmul"] + if "sew" in src_line._tags: + xuantie_c908.sew = src_line._tags["sew"] + # Iterate through all derived classes and call their parser # until one of them hopefully succeeds for inst_class in Instruction.all_subclass_leaves(Instruction): @@ -299,6 +310,17 @@ def parser(src_line): except ParsingException as e: exceptions[inst_class.__name__] = e + # On the first parse, cache the lmul/sew on the SourceLine so future + # re-parses use the correct value regardless of global state + if insts and "lmul" not in src_line._tags: + lmul = getattr(insts[0], "_lmul", None) + if lmul is not None: + src_line.set_tag("lmul", lmul) + if insts and "sew" not in src_line._tags: + sew = getattr(insts[0], "_sew", None) + if sew is not None: + src_line.set_tag("sew", sew) + for i in insts: i.source_line = src_line from slothy.targets.riscv.rv32_64_i_instructions import RISCVBranch diff --git a/slothy/targets/riscv/riscv.py b/slothy/targets/riscv/riscv.py index 9809a329d..1e02f0352 100644 --- a/slothy/targets/riscv/riscv.py +++ b/slothy/targets/riscv/riscv.py @@ -82,7 +82,7 @@ def _list_registers( base_int = [f"x{i}" for i in range(32)] # TODO: check for reserved regs vector_regs = [f"v{i}" for i in range(32)] - csr = ["vstart", "vxsat", "vxrm", "vcsr", "vtype", "vl", "vlenb"] + csr = ["vstart", "vxsat", "vxrm", "vcsr", "vtype_csr", "vl", "vlenb"] return { RegisterType.BASE_INT: base_int, RegisterType.VECT: vector_regs, @@ -116,6 +116,7 @@ def from_string(string): """Find register type from string""" string = string.lower() + # TODO: add vector and csr regs here return {"base_int": RegisterType.BASE_INT}.get(string, None) @staticmethod @@ -188,7 +189,7 @@ def __init__(self, lbl=None, lbl_start=None, lbl_end=None, loop_init=None) -> No # names to the same registers self.lbl_regex = r"^\s*(?P